Zastaralá pole formuláře

Zastaralá formulářová pole

Aspose.Words FOSS pro .NET čte a manipuluje se staršími (před-content-control) formulářovými poli Wordu — textovými vstupy, zaškrtávacími políčky a rozbalovacími poli — pomocí třídy FormField a jejích tří specializovaných podtříd polí v Aspose.Words.Fields.


Čtení hodnot formulářových polí

Document.Range.FormFields (a FormFieldCollection) poskytuje přímý přístup ke každému starému formulářovému poli v rozsahu, aniž by bylo nutné ručně procházet strom uzlů. Každý FormField odhaluje Name (identifikátor ve stylu záložky používaný k odkazu na pole), Type (hodnota FieldType určující typ formulářového pole), Result (aktuální hodnota), Enabled a nápovědu/statusový text prostřednictvím HelpText/OwnHelp a StatusText/OwnStatus. SetTextInputValue(newValue) nastaví novou hodnotu pro textové vstupní pole přímo. Indexujte do FormFieldCollection pomocí názvu záložky (např. formFields["BookmarkName"]) pro získání konkrétního pole a Remove(formField)/RemoveAt(index) odstraní pole ze sbírky.


Typy textových, zaškrtávacích a rozbalovacích polí

Každý ze tří typů starých formulářových polí má vlastní třídu: FieldFormText (pole FORMTEXT, odpovídající FieldType.FieldFormTextInput) pro volný textový vstup, FieldFormCheckBox (pole FORMCHECKBOX) pro logický přepínač a FieldFormDropDown (pole FORMDROPDOWN) pro výběrový seznam. Na podkladovém uzlu FormField TextInputType (hodnota TextFormFieldType — Regular, Number, Date, CurrentDate, CurrentTime nebo Calculated) a TextInputFormat řídí, jak je hodnota textového pole interpretována a formátována; MaxLength omezí délku vstupu; TextInputDefault poskytuje výchozí hodnotu. Checked a Default se vztahují na zaškrtávací pole, přičemž IsCheckBoxExactSize/CheckBoxSize řídí jeho vykreslenou velikost. Rozbalovací pole uchovává svůj seznam možností v DropDownItems, DropDownItemCollection podporující Add, Insert, Remove, Contains a IndexOf, plus DropDownSelectedIndex pro aktuálně vybranou položku.


Tipy a osvědčené postupy

  • Použijte Document.Range.FormFields místo ručního filtrování Document.Range.Fields podle typu — je to přímý, typovaný vstupní bod pro staré formulářové pole.
  • Nastavte CalculateOnExit, když hodnota formulářového pole má po opuštění pole uživatelem okamžitě spustit přepočet závislých polí.
  • FormField.EntryMacro / ExitMacro odkazují na názvy VBA maker nakonfigurované v původním dokumentu — jejich čtení nespouští žádný kód makra.
  • Zkontrolujte TextInputType před tím, než budete parsovat Result textového pole jako číslo nebo datum — pole Regular nevyžadují žádné formátové omezení.

Časté problémy

ProblémPříčinaOprava
Indexování FormFieldCollection podle názvu záložky vrací nullNázev záložky formulářového pole neodpovídá, nebo pole v prohledávaném rozsahu neexistujePotvrďte přesný název záložky pomocí FormField.Name při výčtu
Stav zaškrtávacího políčka se neodráží po nastavení CheckedDokument nebyl po úpravě uloženUložte dokument po úpravě; Checked se načte při dalším přístupu
Rozbalovací seznam DropDownSelectedIndex mimo rozsahIndex neodpovídá položce v DropDownItemsOvěřte index vůči DropDownItems.Count před nastavením
Hodnota textového pole nebyla použitaBylo použito přímé přiřazení vlastnosti místo SetTextInputValueZavolejte SetTextInputValue(newValue) na FormField

FAQ

Jaký je rozdíl mezi FormField a FieldFormText/FieldFormCheckBox/FieldFormDropDown?

FormField je obecný uzel představující jakékoli staré formulářové pole, přístupný přes Document.Range.FormFields. FieldFormText, FieldFormCheckBox a FieldFormDropDown jsou třídy specifické pro pole (odvozené od Field) pro každý typ pole při práci s obecným souborem Field.

Jak získám všechny hodnoty formulářových polí v dokumentu?

Vyjmenujte Document.Range.FormFields a přečtěte Name/Result u každého FormField.

Mohu přidat možnosti do rozbalovacího formulářového pole?

Ano — FormField.DropDownItems je DropDownItemCollection s Add(value), Insert(index, value) a Remove(name).

Jsou tyto stejné jako moderní obsahové ovládací prvky?

Ne. Legacy formulářová pole (FORMTEXT, FORMCHECKBOX, FORMDROPDOWN) předcházejí modelu strukturovaných značek dokumentu (obsahový ovládací prvek) ve Wordu; obě mohou být ve stejném dokumentu.


API Reference Shrnutí

Třída / MetodaPopis:
Document.Range.FormFieldsPřímý přístup ke všem legacy polím formuláře v rozsahu
FormFieldObecný zastaralý uzel pole formuláře: název, typ, výsledek, stav povolení
FormFieldCollectionKolekce objektů FormField; indexátor podle názvu záložky, Remove()
FieldFormTextFORMTEXT třída pole
FieldFormCheckBoxFORMCHECKBOX třída pole
FieldFormDropDownFORMDROPDOWN třída pole
TextFormFieldTypeEnum pro vstupní formát textového pole (Regular, Number, Date, atd.)
DropDownItemCollectionUpravovatelný seznam možností rozbalovacího pole

Viz také:

 Čeština