Bidang Formulir Warisan

Bidang Formulir Legacy

Aspose.Words FOSS untuk .NET membaca dan memanipulasi bidang formulir legacy Word (sebelum content-control) — bidang input teks, kotak centang, dan bidang drop-down — melalui kelas FormField dan tiga subclass bidang khususnya di Aspose.Words.Fields.


Membaca Nilai Bidang Formulir

Document.Range.FormFields (sebuah FormFieldCollection) memberikan akses langsung ke setiap bidang formulir legacy dalam suatu rentang tanpa harus menelusuri pohon node secara manual. Setiap FormField mengekspos Name (identifier gaya bookmark yang digunakan untuk merujuk ke bidang), Type (nilai FieldType yang mengidentifikasi jenis bidang formulir), Result (nilai saat ini), Enabled, serta teks bantuan/status melalui HelpText/OwnHelp dan StatusText/OwnStatus. SetTextInputValue(newValue) menetapkan nilai baru untuk bidang input teks secara langsung. Indeks ke FormFieldCollection dengan nama bookmark (misalnya formFields["BookmarkName"]) untuk mengambil bidang tertentu, dan Remove(formField) / RemoveAt(index) menghapus bidang dari koleksi.


Jenis Bidang Teks, Kotak Centang, dan Drop-Down

Ketiga jenis bidang formulir legacy masing-masing memiliki kelas khusus: FieldFormText (bidang FORMTEXT, yang sesuai dengan FieldType.FieldFormTextInput) untuk input teks bebas, FieldFormCheckBox (bidang FORMCHECKBOX) untuk saklar boolean, dan FieldFormDropDown (bidang FORMDROPDOWN) untuk daftar pilihan. Pada node FormField yang mendasari, TextInputType (nilai TextFormFieldType — Regular, Number, Date, CurrentDate, CurrentTime, atau Calculated) dan TextInputFormat mengontrol bagaimana nilai bidang teks diinterpretasikan dan diformat; MaxLength membatasi panjang inputnya; TextInputDefault menyediakan nilai defaultnya. Checked dan Default berlaku untuk bidang kotak centang, dengan IsCheckBoxExactSize/CheckBoxSize mengontrol ukuran tampilanannya. Bidang drop-down membawa daftar opsinya di DropDownItems, sebuah DropDownItemCollection yang mendukung Add, Insert, Remove, Contains, dan IndexOf, serta DropDownSelectedIndex untuk item yang saat ini dipilih.


Tips dan Praktik Terbaik

  • Gunakan Document.Range.FormFields daripada menyaring Document.Range.Fields secara manual berdasarkan tipe — itu merupakan titik masuk yang langsung dan bertipe untuk bidang formulir warisan.
  • Setel CalculateOnExit ketika nilai bidang formulir harus memicu perhitungan ulang bidang tergantung segera setelah pengguna meninggalkannya.
  • FormField.EntryMacro / ExitMacro merujuk pada nama makro VBA yang dikonfigurasikan dalam dokumen asli — membaca mereka tidak mengeksekusi kode makro apa pun.
  • Periksa TextInputType sebelum mengurai Result bidang teks sebagai angka atau tanggal — bidang Regular tidak memberlakukan batasan format.

Masalah Umum

MasalahPenyebabPerbaikan
Pengindeksan FormFieldCollection berdasarkan nama bookmark mengembalikan nullNama bookmark bidang formulir tidak cocok, atau bidang tersebut tidak ada dalam rentang yang dicariKonfirmasi nama bookmark yang tepat melalui FormField.Name saat enumerasi
Status kotak centang tidak tercermin setelah mengatur CheckedDokumen tidak disimpan setelah modifikasiSimpan dokumen setelah dimodifikasi; Checked dibaca pada akses berikutnya
Dropdown DropDownSelectedIndex di luar jangkauanIndeks tidak sesuai dengan item dalam DropDownItemsValidasi indeks terhadap DropDownItems.Count sebelum mengatur
Nilai bidang teks tidak diterapkanMenggunakan penugasan properti langsung alih-alih SetTextInputValuePanggil SetTextInputValue(newValue) pada FormField

FAQ

Apa perbedaan antara FormField dan FieldFormText/FieldFormCheckBox/FieldFormDropDown?

FormField adalah node generik yang mewakili bidang formulir warisan apa pun, diakses melalui Document.Range.FormFields. FieldFormText, FieldFormCheckBox, dan FieldFormDropDown adalah kelas khusus bidang (yang diturunkan dari Field) untuk setiap tipe bidang ketika bekerja melalui koleksi umum Field sebagai gantinya.

Bagaimana cara saya mendapatkan semua nilai bidang formulir dalam dokumen?

Enumerasikan Document.Range.FormFields dan baca Name/Result pada setiap FormField.

Bisakah saya menambahkan opsi ke bidang formulir drop-down?

Ya — FormField.DropDownItems adalah DropDownItemCollection dengan Add(value), Insert(index, value), dan Remove(name).

Apakah ini sama dengan content controls modern?

Tidak. Formulir warisan (FORMTEXT, FORMCHECKBOX, FORMDROPDOWN) ada sebelum model tag dokumen terstruktur Word (content control); keduanya dapat muncul dalam dokumen yang sama.


API Reference Ringkasan

Kelas / MetodeDeskripsi
Document.Range.FormFieldsAkses langsung ke semua bidang formulir warisan dalam rentang
FormFieldNode bidang formulir warisan generik: name, type, result, enabled state
FormFieldCollectionKoleksi objek FormField; diindeks berdasarkan nama bookmark, Remove()
FieldFormTextFORMTEXT kelas bidang
FieldFormCheckBoxFORMCHECKBOX kelas bidang
FieldFormDropDownFORMDROPDOWN kelas bidang
TextFormFieldTypeEnum untuk format masukan bidang teks (Regular, Number, Date, dll.)
DropDownItemCollectionDaftar yang dapat diedit untuk opsi bidang drop-down

Lihat Juga

 Bahasa Indonesia