Bidang Otomatisasi Dokumen (IF, COMPARE, MACROBUTTON, dan Lainnya)
Bidang Otomasi Dokumen (IF, COMPARE, dan Lainnya)
Panduan ini menunjukkan cara bekerja dengan keluarga field otomatisasi dokumen Word dalam Aspose.Words FOSS untuk .NET – field yang mengendalikan teks bersyarat, menyimpan variabel berskala dokumen, dan menghubungkan makro, navigasi, serta perilaku pencetakan, alih-alih hanya menampilkan nilai yang dihitung. Setiapnya adalah Field subkelas dalam Aspose.Words.Fields namespace: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, dan FieldPrint. Semua itu mewarisi core Field anggota yang dijelaskan dalam Bekerja dengan Fields – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, dan Format – halaman ini mencakup apa yang spesifik untuk masing-masing.
Teks Kondisional dengan FieldIf
FieldIf mengimplementasikan IF bidang. LeftExpression, ComparisonOperator, dan RightExpression menjelaskan kondisi – bentuk tiga bagian yang sama digunakan oleh IComparisonExpressionEvaluator (lihat Bekerja dengan Field) – dan TrueText / FalseText memegang dua hasil yang mungkin. Panggil EvaluateCondition() untuk mengevaluasi kondisi secara langsung; itu mengembalikan sebuah FieldIfComparisonResult nilai: True, False, atau Error.
Membandingkan Nilai dengan FieldCompare
FieldCompare mengimplementasikan bidang COMPARE. Seperti FieldIf, ia mengekspos LeftExpression, ComparisonOperator, dan RightExpression untuk menjelaskan perbandingan, tetapi menghasilkan hasil bergaya boolean alih-alih beralih antara dua alternatif teks.
Variabel Dokumen dengan FieldDocVariable
FieldDocVariable mengimplementasikan bidang DOCVARIABLE, membaca variabel berskala dokumen yang bernama melalui properti VariableName.
Tombol: FieldGoToButton dan FieldMacroButton
FieldGoToButton mengimplementasikan bidang GOTOBUTTON: Location memberi nama bookmark, halaman, atau tujuan lain untuk melompat ke sana, dan DisplayText adalah label yang ditampilkan dalam dokumen. FieldMacroButton mengimplementasikan bidang MACROBUTTON: MacroName memberi nama makro yang dijalankan dan DisplayText adalah labelnya. Baik FieldIf maupun FieldMacroButton juga mengimplementasikan IMergeFieldSurrogate, antarmuka yang digunakan bidang yang mendukung mail-merge di Word untuk menandai diri mereka sebagai konten yang dapat diganti.
Instruksi Cetak dengan FieldPrint
FieldPrint mengimplementasikan bidang PRINT: PrinterInstructions dan PostScriptGroup berisi instruksi khusus printer yang disisipkan langsung dalam dokumen.
Tips dan Praktik Terbaik
- Gunakan
FieldIf.EvaluateCondition()untuk membaca hasil kondisi (FieldIfComparisonResult) tanpa perlu menguraiTrueText/FalseTextsendiri. FieldComparedanFieldIfberbagi bentukLeftExpression/ComparisonOperator/RightExpressionyang sama – kode yang membangun atau memeriksa satu ekspresi perbandingan dapat digunakan kembali di kedua jenis bidang.- Ingat bahwa semua ini
Fieldsubkelas:GetFieldCode(),Update(),Remove(), danUnlink()from Bekerja dengan Field terapkan dengan cara yang sama persis di sini.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
FieldIf.EvaluateCondition() mengembalikan Error | Operand atau operator kondisi tidak dapat dievaluasi seperti yang ditulis | Periksa LeftExpression, ComparisonOperator, dan RightExpression untuk nilai yang valid |
FieldDocVariable hasil tidak mencerminkan nilai variabel yang diharapkan | VariableName tidak cocok dengan nama variabel yang sebenarnya ada di dokumen | Pastikan nama variabel yang tepat dan bahwa ia ada sebelum membaca Result |
Teks tampilan FieldGoToButton/FieldMacroButton tidak cocok dengan apa yang ditampilkan Word | DisplayText dibaca sebelum bidang diperbarui, atau diatur tanpa panggilan Update() yang cocok | Panggil Update() pada bidang tersebut, atau baca ulang DisplayText setelah ada perubahan apa pun |
FAQ
Bagaimana cara membaca hasil dari bidang kondisional IF?
Panggil FieldIf.EvaluateCondition() untuk FieldIfComparisonResult mentah, atau baca TrueText / FalseText untuk dua alternatif teks literal yang dipilih oleh bidang tersebut.
Apa perbedaan antara FieldIf dan FieldCompare?
FieldIf (bidang IF) beralih antara TrueText dan FalseText berdasarkan kondisinya. FieldCompare (bidang COMPARE) memiliki bentuk perbandingan yang sama tetapi menghasilkan hasil bergaya boolean alih-alih teks alternatif.
Bagaimana cara membaca nama variabel dokumen dari bidang DOCVARIABLE?
Baca FieldDocVariable.VariableName.
Bagaimana cara menemukan tujuan dari bidang GOTOBUTTON?
Baca FieldGoToButton.Location; DisplayText memberikan label yang ditampilkan untuk tombol dalam dokumen.
API Reference Ringkasan
| Kelas / Enum | Deskripsi |
|---|---|
FieldIf | IF bidang; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Hasil enum dari FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | COMPARE field; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE field; VariableName |
FieldGoToButton | GOTOBUTTON field; Location, DisplayText |
FieldMacroButton | MACROBUTTON field; MacroName, DisplayText |
FieldPrint | PRINT field; PrinterInstructions, PostScriptGroup |