Lewati ke konten utama

Variabel dalam Word Templat

Apa yang dibahas dalam panduan ini?

PDF4me Word templat menggunakan var kata kunci Untuk mendeklarasikan variabel kustom langsung di dalam dokumen. Setelah dideklarasikan, variabel dapat ditampilkan di mana saja di hilir, ditetapkan ulang dalam perulangan untuk membangun total berjalan, atau diatur secara kondisional untuk menggerakkan pesan dinamis - semuanya tanpa menyentuh JSON Muatan data. Panduan ini menjelaskan sintaks, aturan cakupan, pemformatan, dan pola praktis untuk setiap skenario templat umum.

Sintaks Inti Secara Singkat

Menyatakan

Definisikan variabel bernama dan tetapkan nilai awal:

<<var [total = 0]>>
Keluaran

Tampilkan nilai saat ini di mana saja setelah deklarasi:

<<[total]:"F2">>
Menugaskan kembali

Perbarui nilai variabel kapan saja di kemudian hari:

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

Deklarasi dan Penggunaan Dasar

Yang var Kata kunci mengikuti struktur ini:

<<var [Type Name = Value]>>

Type bersifat opsional - mesin akan menentukannya dari nilai tersebut. Name adalah pengidentifikasi yang akan Anda rujuk nanti. Value dapat berupa literal, kolom data, atau ekspresi apa pun.

Variabel string sederhana

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

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

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

Variabel dideklarasikan sekali dan digunakan kembali di mana pun konsistensi penting - ubah nilainya di satu tempat untuk memperbarui seluruh dokumen.

Penugasan Ulang Variabel

Tetapkan ulang variabel di titik mana pun selanjutnya dalam templat dengan menuliskan variabel lain. <<var>> tag dengan nama yang sama. Nilai baru akan berlaku mulai saat itu.

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

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

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

Keluaran:

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

Variabel dengan Perhitungan

Variabel dapat menyimpan hasil dari ekspresi aritmatika apa pun, termasuk agregasi LINQ atas koleksi sumber data.

Jumlah total dan perhitungan pajak

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

Penggabungan string

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

Customer: <<[fullName]>>

Metode manipulasi string

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

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

Variabel dalam Perulangan

Deklarasikan variabel sebelum itu <<foreach>> beri tag dan tetapkan ulang di dalam Badan perulangan. Mesin tersebut membawa nilai tersebut melintasi iterasi, menjadikannya pola standar untuk total berjalan dan penghitung baris.

Jumlah total kumulatif di seluruh item baris

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

Penghitung baris

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

Total Items: <<[counter]>>

Variabel Bersyarat

Gunakan C# operator ternary ? : untuk membuat cabang nilai variabel berdasarkan data dari muatan data.

Label status

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

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

Diskon bertingkat

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

Contoh Lengkap: Faktur dengan Semua Pola

Templat Faktur LengkapCombines 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]>>

Aturan Lingkup Variabel

Dinyatakan di manaTersedia
Akar dokumen (sebelum loop apa pun)Di seluruh dokumen setelah pernyataan tersebut
Di dalam sebuah <<foreach>> memblokirDalam iterasi tersebut; tetap ada di luar jika dideklarasikan sebelum loop.
Di dalam bersarang <<foreach>>Di dalam cakupan bersarang tersebut; hanya terlihat di luar jika telah dideklarasikan sebelumnya.

Aturan praktis: Deklarasikan variabel apa pun yang Anda butuhkan di luar loop. sebelum itu <<foreach>> tag. Penugasan ulang di dalam loop memperbarui variabel yang sama untuk semua referensi berikutnya.

Memformat Keluaran

Tambahkan .NET String format setelah nama variabel dalam tag output:

FormatContoh tagDitampilkan sebagai
2 angka desimal<<[total]:"F2">>1234.56
Bilangan bulat<<[rate * 100]:"F0">>15
Mata uang<<[amount]:"C2">>$1,234.56
Kencan panjang<<[createdDate]:"MMMM dd, yyyy">>January 15, 2026
Kencan singkat<<[dueDate]:"MM/dd/yyyy">>01/15/2026

Praktik Terbaik

  1. Nyatakan sebelum digunakan - Mesin memproses tag dari atas ke bawah; sebuah variabel dirujuk sebelum <<var>> Tag tersebut menyebabkan kesalahan.
  2. Gunakan nama camelCase yang deskriptif. - grandTotal, taxAmount, invoiceDate lebih mudah dirawat daripada v1, tmp, x.
  3. Inisialisasi akumulator ke 0 atau "" Sebelum perulangan - menetapkan variabel yang belum diinisialisasi di dalam badan perulangan dapat menghasilkan kesalahan referensi null.
  4. Hitung sekali, gunakan berkali-kali. - Simpan ekspresi LINQ yang kompleks dalam sebuah variabel daripada mengulang ekspresi tersebut di setiap tag output.
  5. Hindari bentrok nama - Jangan menggunakan kembali nama yang bertentangan dengan nama kolom sumber data; mesin mungkin akan menyelesaikan referensi tersebut secara ambigu.

Pertanyaan yang Sering Diajukan

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.

Panduan Terkait

Dapatkan Bantuan