Passa al contenuto principale

Variabili in Word Modelli

Cosa tratta questa guida

PDF4me Word modelli utilizzano il var parola chiave per dichiarare variabili personalizzate direttamente all'interno del documento. Una volta dichiarata, una variabile può essere visualizzata ovunque a valle, riassegnata nei cicli per costruire totali progressivi o impostata in modo condizionale per guidare messaggi dinamici, il tutto senza toccare il documento. JSON Payload dei dati. Questa guida illustra la sintassi, le regole di ambito, la formattazione e i modelli pratici per ogni scenario di template comune.

Sintassi di base in sintesi

Dichiarare

Definisci una variabile denominata e assegnale un valore iniziale:

<<var [total = 0]>>
Produzione

Visualizza il valore corrente in qualsiasi punto dopo la dichiarazione:

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

È possibile aggiornare il valore della variabile in qualsiasi momento successivo:

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

Dichiarazione e utilizzo di base

IL var La parola chiave segue questa struttura:

<<var [Type Name = Value]>>

Type è facoltativo: il motore lo deduce dal valore. Name è l'identificativo a cui farai riferimento in seguito. Value può essere qualsiasi valore letterale, campo dati o espressione.

Variabile stringa semplice

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

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

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

Le variabili vengono dichiarate una sola volta e riutilizzate ovunque sia necessaria la coerenza: modificando il valore in un punto, si aggiorna l'intero documento.

Riassegnazione delle variabili

Riassegna una variabile in qualsiasi punto successivo del modello scrivendone un'altra <<var>> tag con lo stesso nome. Il nuovo valore avrà effetto a partire da quel momento.

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

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

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

Produzione:

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

Variabili con calcoli

Le variabili possono contenere il risultato di qualsiasi espressione aritmetica, comprese le aggregazioni LINQ su raccolte di origini dati.

Totali e calcolo delle imposte

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

Concatenazione di stringhe

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

Customer: <<[fullName]>>

Metodi di manipolazione delle stringhe

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

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

Variabili nei cicli

Dichiarare le variabili Prima IL <<foreach>> etichetta e riassegnali dentro il corpo del ciclo. Il motore mantiene il valore tra le iterazioni, rendendolo lo schema standard per i totali progressivi e i contatori di riga.

Totale parziale per ciascuna voce

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

contatore di riga

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

Total Items: <<[counter]>>

Variabili condizionali

Utilizzare il C# operatore ternario ? : per diramare un valore variabile in base ai dati del payload.

Etichetta di stato

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

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

Sconto a scaglioni

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

Esempio completo: Fattura con tutti i modelli

Modello di fattura completoCombines 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]>>

Regole di ambito variabile

Dichiarato doveDisponibile
Documento radice (prima di qualsiasi ciclo)Ovunque nel documento dopo la dichiarazione
All'interno di un <<foreach>> bloccoAll'interno di tale iterazione; persiste all'esterno se dichiarato prima del ciclo
All'interno di un nido <<foreach>>All'interno di tale ambito annidato; visibile all'esterno solo se pre-dichiarato

Regola generale: Dichiara qualsiasi variabile di cui hai bisogno al di fuori del ciclo. Prima IL <<foreach>> tag. La riassegnazione all'interno del ciclo aggiorna la stessa variabile per tutti i riferimenti successivi.

Formattazione dell'output

Appendice .NET stringhe di formato dopo il nome della variabile nel tag di output:

FormatoEsempio di tagRende come
2 cifre decimali<<[total]:"F2">>1234.56
Numero intero<<[rate * 100]:"F0">>15
Valuta<<[amount]:"C2">>$1,234.56
Appuntamento lungo<<[createdDate]:"MMMM dd, yyyy">>January 15, 2026
Appuntamento breve<<[dueDate]:"MM/dd/yyyy">>01/15/2026

migliori pratiche

  1. Dichiarare prima dell'uso - Il motore elabora i tag dall'alto verso il basso; una variabile a cui si fa riferimento prima del suo <<var>> il tag causa un errore.
  2. Utilizzare nomi descrittivi in formato camelCase - grandTotal, taxAmount, invoiceDate sono più facili da mantenere rispetto a v1, tmp, x.
  3. Inizializza gli accumulatori a 0 O "" Prima dei cicli: assegnare un valore a una variabile non inizializzata all'interno del corpo di un ciclo può generare errori di riferimento nullo.
  4. Calcola una volta, usa molte volte - Memorizzare espressioni LINQ complesse in una variabile anziché ripetere l'espressione in ogni tag di output.
  5. Evitare conflitti di nomi - Non riutilizzare nomi che siano in conflitto con i nomi dei campi dell'origine dati; il motore potrebbe risolvere il riferimento in modo ambiguo.

Domande frequenti

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.

Guide correlate

Richiedi assistenza