XFA Host Model

Zapněte TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript, chcete-li používat stavový model xfa.host přes dodávaný engine QuickJS

Aplikační metadata nakonfigurujte přes TXFAWidgetRuntimeOptions.HostModel, dřív než vytvoříte runtime, a aktuální stav čtěte přes TXFAWidgetRuntime.HostModel

Vlastnosti

VlastnostChování
name, version, appType, platform, variation, languageRead-only aplikační metadata dodaná vkládající aplikací
numPagesRead-only skutečný počet layout stránek, tedy i pozicovaného obsahu mimo widgety polí
currentPageZero-based aktuální stránka, kontrolovaná proti numPages; zaměření pole vybere jeho stránku
titleUnicode runtime titulek, omezený MaxValueChars a publikovaný s transakcí
calculationsEnabledŘídí automatické výpočetní skripty; default je true
validationsEnabledŘídí validační skripty pro editované hodnoty; default je true

Verze aplikace identifikuje vkládající aplikaci; knihovna nesubstituuje číslo vlastního releasu

Stav hostitele patří runtime; změny titulku i stránek nemění původní objektový graf PDF a do ukládaných XDP dat se nekódují

Navigace, fokus a reset dat

MetodaChování
pageUp(), pageDown()Pohybují v mezích stránek a zastaví se na první či poslední stránce
getFocus()Vrací živý zaměřený výskyt pole, či null, když fokus chybí, byl odebrán či utajen
setFocus(fieldOrSOM)Vyžádá fokus na viditelném živém výskytu pole; null či prázdný text fokus vymaže
resetData(paths="")Obnoví šablonové defaultní hodnoty polí vybraných čárkou odděleným SOM seznamem, či všech polí, když je paths prázdné; počty opakovaných instancí i nesouvisející výskyty se zachovají

Resetovaná pole opustí editační režim a získají zpět platný interakční stav, takže zastaralý editační buffer nepřepíše resetovanou hodnotu

Reset i Data DOM loadXML mohou běžet ve téže události; jejich změny sdílejí transakci události a neúspěšný skript či vyčerpaný rozpočet obnoví datové hodnoty, editační buffery, stav hostitele i lexický stav skriptových objektů, dřív než retry

Identity polí sledují svůj datový výskyt, když instance manager přeřadí opakované subformy, a obnovení snapshotu zachová ty logické identity

Životnost fokusu a transakce

Změny fokusu runtime zapíší a validují čekající editaci zdroje, provedou exit skripty zdroje, vyberou nové pole a provedou enter skripty cíle, dřív než se usadí výpočet i layout

Žádosti o fokus z enter či exit skriptů mohou cíl přesměrovat; každý odtok fokusu dovolí 64 přechodů a sdílí rozpočty skriptových operací i uplynulého času

Skripty aktivitu vidí přes xfa.event.name; výpočty i validace dostanou své odpovídající kontextové názvy

Veřejná volání FocusWidget i enter/exit DispatchEvent použijí tutéž transakční životnost; ClearFocus zruší svůj aktuální editační buffer, dřív než exit životnost, se zachováním svého předchozího chování zrušení

OnFocusChanged publikuje uspořádané callbacky po zapsání; mezilehlá přesměrování zůstávají uvnitř transakce a neúspěšné skripty, validace či rozpočty obnoví stav hostitele, fokus, editační buffery, hodnoty dokumentu i lexický stav skriptů společně

Options := TXFAWidgetRuntimeOptions.Default;
Options.ScriptOptions.EnableJavaScript := True;
Options.HostModel.Name := 'Application';
Options.HostModel.Version := '1.0';
Options.HostModel.Language := 'en-US';
Runtime := TXFAWidgetRuntime.Create(XDPBytes, 595, 842, Options);
xfa.host.title = "Order form";
xfa.host.setFocus("rows[1].quantity");
xfa.host.resetData("rows[1].quantity,rows[1].price");
xfa.host.calculationsEnabled = false;

Aplikační efekty a zbývající pokrytí

Dialogy, tisk, externí navigace, import/export i HTTP efekty používají explicitní aplikační host transport a zaznamenané odpovědi; samotný stavový model nespustí žádnou UI či síťovou operaci

Dodatečná dialogová API hostitele, každá vlastnost hostitele Acrobatu, dynamické synchronní reflow dotazy i kompletní SOM operátory zůstávají samostatnými integračními cíli

Související API: TXFAHostModelState, PXFAHostModelState, HPDFXFAHostModelJavaScript a Interactive XFA Widget Runtime