Membangun Fields dengan FieldBuilder

Membangun Fields dengan FieldBuilder

Membangun Field dengan FieldBuilder

Panduan ini menunjukkan cara membuat field Word dari awal di Aspose.Words FOSS untuk .NET menggunakan FieldBuilder and FieldArgumentBuilder, alih-alih bekerja dengan field yang sudah ada dalam dokumen. Untuk membaca, memperbarui, atau menghapus field yang ada, lihat Bekerja dengan Field panduan.


Membuat Field dengan FieldBuilder

FieldBuilder membangun field dari token kode field — argumen dan switch. Buat satu dengan new FieldBuilder(fieldType), dengan melewatkan FieldType dari field yang ingin Anda bangun. Tambahkan argumen dengan metode AddArgument(argument) yang overload, yang menerima string, int, double, FieldBuilder bersarang, atau FieldArgumentBuilder. Tambahkan switch dengan metode overload AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string), atau AddSwitch(switchName, switchArgument) (int/double).


Menyisipkan Field yang Dibuat

Setelah sebuah FieldBuilder memiliki argumen dan switch-nya, panggil BuildAndInsert(refNode) untuk menyisipkannya ke dalam dokumen — satu overload menerima node Inline dan menyisipkan field sebelum node tersebut, dan yang lain menerima Paragraph dan menyisipkan field di akhir paragraf tersebut.


Menyusun Argumen Kompleks dengan FieldArgumentBuilder

FieldArgumentBuilder membangun argumen bidang kompleks yang terdiri dari bidang, node, dan teks biasa, untuk kasus di mana satu argumen membutuhkan lebih dari sekadar string biasa. Buat satu dengan new FieldArgumentBuilder(), kemudian panggil AddText(text) untuk menambahkan teks biasa, AddNode(node) untuk menambahkan node Inline, atau AddField(fieldBuilder) untuk menumpuk bidang lain (dibangun dengan FieldBuilder miliknya) di dalam argumen. Serahkan FieldArgumentBuilder yang telah selesai ke FieldBuilder.AddArgument(argument) untuk menggunakannya sebagai salah satu argumen bidang luar.


Tips dan Praktik Terbaik

  • Gunakan FieldBuilder saat membangun tipe bidang yang tidak didukung oleh salah satu kelas bidang khusus (seperti FieldDate atau FieldSymbol), atau saat menghasilkan kode bidang secara programatik dari data daripada menulisnya secara manual.
  • Sisipkan bidang anak di dalam argumen bidang luar dengan FieldBuilder.AddArgument(FieldBuilder) untuk kasus sederhana, atau bangun argumen campuran teks, node, dan bidang bersarang dengan FieldArgumentBuilder ketika argumen lebih dari satu bidang.
  • Pilih overload BuildAndInsert(refNode) yang sesuai dengan tempat Anda ingin bidang ditempatkan — sebelum node Inline tertentu, atau di akhir Paragraph.
  • Setelah BuildAndInsert, perlakukan hasilnya seperti bidang lain dalam pohon — misalnya, panggil Update() padanya jika tipe bidang memerlukan perhitungan ulang secara eksplisit.

Masalah Umum

MasalahPenyebabPerbaikan
BuildAndInsert menargetkan lokasi yang salahOverload yang salah digunakan untuk titik penyisipan yang dimaksudBerikan node Inline untuk disisipkan sebelum itu, atau Paragraph untuk disisipkan di akhir
Argumen bidang tidak akan menerima teks biasa dan node secara bersamaanAddArgument dipanggil dengan satu string/int/double alih-alih argumen yang terkomposisiBangun argumen campuran dengan FieldArgumentBuilder (AddText, AddNode, AddField) dan berikan ke AddArgument
Nilai saklar tidak dikenali dalam kode bidang yang dibangunAddSwitch(switchName) digunakan ketika saklar sebenarnya membutuhkan argumenGunakan overload AddSwitch(switchName, switchArgument) dengan nilai string, int, atau double dari saklar

FAQ

Kapan saya harus menggunakan FieldBuilder alih-alih menyisipkan kode bidang yang sudah terbentuk?

Gunakan FieldBuilder ketika Anda memerlukan kontrol eksplisit atas argumen dan saklar sebuah bidang saat Anda menyusunnya secara programatik, bukan menyisipkan string kode bidang yang sudah terbentuk.

Bagaimana cara menambahkan lebih dari satu argumen ke sebuah bidang?

Panggil AddArgument sekali per argumen — fungsi ini memiliki overload untuk string, int, double, sebuah FieldBuilder bersarang, dan FieldArgumentBuilder.

Bisakah saya membuat sebuah bidang yang argumennya berisi campuran teks dan bidang lain?

Ya — gunakan FieldArgumentBuilder, panggil AddText, AddNode, dan AddField sesuai kebutuhan, kemudian berikan ke FieldBuilder.AddArgument.

Bagaimana cara menempatkan bidang yang telah dibangun ke dalam dokumen?

Panggil BuildAndInsert(refNode), dengan memberikan sebuah node Inline (menyisipkan sebelum node tersebut) atau sebuah Paragraph (menyisipkan di akhir node tersebut).


API Reference Ringkasan

Kelas/MetodeDeskripsi
FieldBuilderMembangun field dari token kode field (argumen dan saklar)
FieldBuilder(fieldType)Konstruktor yang mengambil FieldType untuk membangun
FieldBuilder.AddArgument(argument)Menambahkan argumen (string, int, double, FieldBuilder, atau FieldArgumentBuilder)
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument)Menambahkan saklar field, dengan atau tanpa nilai
FieldBuilder.BuildAndInsert(refNode)Menyisipkan field yang dibangun sebelum node Inline atau di akhir Paragraph
FieldArgumentBuilderMembangun argumen field kompleks dari teks, node, dan field bersarang
FieldArgumentBuilder.AddText(text)Menambahkan teks biasa ke argumen
FieldArgumentBuilder.AddNode(node)Menambahkan node Inline ke argumen
FieldArgumentBuilder.AddField(fieldBuilder)Menyisipkan field yang dibangun oleh FieldBuilder ke dalam argumen

Lihat Juga

 Bahasa Indonesia