Pular para o conteúdo principal

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

Declarar

Defina uma variável nomeada e atribua um valor inicial:

<<var [total = 0]>>
Saída

Exiba o valor atual em qualquer lugar após a declaração:

<<[total]:"F2">>
Reatribuir

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 ondeDisponível
Raiz do documento (antes de qualquer loop)Em todo o documento, após a declaração.
Dentro de um <<foreach>> bloquearDentro 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:

FormatarExemplo de etiquetaRenderiza 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

  1. 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.
  2. Use nomes descritivos em camelCase. - grandTotal, taxAmount, invoiceDate são mais fáceis de manter do que v1, tmp, x.
  3. 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.
  4. 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.
  5. 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.

Perguntas frequentes

What is the var keyword in PDF4me templates?+
The var keyword declares a named variable inside a Word template using the syntax <<var [name = value]>>. Once declared, the variable can be output with <<[name]>> and reassigned at any later point. Variables can hold strings, numbers, dates, booleans, or the result of any expression supported by the Aspose.Words LINQ Reporting Engine, including LINQ aggregates over data-source collections.
Can I use variables inside foreach loops?+
Yes. Variables declared outside a foreach block are accessible inside it and can be reassigned on each iteration. This is the standard pattern for running totals: declare <<var [total = 0]>> before the loop, then add <<var [total = total + item.amount]>> inside the loop body. After the closing <</foreach>> tag, <<[total]>> holds the accumulated sum across all iterations.
Are variables available throughout the entire document?+
A variable is available from the point of its declaration to the end of the document. Variables declared at the document root level are accessible everywhere below, including inside nested loops and conditionals. Variables first declared inside a foreach block persist after the loop closes but may not be accessible before the loop's first iteration - always declare and initialize shared variables at the root level.
Can I perform math and string operations in a variable assignment?+
Yes. The expression inside <<var [name = expression]>> supports any standard C# expression: arithmetic operators (+, -, *, /), string concatenation (+), instance method calls (.ToUpper(), .Substring(), .ToString()), LINQ extension methods (.Sum(), .Count(), .Average(), .Max()), and ternary conditionals (?:). You can also reference other previously declared variables in the expression.
How do I format a numeric variable in the output?+
Append a .NET format string to the output tag: <<[total]:"F2">> renders two decimal places, <<[rate * 100]:"F0">> shows a whole-number percentage, <<[amount]:"C2">> formats as currency, and <<[date]:"MMMM dd, yyyy">> produces a long date. Any standard .NET composite format string is valid - the full list is available in the Microsoft .NET documentation for standard numeric and date format strings.

Guias relacionados

Obtenha ajuda