XFA-Host-Modell

Aktiviere TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript, um das zustandsbehaftete xfa.host-Modell über die mitgelieferte QuickJS-Engine zu nutzen

Konfiguriere Anwendungsmetadaten über TXFAWidgetRuntimeOptions.HostModel, bevor die Runtime erzeugt wird, und lies den aktuellen Zustand über TXFAWidgetRuntime.HostModel

Properties

PropertyVerhalten
name, version, appType, platform, variation, languageSchreibgeschützte Anwendungsmetadaten, geliefert von der einbettenden Anwendung
numPagesSchreibgeschützte tatsächliche Layout-Seitenzahl, einschließlich positionierten Inhalts jenseits von Feld-Widgets
currentPageAktuelle Seite nullbasiert, geprüft gegen numPages; der Fokus auf ein Feld wählt seine Seite
titleUnicode-Runtime-Titel, begrenzt durch MaxValueChars und mit der Transaktion veröffentlicht
calculationsEnabledSteuert automatische Berechnungsskripte; der Default ist true
validationsEnabledSteuert Validierungsskripte für bearbeitete Werte; der Default ist true

Die Anwendungsversion identifiziert die einbettende Anwendung; die Bibliothek setzt nicht ihre Release-Nummer ein

Der Host-Zustand gehört zur Runtime; Titel- und Seitenänderungen verändern den ursprünglichen PDF-Objektgraphen nicht und werden nicht in gespeicherte XDP-Daten kodiert

Navigation, Fokus und Daten-Reset

MethodeVerhalten
pageUp(), pageDown()Bewegen innerhalb der Seitengrenzen und Stoppen an der ersten oder letzten Seite
getFocus()Liefert das Live-fokussierte Feldvorkommen oder null, wenn Fokus fehlt, entfernt oder verdeckt ist
setFocus(fieldOrSOM)Fordert Fokus auf ein sichtbares Live-Feldvorkommen an; null oder leerer Text löscht den Fokus
resetData(paths="")Stellt Template-Default-Werte für Felder wieder her, die eine kommagetrennte SOM-Liste wählt, oder für alle Felder, wenn paths leer ist; wiederholte Instanzzahlen und unabhängige Vorkommen bleiben erhalten

Zurückgesetzte Felder verlassen den Bearbeitungsmodus und kehren in einen gültigen Interaktionszustand zurück, sodass ein alter Editierpuffer den Reset-Wert nicht überschreibt

Reset und Data-DOM-loadXML dürfen im selben Ereignis laufen; ihre Änderungen teilen sich die Ereignistransaktion, und ein fehlgeschlagener Script oder erschöpftes Budget stellt Datenwerte, Editierpuffer, Host-State und den lexikalischen Script-Objektzustand vor einem Retry wieder her

Feldidentitäten folgen ihrem Datenvorkommen, wenn ein Instance Manager wiederholte Subformulare umordnet, und die Snapshot-Wiederherstellung bewahrt diese logischen Identitäten

Fokus-Lebenszyklus und Transaktionen

Runtime-Fokusänderungen committen und validieren eine ausstehende Quellbearbeitung, führen Exit-Skripte der Quelle aus, wählen das neue Feld und führen Enter-Skripte des Ziels aus, bevor sich Berechnung und Layout festigen

Fokusanforderungen aus Enter- oder Exit-Skripten können das Ziel umleiten; jeder Fokusablauf erlaubt 64 Übergänge und teilt die Skript-Operations- und Ablaufzeit-Budgets

Skripte sehen die Activity über xfa.event.name; Berechnungen und Validierung erhalten ihre jeweiligen Kontextnamen

Öffentliche FocusWidget- und enter/exit-DispatchEvent-Aufrufe nutzen denselben transaktionalen Lebenszyklus; ClearFocus bricht seinen aktuellen Editierpuffer vor dem Exit-Lebenszyklus ab und bewahrt sein bisheriges Abbruchverhalten

OnFocusChanged veröffentlicht geordnete Callbacks nach dem Commit; Zwischen-Umleitungen bleiben innerhalb der Transaktion, und fehlgeschlagene Skripte, Validierung oder Budgets stellen Host-Zustand, Fokus, Editierpuffer, Dokumentwerte und lexikalischen Skriptzustand gemeinsam wieder her

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;

Anwendungseffekte und verbleibende Abdeckung

Dialoge, Drucken, externe Navigation, Import/Export und HTTP-Effekte nutzen expliziten Anwendungs-Host-Transport und aufgezeichnete Antworten; das Zustandsmodell selbst startet keine UI- oder Netzwerkoperation

Weitere Host-Dialog-APIs, jede Acrobat-Host-Property, dynamische synchrone Reflow-Abfragen und vollständige SOM-Operatoren bleiben separate Integrationsziele

Verwandte APIs: TXFAHostModelState, PXFAHostModelState, HPDFXFAHostModelJavaScript und Interactive XFA Widget Runtime