Variáveis em Word Modelos
O que este guia abrange
PDF4me Word Os modelos usam o var palavra-chave para declarar variáveis personalizadas diretamente dentro do documento. Uma vez declarada, uma variável pode ser exibida em qualquer lugar a jusante, reatribuída em loops para construir totais acumulados ou definida condicionalmente para gerar mensagens dinâmicas — tudo sem alterar o código. JSON Carga útil de dados. Este guia explica a sintaxe, as regras de escopo, a formatação e os padrões práticos para cada cenário de modelo comum.
Visão geral da sintaxe básica
Defina uma variável nomeada e atribua um valor inicial:
<<var [total = 0]>>Exiba o valor atual em qualquer lugar após a declaração:
<<[total]:"F2">>Atualize o valor da variável a qualquer momento posteriormente:
<<var [total = total + item.price]>>Declaração e uso básico
O var A palavra-chave segue esta estrutura:
<<var [Type Name = Value]>>
Type É opcional - o mecanismo o infere a partir do valor. Name é o identificador que você usará como referência mais tarde. Value Pode ser qualquer literal, campo de dados ou expressão.
Variável de string simples
<<var [companyName = "Acme Corp"]>>
<<var [companyPhone = "+1-555-0123"]>>
Company: <<[companyName]>>
Contact: <<[companyPhone]>>
For questions, please reach <<[companyName]>> at <<[companyPhone]>>.
As variáveis são declaradas uma única vez e reutilizadas sempre que a consistência for importante — altere o valor em um local para atualizar todo o documento.
Reatribuição de variáveis
Reatribua uma variável a qualquer momento posterior no modelo escrevendo outra <<var>> etiqueta com o mesmo nome. O novo valor entra em vigor a partir desse ponto.
<<var [status = "Pending"]>>
Current Status: <<[status]>>
<<var [status = "Approved"]>>
Updated Status: <<[status]>>
<<var [status = "Completed"]>>
Final Status: <<[status]>>
Saída:
Current Status: Pending
Updated Status: Approved
Final Status: Completed
Variáveis com cálculos
As variáveis podem armazenar o resultado de qualquer expressão aritmética, incluindo agregações LINQ em coleções de fontes de dados.
Totais e cálculo de impostos
<<var [subtotal = lineItems.Sum(i => i.quantity * i.price)]>>
<<var [taxRate = 0.10]>>
<<var [taxAmount = subtotal * taxRate]>>
<<var [total = subtotal + taxAmount]>>
Subtotal: $<<[subtotal]:"F2">>
Tax (10%): $<<[taxAmount]:"F2">>
Total: $<<[total]:"F2">>
concatenação de strings
<<var [firstName = "Jane"]>>
<<var [lastName = "Smith"]>>
<<var [fullName = firstName + " " + lastName]>>
Customer: <<[fullName]>>
Métodos de manipulação de strings
<<var [upperName = customerName.ToUpper()]>>
<<var [initials = firstName.Substring(0,1) + lastName.Substring(0,1)]>>
Customer: <<[upperName]>>
Initials: <<[initials]>>
Variáveis em Loops
Declarar variáveis antes o <<foreach>> marque-os e reatribua-os dentro o corpo do loop. O mecanismo mantém o valor entre as iterações, tornando-se o padrão para totais acumulados e contadores de linhas.
Total acumulado por item
<<var [runningTotal = 0.0]>>
<<foreach [item in lineItems]>>
<<var [lineTotal = item.quantity * item.price]>>
<<var [runningTotal = runningTotal + lineTotal]>>
<<[item.description]>> - <<[item.quantity]>> × $<<[item.price]:"F2">> = $<<[lineTotal]:"F2">> (Running: $<<[runningTotal]:"F2">>)
<</foreach>>
Final Total: $<<[runningTotal]:"F2">>
Contador de linhas
<<var [counter = 0]>>
<<foreach [item in items]>>
<<var [counter = counter + 1]>>
<<[counter]>>. <<[item.name]>>
<</foreach>>
Total Items: <<[counter]>>
Variáveis condicionais
Use o C# operador ternário ? : Para ramificar o valor de uma variável com base nos dados da carga útil.
Rótulo de status
<<var [statusLabel = orderStatus == "Completed" ? "✓ Complete" : "⚠ Pending"]>>
<<var [urgency = daysUntilDue < 7 ? "URGENT" : "Standard"]>>
Priority: <<[urgency]>>
Status: <<[statusLabel]>>
Desconto escalonado
<<var [subtotal = items.Sum(i => i.price)]>>
<<var [discountRate = subtotal > 1000 ? 0.15 : 0.05]>>
<<var [discountAmount = subtotal * discountRate]>>
<<var [total = subtotal - discountAmount]>>
Subtotal: $<<[subtotal]:"F2">>
Discount (<<[discountRate * 100]:"F0">>%):: $<<[discountAmount]:"F2">>
Total: $<<[total]:"F2">>
Exemplo completo: Fatura com todos os padrões
Modelo de fatura completaCombines declaration, running totals in a loop, conditional discount, and formatted output.
<<var [companyName = "Tech Solutions Inc."]>>
<<var [proposalDate = DateTime.Now]>>
<<var [validUntil = proposalDate.AddDays(30)]>>
Invoice Date: <<[proposalDate]:"MMMM dd, yyyy">>
Valid Until: <<[validUntil]:"MMMM dd, yyyy">>
Line Items:
<<var [subtotal = 0.0]>>
<<foreach [item in lineItems]>>
<<var [lineTotal = item.quantity * item.unitPrice]>>
<<var [subtotal = subtotal + lineTotal]>>
• <<[item.description]>> - <<[item.quantity]>> @ $<<[item.unitPrice]:"F2">> = $<<[lineTotal]:"F2">>
<</foreach>>
<<var [discountRate = subtotal > 5000 ? 0.10 : 0.05]>>
<<var [discountAmount = subtotal * discountRate]>>
<<var [afterDiscount = subtotal - discountAmount]>>
<<var [tax = afterDiscount * 0.08]>>
<<var [grandTotal = afterDiscount + tax]>>
Subtotal: $<<[subtotal]:"F2">>
Discount (<<[discountRate * 100]:"F0">>%):: $<<[discountAmount]:"F2">>
After Discount: $<<[afterDiscount]:"F2">>
Tax (8%): $<<[tax]:"F2">>
Grand Total: $<<[grandTotal]:"F2">>
Prepared by: <<[companyName]>>
Regras de Escopo de Variáveis
| Declarado onde | Disponível |
|---|---|
| Raiz do documento (antes de qualquer loop) | Em todo o documento, após a declaração. |
Dentro de um <<foreach>> bloquear | Dentro dessa iteração; persiste fora dela se declarado antes do loop. |
Dentro de um aninhado <<foreach>> | Dentro desse escopo aninhado; visível fora dele somente se pré-declarado. |
Regra prática: Declare qualquer variável que você precisar fora de um loop. antes o <<foreach>> A reatribuição dentro do loop atualiza a mesma variável para todas as referências subsequentes.
Formatação da saída
Acrescentar .NET Formatar strings após o nome da variável na tag de saída:
| Formatar | Exemplo de etiqueta | Renderiza como |
|---|---|---|
| 2 casas decimais | <<[total]:"F2">> | 1234.56 |
| Número inteiro | <<[rate * 100]:"F0">> | 15 |
| Moeda | <<[amount]:"C2">> | $1,234.56 |
| Encontro longo | <<[createdDate]:"MMMM dd, yyyy">> | January 15, 2026 |
| Encontro curto | <<[dueDate]:"MM/dd/yyyy">> | 01/15/2026 |
Melhores práticas
- Declare antes de usar - O mecanismo processa as tags de cima para baixo; uma variável referenciada antes de sua
<<var>>A tag causa um erro. - Use nomes descritivos em camelCase. -
grandTotal,taxAmount,invoiceDatesão mais fáceis de manter do quev1,tmp,x. - Inicialize os acumuladores com o valor 0. ou
""Antes dos loops - atribuir um valor a uma variável não inicializada dentro do corpo de um loop pode gerar erros de referência nula. - Calcule uma vez, use várias vezes. - Armazene expressões LINQ complexas em uma variável em vez de repetir a expressão em cada tag de saída.
- Evite conflitos de nomes - Não reutilize nomes que entrem em conflito com os nomes dos campos da fonte de dados; o mecanismo pode resolver a referência de forma ambígua.