Ikhtisar Bidang

Biasanya suatu field, ketika dimasukkan ke dalam Microsoft Word, sudah berisi nilai terkini. Misalnya, jika bidangnya berupa rumus atau nomor halaman, bidang tersebut akan berisi nilai terhitung yang benar untuk versi dokumen tertentu. Namun jika Anda memiliki aplikasi yang menghasilkan atau memodifikasi dokumen dengan bidang (misalnya menggabungkan dua dokumen atau mengisi dengan data) maka agar dokumen tersebut berguna, idealnya semua bidang harus diperbarui.

Sebuah bidang terdiri dari:

fields-aspose-words

  • Node awal dan pemisah bidang digunakan untuk mencakup konten yang membentuk kode bidang (biasanya dalam bentuk teks biasa)
  • Pemisah bidang dan ujung bidang mencakup hasil lapangan. Ini dapat terdiri dari berbagai jenis konten mulai dari teks, paragraf, hingga tabel.
  • Beberapa kolom mungkin tidak memiliki pemisah yang berarti seluruh konten membentuk kode kolom.
  • Kode bidang mendefinisikan perilaku bidang dan terdiri dari pengidentifikasi bidang dan sering kali parameter lain seperti nama bidang dan sakelar.
  • Hasil lapangan berisi evaluasi lapangan terkini. Nilai ini disimpan dalam hasil bidang dan ditampilkan kepada pengguna. Beberapa bidang mungkin tidak memiliki hasil bidang apa pun sehingga tidak akan menampilkan apa pun di dokumen. Demikian pula, beberapa bidang mungkin belum diperbarui sehingga tidak ada hasil bidangnya.

Berikut adalah tampilan bagaimana suatu bidang disimpan di Aspose.Words dengan menggunakan contoh “DocumentExplorer” yang dapat ditemukan di Github.

document-explorer-aspose-words

Aspose.Words adalah perpustakaan kelas yang dirancang untuk pemrosesan dokumen Microsoft Word di sisi server dan mendukung bidang dengan cara berikut:

  • Semua bidang dalam dokumen dipertahankan selama pembukaan/penyimpanan dan konversi.
  • Dimungkinkan untuk memperbarui hasil dari beberapa bidang paling populer.

Bidang di Microsoft Word

Bidang dalam dokumen Microsoft Word rumit. Ada lebih dari 50 jenis bidang (masing-masing memerlukan prosedur penghitungan hasil sendiri), rumus dan ekspresi, penanda dan referensi, fungsi, dan berbagai sakelar. Bidang juga bisa disarangkan. Biasanya ketika dokumen dibuka, hasil bidang (nilai bidang) ditampilkan untuk semua bidang dalam dokumen. Anda dapat mengaktifkan tampilan hasil bidang atau kode bidang di Microsoft Word untuk semua bidang dengan menekan ALT+F9.

Kode Bidang Hasil Lapangan
field-code-result-aspose-words todo:image_alt_text

Memasukkan Bidang di Microsoft Word

Untuk menyisipkan bidang di Microsoft Word:

  1. Klik pada menu Insert.
  2. Klik menu tarik-turun Quick Parts
  3. Pilih Field
  4. Anda disajikan dengan layar yang memungkinkan Anda memasukkan rincian bidang. Di sisi kiri Anda diberikan daftar bidang yang mungkin dan di sisi kanan adalah layar untuk mengedit properti bidang secara visual.
    field-edit-aspose-words
  5. Selain itu Anda dapat menekan tombol Field Codes yang memungkinkan Anda untuk langsung menuliskan kode field.
    field-properties-aspose-words
  6. Sakelar juga dapat dimasukkan dengan menggunakan tombol Options
    field-options-aspose-words
  7. Dengan menggunakan metode mana pun, isi kolom yang diinginkan dengan informasi yang sesuai, lalu tekan Ok.
  8. Bidang tersebut dimasukkan ke dalam dokumen pada posisi kursor saat ini.
    insert-field-aspose-words

Memperbarui Bidang di Microsoft Word

Untuk memperbarui satu bidang di Microsoft Word:

  1. Pindahkan tanda sisipan ke bidang yang ingin Anda perbarui.
  2. Tekan F9 untuk memperbarui kolom.

Untuk memperbarui semua bidang di Microsoft Word:

  1. Tekan Ctrl+A untuk memilih semua konten dalam dokumen.
  2. Tekan F9 untuk memperbarui semua kolom yang ditemukan dalam pilihan.

Beralih Antara Tampilan Kode Bidang dan Hasil Bidang

Untuk mengganti kode bidang dari satu bidang di Microsoft Word:

  1. Pindahkan tanda sisipan ke bidang yang diinginkan.
  2. Tekan SHIFT+F9 untuk mengganti kode kolom hanya untuk kolom ini.

Untuk mengganti kode bidang dari semua bidang di Microsoft Word:

  1. Tekan ALT+F9

