Modello host XFA

Abilita TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript per usare il modello xfa.host con stato attraverso il motore QuickJS fornito

Configura i metadati dell'applicazione attraverso TXFAWidgetRuntimeOptions.HostModel prima di creare il runtime, e leggi lo stato corrente attraverso TXFAWidgetRuntime.HostModel

Proprietà

ProprietàComportamento
name, version, appType, platform, variation, languageMetadati dell'applicazione di sola lettura forniti dall'applicazione incorporante
numPagesNumero reale di pagine di layout di sola lettura, incluso contenuto posizionato oltre i widget di campo
currentPagePagina corrente a base zero, verificata contro numPages; dare focus a un campo seleziona la sua pagina
titleTitolo runtime Unicode, limitato da MaxValueChars e pubblicato con la transazione
calculationsEnabledControlla gli script di calcolo automatici; il default è true
validationsEnabledControlla gli script di validazione sui valori modificati; il default è true

La versione dell'applicazione identifica l'applicazione incorporante; la libreria non sostituisce il suo numero di release

Lo stato host appartiene al runtime; le modifiche di titolo e pagina non modificano il grafo di oggetti PDF originale e non vengono codificate nei dati XDP salvati

Navigazione, focus e reset dati

MetodoComportamento
pageUp(), pageDown()Si muovono entro i confini delle pagine e si fermano alla prima o all'ultima pagina
getFocus()Restituisce l'occorrenza di campo con focus live o null quando il focus è assente, rimosso o nascosto
setFocus(fieldOrSOM)Richiede il focus su una occorrenza di campo live visibile; testo null o vuoto cancella il focus
resetData(paths="")Ripristina i valori predefiniti del template per i campi selezionati da una lista SOM separata da virgole, o tutti i campi quando paths è vuoto; i conteggi di istanze ripetute e le occorrenze non correlate vengono preservati

I campi resettati escono dalla modalità di modifica e tornano a uno stato di interazione valido, impedendo a un buffer di modifica stantio di sovrascrivere il valore resettato

Reset e loadXML del Data DOM possono girare nello stesso evento; le loro modifiche condividono la transazione dell'evento, e uno script fallito o un budget esaurito ripristina valori dei dati, buffer di modifica, stato dell'host e stato lessicale degli script-object prima di un retry

Le identità dei campi seguono la loro occorrenza dati quando un instance manager riordina i subform ripetuti, e il ripristino dello snapshot conserva quelle identità logiche

Lifecycle del focus e transazioni

Le modifiche di focus del runtime committano e validano una modifica sorgente in sospeso, eseguono gli script exit della sorgente, selezionano il nuovo campo, ed eseguono gli script enter del target prima che calcolo e layout si assestino

Le richieste di focus fatte da script enter o exit possono reindirizzare il target; ogni drenaggio del focus ammette 64 transizioni e condivide i budget di operazione script e tempo trascorso

Gli script vedono l'attività attraverso xfa.event.name; calcoli e validazione ricevono i corrispondenti nomi di contesto

Le chiamate pubbliche FocusWidget ed enter/exit DispatchEvent usano lo stesso lifecycle transazionale; ClearFocus cancella il suo buffer di modifica corrente prima del lifecycle exit, preservando il suo precedente comportamento di cancellazione

OnFocusChanged pubblica callback ordinate dopo il commit; i reindirizzamenti intermedi restano dentro la transazione, e script, validazione o budget falliti ripristinano insieme stato host, focus, buffer di modifica, valori del documento e stato lessicale degli script

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;

Effetti dell'applicazione e copertura residua

Dialoghi, stampa, navigazione esterna, import/export ed effetti HTTP usano il transport host esplicito dell'applicazione e risposte registrate; il modello di stato stesso non lancia alcuna operazione di UI o rete

API aggiuntive di dialoghi host, ogni proprietà host di Acrobat, query dinamiche di reflow sincrono e operatori SOM completi restano obiettivi di integrazione separati

API correlate: TXFAHostModelState, PXFAHostModelState, HPDFXFAHostModelJavaScript e Runtime interattivo dei widget XFA