Ana içeriğe geç

Değişkenler Word Şablonlar

Bu kılavuz neleri kapsıyor?

PDF4me Word Şablonlar şunları kullanır: var anahtar kelime Özel değişkenleri doğrudan belge içinde tanımlamak için. Tanımlandıktan sonra, bir değişken herhangi bir yerde çıktı olarak verilebilir, döngülerde yeniden atanarak toplamlar oluşturulabilir veya dinamik mesajlaşmayı yönlendirmek için koşullu olarak ayarlanabilir - bunların hepsi belgeye dokunmadan yapılabilir. JSON Veri yükü. Bu kılavuz, her yaygın şablon senaryosu için sözdizimini, kapsam kurallarını, biçimlendirmeyi ve pratik kalıpları açıklamaktadır.

Temel Sözdizimine Genel Bakış

İlan etmek

Bir isim verilmiş değişken tanımlayın ve ona başlangıç değeri atayın:

<<var [total = 0]>>
Çıktı

Tanımlamadan sonra geçerli değeri herhangi bir yerde görüntüleyin:

<<[total]:"F2">>
Yeniden atama

Değişken değerini daha sonra istediğiniz zaman güncelleyebilirsiniz:

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

Bildirim ve Temel Kullanım

O var Anahtar kelime şu yapıya sahiptir:

<<var [Type Name = Value]>>

Type İsteğe bağlıdır - motor bunu değerden çıkarır. Name Bu, daha sonra başvuracağınız tanımlayıcıdır. Value Herhangi bir sabit değer, veri alanı veya ifade olabilir.

Basit dize değişkeni

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

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

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

Değişkenler bir kez tanımlanır ve tutarlılığın önemli olduğu her yerde yeniden kullanılır; bir yerdeki değeri değiştirmek tüm belgeyi günceller.

Değişken Yeniden Ataması

Şablonda daha sonraki bir noktada başka bir kod yazarak bir değişkene yeniden değer atayabilirsiniz. <<var>> Aynı ada sahip etiket. Yeni değer o noktadan itibaren geçerli olur.

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

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

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

Çıktı:

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

Hesaplamalı Değişkenler

Değişkenler, veri kaynağı koleksiyonları üzerindeki LINQ toplama işlemleri de dahil olmak üzere herhangi bir aritmetik ifadenin sonucunu tutabilir.

Toplamlar ve vergi hesaplaması

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

Dize birleştirme

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

Customer: <<[fullName]>>

Dize işleme yöntemleri

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

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

Döngülerdeki Değişkenler

Değişkenleri tanımlayın önce o <<foreach>> etiketle ve yeniden ata içeri Döngü gövdesi. Motor, değeri yinelemeler boyunca taşır ve bu da onu kümülatif toplamlar ve satır sayaçları için standart bir model haline getirir.

Kalem kalem toplamını hesaplayın.

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

Satır sayacı

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

Total Items: <<[counter]>>

Koşullu Değişkenler

Kullanın C# üçlü operatör ? : Veri yükünden gelen verilere dayanarak bir değişkenin değerini dallandırmak.

Durum etiketi

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

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

Kademeli indirim

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

Örnek: Tüm Desenleri İçeren Fatura

Tam Fatura ŞablonuCombines 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]>>

Değişken Kapsam Kuralları

Beyan edildiği yerMevcut
Belge kökü (herhangi bir döngüden önce)Beyanname sonrasında belgenin her yerinde
İçeride <<foreach>> engellemekBu yineleme içinde; döngüden önce tanımlanmışsa döngünün dışında da devam eder.
iç içe geçmiş <<foreach>>Bu iç içe geçmiş kapsam dahilinde; yalnızca önceden tanımlanmışsa dışarıda görünür.

Genel kural: İhtiyaç duyduğunuz tüm değişkenleri döngünün dışında tanımlayın. önce o <<foreach>> Döngü içinde yeniden atama yapmak, sonraki tüm referanslar için aynı değişkeni günceller.

Biçimlendirme Çıktısı

Ekle .NET Çıktı etiketindeki değişken adından sonra gelen biçimlendirme dizeleri:

BiçimEtiket örneğiŞu şekilde oluşturulur:
2 ondalık basamak<<[total]:"F2">>1234.56
Tam sayı<<[rate * 100]:"F0">>15
Para birimi<<[amount]:"C2">>$1,234.56
Uzun tarih<<[createdDate]:"MMMM dd, yyyy">>January 15, 2026
Kısa tarih<<[dueDate]:"MM/dd/yyyy">>01/15/2026

En İyi Uygulamalar

  1. Kullanmadan önce beyan edin. - Motor, etiketleri yukarıdan aşağıya doğru işler; bir değişken, kendisinden önce referans alınır. <<var>> Bu etiket hataya neden oluyor.
  2. Açıklayıcı camelCase isimler kullanın. - grandTotal, taxAmount, invoiceDate bakımı daha kolaydır v1, tmp, x.
  3. Akümülatörleri 0'a başlatın. veya "" Döngülerden önce - bir döngü gövdesinde başlatılmamış bir değişkene değer atamak, boş referans hatalarına neden olabilir.
  4. Bir kere hesaplayın, birçok kez kullanın. - Karmaşık LINQ ifadelerini her çıktı etiketinde tekrarlamak yerine bir değişkende saklayın.
  5. İsim çakışmalarından kaçının. - Veri kaynağı alan adlarıyla çakışan adları tekrar kullanmayın; motor, referansı belirsiz bir şekilde çözümleyebilir.

Sıkça Sorulan Sorular

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.

İlgili Kılavuzlar

Yardım Alın