Mengonversi Bidang menjadi Teks Statis di Microsoft Word

Untuk mengonversi bidang dinamis menjadi teks statis di Microsoft Word:

  1. Pindahkan tanda sisipan ke bidang yang ingin Anda konversi.
  2. Tekan Ctrl+Shift+F9 untuk mengubah kolom menjadi teks statis.

Menghapus Bidang di Microsoft Word

Untuk menghapus bidang di Microsoft Word:

  1. Pilih seluruh konten yang menyusun kolom. Jika kode field ditampilkan maka kurung kurawal pembuka dan kurung kurawal akhir juga harus dipilih.
  2. Tekan Delete untuk menghapus seluruh kolom.

Bidang di Aspose.Words

Saat dokumen dimuat ke Aspose.Words, bidang dokumen dimuat ke Aspose.Words Document Object Model sebagai kumpulan komponen terpisah (node). Satu bidang dimuat sebagai kumpulan node FieldStart, FieldSeparator, dan FieldEnd beserta konten di antara node tersebut. Jika suatu field tidak memiliki hasil field maka tidak akan ada node FieldSeparator. Semua node ini selalu ditemukan inline (sebagai turunan dari Paragraph atau SmartTag.

Konten yang membentuk kode bidang disimpan sebagai node Run antara FieldStart dan FieldSeparator. Hasil bidang disimpan antara node FieldSeparator dan FieldEnd dan dapat terdiri dari berbagai jenis konten. Biasanya, hasil bidang hanya berisi teks yang terdiri dari simpul Run, namun ada kemungkinan simpul FieldEnd ditempatkan di paragraf yang sama sekali berbeda, sehingga membuat hasil bidang terdiri dari simpul tingkat blok seperti simpul Table dan Paragraph juga.

Di Aspose.Words, setiap node FieldXXX berasal dari FieldChar. Kelas ini menyediakan properti untuk memeriksa jenis bidang yang diwakili oleh node tertentu melalui properti FieldChar.field_type. Misalnya FieldType.FIELD_MERGE_FIELD mewakili bidang gabungan dalam dokumen.

Bidang yang Didukung selama Pembaruan

Perhitungan bidang berikut ini didukung dalam versi Aspose.Words saat ini:

  • = (bidang rumus)
  • ADDRESSBLOCK
  • AUTHOR
  • COMPARE
  • CREATEDATE
  • DATE
  • DOCPROPERTY
  • DOCVARIABLE
  • GREETINGLINE
  • IF
  • INCLUDETEXT
  • MERGEFIELD
  • MERGEREC
  • MERGESEQ
  • NEXT
  • NEXTIF
  • NUMPAGES
  • PAGE
  • PAGEREF
  • REF
  • SECTION
  • SECTIONPAGES
  • SEQ
  • SET
  • STYLEREF
  • TIME
  • TITLE
  • TOA
  • TOC (termasuk TOT dan TOF)
  • karena

Parsing yang Canggih

Aspose.Words mengikuti cara Microsoft Word memproses kolom dan sebagai hasilnya ia menangani dengan benar:

  • Bidang bersarang : IF { =OR({ COMPARE { =2.5 +PRODUCT(3,5 ,8.4) } > 4}, { =2/2 }) } = 1 "Credit not acceptable" "Credit acceptable"
  • Argumen bidang dapat berupa hasil bidang yang disarangkan.
  • Bidang dapat disarangkan dalam kode bidang serta dalam hasil bidang.
  • Spasi/tanpa spasi, tanda kutip/tanpa tanda kutip, karakter escape pada kolom, dll.: MERGEFIELD \f"Text after""Field \n\ame with \" and \\\ and \\\*"\bTextBefor\e
  • Bidang yang mencakup beberapa paragraf.

Bidang Rumus

Aspose.Words menyediakan implementasi mesin formula yang sangat serius dan mendukung hal-hal berikut:

  • Operator aritmatika dan logika: =(54+4*(6-77)-(5))+(-6-5)/4/5
  • Fungsi: =ABS(-01.4)+2.645/(5.6^3.5)+776457 \\\# "#,##0"
  • Referensi ke bookmark: =IF(C>4, 5,ABS(A)*.76) +3.85
  • Sakelar pemformatan angka: =00000000 \\\# "$#,##0.00;($#,##0.00)"

Fungsi ekspresi berikut ini didukung: ABS, AND, AVERAGE, COUNT, DEFINED, FALSE, IF, INT, MAX, MIN, MOD, NOT, OR, PRODUCT, ROUND, SIGN, SUM, TRUE.

Bidang IF dan COMPARE

Beberapa ekspresi IF yang dapat dihitung dengan mudah oleh Aspose.Words akan memberi Anda gambaran betapa hebatnya fitur ini:

  • IF 3 > 5.7^4+MAX(4,3) True False
  • IF "abcd" > "abc" True False
  • IF "?ab*" = "1abdsg" True False
  • IF 4 = "2*2" True False
  • COMPARE 3+5/34 < 4.6/3/2

Bidang DATE dan TIME

Aspose.Words mendukung semua sakelar pemformatan tanggal dan waktu yang tersedia di Microsoft Word, beberapa contohnya adalah:

  • DATE @ "d-MMM-yy"
  • DATE @ "d/MM/yyyy h:mm am/pm

Bidang Mail Merge

Aspose.Words tidak memberikan batasan pada kompleksitas bidang mail merge di dokumen Anda dan mendukung IF bertingkat dan bidang rumus dan bahkan dapat menghitung nama bidang gabungan menggunakan rumus.

Beberapa contoh kolom mail merge yang didukung Aspose.Words:

  • Sakelar bidang Mail merge: MERGEFIELD FirstName \\\\\\\\* FirstCap \b "Mr. "
  • Bidang gabungan bersarang dalam rumus: IF { MERGEFIELDValue1 } >= {MERGEFIELD Value2 } True False
  • Hitung nama bidang gabungan saat runtime: MERGEFIELD { IF{MERGEFIELDValue1 } >= {MERGEFIELD Value2 } FirstName"LastName" }
  • Perpindahan bersyarat ke rekaman berikutnya di sumber data: NEXTIF { MERGEFIELDValue1 } <= { =IF(-2.45 >= 6*{MERGEFIELD Value2 }, 2, -.45) }

Peralihan Format

Bidang dalam dokumen dapat memiliki tombol pemformatan yang menentukan bagaimana nilai yang dihasilkan harus diformat. Aspose.Words mendukung sakelar format berikut:

  • @ - format tanggal dan waktu
  • \# - pemformatan angka
  • \\\\* Tutup
  • \\\\* FirstCap
  • \\\\* Lebih rendah
  • \\\\* Atas
  • \\\\* CHARFORMAT – memformat hasil sesuai karakter pertama kode field.
  • \\\\* MERGEFORMAT – memformat hasil sesuai dengan format hasil lama.

Date dan Pemformatan Angka di Bidang

Saat Aspose.Words menghitung hasil bidang, sering kali Aspose.Words perlu menguraikan string menjadi nilai angka atau tanggal dan juga memformatnya kembali menjadi string. Secara default, Aspose.Words menggunakan budaya thread saat ini untuk melakukan penguraian dan pemformatan saat menghitung nilai bidang selama pembaruan bidang dan mail merge. Ada juga opsi yang disediakan dalam bentuk kelas FieldOptions yang memungkinkan kontrol lebih lanjut terhadap budaya mana yang digunakan selama pembaruan lapangan.

Memformat menggunakan Budaya Thread Saat Ini

Untuk mengontrol budaya yang digunakan selama perhitungan lapangan, cukup gunakan metode lokal.setlocale untuk mengatur budaya pilihan Anda sebelum menjalankan perhitungan lapangan. Contoh di bawah ini menunjukkan cara mengubah budaya yang digunakan dalam bidang pemformatan selama pembaruan.

Menggunakan budaya saat ini untuk memformat bidang memungkinkan sistem mengontrol dengan mudah dan konsisten bagaimana semua bidang dalam dokumen diformat selama pembaruan bidang.

Memformat menggunakan Budaya dalam Dokumen

Di sisi lain, Microsoft Word memformat setiap bidang berdasarkan bahasa teks yang ditemukan di bidang tersebut (khususnya, proses dari kode bidang). Terkadang selama pembaruan bidang, hal ini mungkin merupakan perilaku yang diinginkan, misalnya jika Anda memiliki dokumen global yang berisi konten yang terdiri dari berbagai bahasa dan ingin setiap bidang mengikuti lokal yang digunakan dari teks. Aspose.Words juga mendukung fungsi ini.

Kelas Document menyediakan properti field_options yang berisi anggota yang dapat digunakan untuk mengontrol bagaimana bidang diperbarui dalam dokumen. Contoh di bawah ini menunjukkan cara menentukan budaya mana yang digunakan untuk pemformatan tanggal selama pembaruan bidang dan mail merge dipilih.

Menemukan Kode Lapangan dan Hasil Lapangan

Bidang yang disisipkan menggunakan DocumentBuilder.insert_field mengembalikan objek Field. Ini adalah kelas fasad yang menyediakan metode berguna untuk menemukan properti suatu bidang dengan cepat. Catatan jika Anda hanya mencari nama bidang gabungan dalam dokumen maka Anda bisa menggunakan metode bawaan MailMerge.get_field_names. Contoh di bawah ini menunjukkan cara mendapatkan nama semua bidang gabungan dalam dokumen.

Cara Mengganti Nama Bidang Gabungan

Contoh di bawah ini menunjukkan cara mengganti nama bidang gabungan di dokumen Word.