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, language | Metadati dell'applicazione di sola lettura forniti dall'applicazione incorporante |
numPages | Numero reale di pagine di layout di sola lettura, incluso contenuto posizionato oltre i widget di campo |
currentPage | Pagina corrente a base zero, verificata contro numPages; dare focus a un campo seleziona la sua pagina |
title | Titolo runtime Unicode, limitato da MaxValueChars e pubblicato con la transazione |
calculationsEnabled | Controlla gli script di calcolo automatici; il default è true |
validationsEnabled | Controlla 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
| Metodo | Comportamento |
|---|---|
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