Variables dans Word Modèles
Ce guide couvre
PDF4me Word les modèles utilisent var mot-clé pour déclarer des variables personnalisées directement dans le document. Une fois déclarée, une variable peut être affichée n'importe où en aval, réassignée dans des boucles pour calculer des totaux cumulés, ou définie conditionnellement pour gérer la messagerie dynamique, le tout sans modifier le code source. JSON Données utiles. Ce guide explique la syntaxe, les règles de portée, la mise en forme et les modèles pratiques pour chaque scénario de modèle courant.
Syntaxe de base en bref
Définissez une variable nommée et attribuez-lui une valeur initiale :
<<var [total = 0]>>Afficher la valeur actuelle n'importe où après la déclaration :
<<[total]:"F2">>Vous pouvez modifier la valeur de la variable ultérieurement :
<<var [total = total + item.price]>>Déclaration et utilisation de base
Le var Le mot-clé suit cette structure :
<<var [Type Name = Value]>>
Type est facultatif - le moteur le déduit de la valeur. Name est l'identifiant auquel vous ferez référence ultérieurement. Value peut être n'importe quelle valeur littérale, champ de données ou expression.
Variable de chaîne simple
<<var [companyName = "Acme Corp"]>>
<<var [companyPhone = "+1-555-0123"]>>
Company: <<[companyName]>>
Contact: <<[companyPhone]>>
For questions, please reach <<[companyName]>> at <<[companyPhone]>>.
Les variables sont déclarées une seule fois et réutilisées partout où la cohérence est importante : modifier la valeur à un seul endroit met à jour l'ensemble du document.
Réaffectation des variables
Réaffectez une variable à tout moment ultérieur dans le modèle en écrivant une autre <<var>> étiquette portant le même nom. La nouvelle valeur prend effet à partir de ce moment.
<<var [status = "Pending"]>>
Current Status: <<[status]>>
<<var [status = "Approved"]>>
Updated Status: <<[status]>>
<<var [status = "Completed"]>>
Final Status: <<[status]>>
Sortir:
Current Status: Pending
Updated Status: Approved
Final Status: Completed
Variables avec calculs
Les variables peuvent contenir le résultat de n'importe quelle expression arithmétique, y compris les agrégats LINQ sur des collections de sources de données.
Totaux et calcul des taxes
<<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">>
concaténation de chaînes
<<var [firstName = "Jane"]>>
<<var [lastName = "Smith"]>>
<<var [fullName = firstName + " " + lastName]>>
Customer: <<[fullName]>>
Méthodes de manipulation de chaînes de caractères
<<var [upperName = customerName.ToUpper()]>>
<<var [initials = firstName.Substring(0,1) + lastName.Substring(0,1)]>>
Customer: <<[upperName]>>
Initials: <<[initials]>>
Variables dans les boucles
Déclarer les variables avant le <<foreach>> étiqueter et réaffecter à l'intérieur le corps de la boucle. Le moteur conserve la valeur d'une itération à l'autre, ce qui en fait le modèle standard pour les totaux cumulés et les compteurs de lignes.
Total cumulé des lignes
<<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">>
Compteur de lignes
<<var [counter = 0]>>
<<foreach [item in items]>>
<<var [counter = counter + 1]>>
<<[counter]>>. <<[item.name]>>
<</foreach>>
Total Items: <<[counter]>>
Variables conditionnelles
Utilisez le C# opérateur ternaire ? : pour faire varier la valeur d'une variable en fonction des données de la charge utile.
Étiquette d'état
<<var [statusLabel = orderStatus == "Completed" ? "✓ Complete" : "⚠ Pending"]>>
<<var [urgency = daysUntilDue < 7 ? "URGENT" : "Standard"]>>
Priority: <<[urgency]>>
Status: <<[statusLabel]>>
Réduction progressive
<<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">>
Exemple complet : Facture avec tous les modèles
Modèle de facture completCombines 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]>>
Règles de portée variable
| Déclaré où | Disponible |
|---|---|
| Racine du document (avant toute boucle) | Partout dans le document après la déclaration |
À l'intérieur d'un <<foreach>> bloc | Au sein de cette itération ; persiste en dehors si déclaré avant la boucle |
À l'intérieur d'un nid <<foreach>> | Dans cette portée imbriquée ; visible à l'extérieur uniquement si pré-déclaré |
Règle générale : Déclarez toutes les variables nécessaires en dehors d'une boucle. avant le <<foreach>> balise. La réaffectation à l'intérieur de la boucle met à jour la même variable pour toutes les références suivantes.
Formatage de la sortie
Ajouter .NET chaînes de format après le nom de la variable dans la balise de sortie :
| Format | Exemple de balise | Rendu comme |
|---|---|---|
| 2 décimales | <<[total]:"F2">> | 1234.56 |
| Nombre entier | <<[rate * 100]:"F0">> | 15 |
| Devise | <<[amount]:"C2">> | $1,234.56 |
| Long date | <<[createdDate]:"MMMM dd, yyyy">> | January 15, 2026 |
| Date courte | <<[dueDate]:"MM/dd/yyyy">> | 01/15/2026 |
Meilleures pratiques
- Déclarer avant utilisation Le moteur traite les balises de haut en bas ; une variable référencée avant son
<<var>>L'étiquette provoque une erreur. - Utilisez des noms descriptifs en camelCase. -
grandTotal,taxAmount,invoiceDatesont plus faciles à entretenir quev1,tmp,x. - Initialiser les accumulateurs à 0 ou
""Avant les boucles : l’affectation d’une variable non initialisée dans le corps d’une boucle peut produire des erreurs de référence nulle. - Calculez une fois, utilisez plusieurs fois - Stockez les expressions LINQ complexes dans une variable plutôt que de répéter l'expression dans chaque balise de sortie.
- Éviter les conflits de noms - Ne réutilisez pas des noms qui entrent en conflit avec les noms de champs de la source de données ; le moteur pourrait résoudre la référence de manière ambiguë.