Saltar al contenido principal

Variables en Word Plantillas

Qué abarca esta guía

PDF4me Word Las plantillas utilizan el var palabra clave para declarar variables personalizadas directamente dentro del documento. Una vez declarada, una variable puede mostrarse en cualquier lugar posterior, reasignarse en bucles para construir totales acumulados o establecerse condicionalmente para controlar mensajes dinámicos, todo ello sin tocar el JSON Carga útil de datos. Esta guía explica la sintaxis, las reglas de alcance, el formato y los patrones prácticos para cada escenario de plantilla común.

Sintaxis básica de un vistazo

Declarar

Defina una variable con nombre y asígnele un valor inicial:

<<var [total = 0]>>
Producción

Renderiza el valor actual en cualquier lugar después de la declaración:

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

Actualiza el valor de la variable en cualquier momento posterior:

<<var [total = total + item.price]>>

Declaración y uso básico

El var La palabra clave sigue esta estructura:

<<var [Type Name = Value]>>

Type es opcional; el motor lo deduce a partir del valor. Name es el identificador al que harás referencia más adelante. Value Puede ser cualquier literal, campo de datos o expresión.

Variable de cadena simple

<<var [companyName = "Acme Corp"]>>
<<var [companyPhone = "+1-555-0123"]>>

Company: <<[companyName]>>
Contact: <<[companyPhone]>>

For questions, please reach <<[companyName]>> at <<[companyPhone]>>.

Las variables se declaran una sola vez y se reutilizan siempre que la coherencia sea importante: si se cambia el valor en un lugar, se actualiza todo el documento.

Reasignación de variables

Reasigne una variable en cualquier punto posterior de la plantilla escribiendo otra <<var>> etiqueta con el mismo nombre. El nuevo valor entra en vigor a partir de ese momento.

<<var [status = "Pending"]>>
Current Status: <<[status]>>

<<var [status = "Approved"]>>
Updated Status: <<[status]>>

<<var [status = "Completed"]>>
Final Status: <<[status]>>

Producción:

Current Status: Pending
Updated Status: Approved
Final Status: Completed

Variables con cálculos

Las variables pueden almacenar el resultado de cualquier expresión aritmética, incluidas las agregaciones LINQ sobre colecciones de origen de datos.

Totales y cálculo de impuestos

<<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">>

concatenación de cadenas

<<var [firstName = "Jane"]>>
<<var [lastName = "Smith"]>>
<<var [fullName = firstName + " " + lastName]>>

Customer: <<[fullName]>>

Métodos de manipulación de cadenas

<<var [upperName = customerName.ToUpper()]>>
<<var [initials = firstName.Substring(0,1) + lastName.Substring(0,1)]>>

Customer: <<[upperName]>>
Initials: <<[initials]>>

Variables en bucles

Declarar variables antes el <<foreach>> etiquetarlos y reasignarlos adentro El cuerpo del bucle. El motor conserva el valor a través de las iteraciones, lo que lo convierte en el patrón estándar para totales acumulados y contadores de línea.

Total acumulado en todos los artículos

<<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 filas

<<var [counter = 0]>>
<<foreach [item in items]>>
<<var [counter = counter + 1]>>
<<[counter]>>. <<[item.name]>>
<</foreach>>

Total Items: <<[counter]>>

Variables condicionales

Utilice el C# operador ternario ? : Para ramificar un valor variable en función de los datos de la carga útil.

Etiqueta de estado

<<var [statusLabel = orderStatus == "Completed" ? "✓ Complete" : "⚠ Pending"]>>
<<var [urgency = daysUntilDue < 7 ? "URGENT" : "Standard"]>>

Priority: <<[urgency]>>
Status: <<[statusLabel]>>

Descuento 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">>

Ejemplo completo: Factura con todos los patrones

Plantilla de factura 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]>>

Reglas de alcance de variables

Declarado dondeDisponible
Raíz del documento (antes de cualquier bucle)En todo el documento después de la declaración
Dentro de un <<foreach>> bloquearDentro de esa iteración; persiste fuera si se declara antes del bucle.
Dentro de un nido <<foreach>>Dentro de ese ámbito anidado; visible fuera solo si se ha declarado previamente.

Regla general: Declara cualquier variable que necesites fuera de un bucle. antes el <<foreach>> etiqueta. Reasignar dentro del bucle actualiza la misma variable para todas las referencias subsiguientes.

Formato de salida

Agregar .NET cadenas de formato después del nombre de la variable en la etiqueta de salida:

FormatoEjemplo de etiquetaSe muestra como
2 decimales<<[total]:"F2">>1234.56
Número entero<<[rate * 100]:"F0">>15
Divisa<<[amount]:"C2">>$1,234.56
Fecha larga<<[createdDate]:"MMMM dd, yyyy">>January 15, 2026
Fecha corta<<[dueDate]:"MM/dd/yyyy">>01/15/2026

Mejores prácticas

  1. Declarar antes de usar - El motor procesa las etiquetas de arriba a abajo; una variable referenciada antes de su <<var>> La etiqueta provoca un error.
  2. Utilice nombres descriptivos en formato camelCase. - grandTotal, taxAmount, invoiceDate son más fáciles de mantener que v1, tmp, x.
  3. Inicializa los acumuladores a 0. o "" Antes de los bucles: asignar una variable no inicializada dentro del cuerpo de un bucle puede producir errores de referencia nula.
  4. Calcula una vez, úsalo muchas veces. - Almacenar expresiones LINQ complejas en una variable en lugar de repetir la expresión en cada etiqueta de salida.
  5. Evite conflictos de nombres - No reutilice nombres que entren en conflicto con los nombres de los campos de la fuente de datos; el motor podría resolver la referencia de forma ambigua.

Preguntas frecuentes

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.

Guías relacionadas

Obtén ayuda