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
Definisci una variabile denominata e assegnale un valore iniziale:
<<var [total = 0]>>Visualizza il valore corrente in qualsiasi punto dopo la dichiarazione:
<<[total]:"F2">>È 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 dove | Disponibile |
|---|---|
| Documento radice (prima di qualsiasi ciclo) | Ovunque nel documento dopo la dichiarazione |
All'interno di un <<foreach>> blocco | All'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:
| Formato | Esempio di tag | Rende 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
- 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. - Utilizzare nomi descrittivi in formato camelCase -
grandTotal,taxAmount,invoiceDatesono più facili da mantenere rispetto av1,tmp,x. - 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. - Calcola una volta, usa molte volte - Memorizzare espressioni LINQ complesse in una variabile anziché ripetere l'espressione in ogni tag di output.
- 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.