Câmpuri de formular moștenite

Câmpuri de formular moștenite

Câmpuri de formular vechi

Aspose.Words FOSS pentru .NET citește și manipulează câmpurile de formular vechi ale Word (pre-control de conținut) — câmpuri de intrare text, casetă de selectare și liste derulante — prin clasa FormField și cele trei subclase specializate ale câmpurilor din Aspose.Words.Fields.


Citirea valorilor câmpurilor de formular

Document.Range.FormFields (un FormFieldCollection) oferă acces direct la fiecare câmp de formular vechi dintr-un interval fără a parcurge manual arborele de noduri. Fiecare FormField expune Name (identificatorul de tip marcaj folosit pentru a referenția câmpul), Type (o valoare FieldType care identifică tipul de câmp de formular), Result (valoarea curentă), Enabled, și text de ajutor/status prin HelpText/OwnHelp și StatusText/OwnStatus. SetTextInputValue(newValue) stabilește o valoare nouă pentru un câmp de intrare text direct. Indexați în FormFieldCollection prin numele marcajului (de ex. formFields["BookmarkName"]) pentru a recupera un câmp specific, și Remove(formField) / RemoveAt(index) șterge câmpuri din colecție.


Tipuri de câmpuri text, casetă de selectare și listă derulantă

Fiecare dintre cele trei tipuri de câmpuri de formular vechi are o clasă dedicată: FieldFormText (câmpul FORMTEXT, corespunzător lui FieldType.FieldFormTextInput) pentru intrare de text liber, FieldFormCheckBox (câmpul FORMCHECKBOX) pentru o comutare booleană, și FieldFormDropDown (câmpul FORMDROPDOWN) pentru o listă de selecție. Pe nodul FormField sublicențiat, TextInputType (o valoare TextFormFieldType — Regular, Number, Date, CurrentDate, CurrentTime sau Calculated) și TextInputFormat controlează modul în care valoarea unui câmp text este interpretată și formatată; MaxLength limitează lungimea intrării; TextInputDefault furnizează valoarea implicită. Checked și Default se aplică câmpurilor casetă de selectare, iar IsCheckBoxExactSize/CheckBoxSize controlează dimensiunea redată. Câmpurile listă derulantă conțin lista de opțiuni în DropDownItems, un DropDownItemCollection care suportă Add, Insert, Remove, Contains și IndexOf, plus DropDownSelectedIndex pentru elementul selectat în prezent.


Sfaturi și cele mai bune practici

  • Utilizați Document.Range.FormFields în loc să filtrați manual Document.Range.Fields pe tip — este punctul de intrare direct, tipizat pentru câmpurile de formular moștenite.
  • Setați CalculateOnExit când valoarea unui câmp de formular ar trebui să declanșeze recalcularea câmpurilor dependente imediat ce utilizatorul îl părăsește.
  • FormField.EntryMacro / ExitMacro fac referire la numele macro-urilor VBA configurate în documentul original — citirea lor nu execută niciun cod macro.
  • Verificați TextInputType înainte de a analiza Result unui câmp text ca număr sau dată — câmpurile Regular nu impun nicio constrângere de format.

Probleme comune

ProblemăCauzăRemediere
Indexarea FormFieldCollection după numele semnului de carte returnează nullNumele semnului de carte al câmpului de formular nu se potrivește sau câmpul nu există în intervalul căutatConfirmă numele exact al semnului de carte prin FormField.Name în timpul enumerării
Starea casetei de bifare nu este reflectată după setarea CheckedDocumentul nu a fost salvat după modificareSalvați documentul după modificare; Checked este citit la următoarea accesare
Lista derulantă DropDownSelectedIndex este în afara intervaluluiIndicele nu corespunde unui element din DropDownItemsValidați indicele față de DropDownItems.Count înainte de a-l seta
Valoarea câmpului de text nu a fost aplicatăS-a utilizat atribuirea directă a proprietății în loc de SetTextInputValueApelați SetTextInputValue(newValue) pe FormField

FAQ

Care este diferența dintre FormField și FieldFormText/FieldFormCheckBox/FieldFormDropDown?

FormField este nodul generic care reprezintă orice câmp de formular moștenit, accesat prin Document.Range.FormFields. FieldFormText, FieldFormCheckBox și FieldFormDropDown sunt clasele specifice câmpului (derivate din Field) pentru fiecare tip atunci când se lucrează prin colecția generală Field.

Cum pot obține toate valorile câmpurilor de formular dintr-un document?

Enumerați Document.Range.FormFields și citiți Name/Result pe fiecare FormField.

Pot adăuga opțiuni la un câmp de formular derulant?

Da — FormField.DropDownItems este un DropDownItemCollection cu Add(value), Insert(index, value) și Remove(name).

Sunt acestea aceleași cu controalele de conținut moderne?

Nu. Câmpurile de formular vechi (FORMTEXT, FORMCHECKBOX, FORMDROPDOWN) sunt anterioare modelului de etichetă de document structurat (control de conținut) al Word; ambele pot apărea în același document.


API Reference Rezumat

Clasă / MetodăDescriere:
Document.Range.FormFieldsAcces direct la toate câmpurile de formular moștenite dintr-un interval
FormFieldNod generic de câmp de formular moștenit: nume, tip, rezultat, stare activată
FormFieldCollectionColecție de obiecte FormField; indexator după numele marcajului, Remove()
FieldFormTextClasa de câmp FORMTEXT
FieldFormCheckBoxFORMCHECKBOX clasă de câmp
FieldFormDropDownFORMDROPDOWN clasă de câmp
TextFormFieldTypeEnum pentru formatul de intrare al câmpului text (Regular, Number, Date, etc.)
DropDownItemCollectionListă editabilă a opțiunilor unui câmp derulant

Vezi și:

 Română