Modelo host XFA

Activa TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar el modelo con estado de xfa.host mediante el engine QuickJS incluido

Configura los metadatos de la aplicación mediante TXFAWidgetRuntimeOptions.HostModel antes de crear el runtime, y lee el estado actual a través de TXFAWidgetRuntime.HostModel

Propiedades

PropiedadComportamiento
name, version, appType, platform, variation, languageMetadatos de aplicación de solo lectura suministrados por la aplicación que hospeda
numPagesRecuento real de páginas del layout, de solo lectura, incluido el contenido posicionado más allá de los widgets de campo
currentPagePágina actual base cero, comprobada contra numPages; dar foco a un campo selecciona su página
titleTítulo Unicode del runtime, limitado por MaxValueChars y publicado con la transacción
calculationsEnabledControla los scripts de cálculo automáticos; el valor por defecto es true
validationsEnabledControla los scripts de validación para los valores editados; el valor por defecto es true

La versión de la aplicación identifica a la aplicación que hospeda; la librería no sustituye su número de release

El estado del host pertenece al runtime; los cambios de título y página no modifican el grafo de objetos PDF original ni se codifican en los datos XDP guardados

Navegación, foco y reset de datos

MétodoComportamiento
pageUp(), pageDown()Se mueven dentro de los límites de páginas y se detienen en la primera o última página
getFocus()Devuelve la ocurrencia de campo en foco en vivo, o null cuando el foco está ausente, eliminado o concealed
setFocus(fieldOrSOM)Solicita el foco sobre una ocurrencia de campo en vivo visible; null o texto vacío limpia el foco
resetData(paths="")Restaura los valores por defecto de la plantilla para los campos seleccionados por una lista SOM separada por comas, o todos los campos cuando paths está vacío; los recuentos de instancias repetidas y las ocurrencias no relacionadas se preservan

Los campos tras el reset salen del modo de edición y recuperan un estado de interacción válido, evitando que un buffer de edición obsoleto sobrescriba el valor restaurado

El reset y el loadXML del Data DOM pueden ejecutarse en el mismo evento; sus cambios comparten la transacción del evento, y un script fallido o un presupuesto agotado restaura los valores de datos, los buffers de edición, el estado del host y el estado léxico de los script objects antes de un reintento

Las identidades de campos siguen su ocurrencia de datos cuando un instance manager reordena subforms repetidos, y la restauración de snapshots preserva esas identidades lógicas

Ciclo de vida del foco y transacciones

Los cambios de foco del runtime confirman y validan una edición de fuente pendiente, ejecutan los scripts de exit de la fuente, seleccionan el campo nuevo y ejecutan los scripts de enter del destino antes de que el cálculo y el layout se asienten

Las peticiones de foco hechas por scripts de enter o exit pueden redirigir el destino; cada drenaje de foco admite 64 transiciones y comparte los presupuestos de operación y de tiempo transcurrido del script

Los scripts ven la actividad a través de xfa.event.name; los cálculos y la validación reciben sus nombres de contexto correspondientes

Las llamadas públicas FocusWidget y DispatchEvent de enter/exit usan el mismo ciclo de vida transaccional; ClearFocus cancela su buffer de edición actual antes del ciclo de vida de exit, preservando su comportamiento de cancelación previo

OnFocusChanged publica callbacks ordenados tras la confirmación; las redirecciones intermedias permanecen dentro de la transacción, y los scripts, la validación o los presupuestos fallidos restauran juntos el estado del host, el foco, los buffers de edición, los valores del documento y el estado léxico de scripts

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;

Efectos de aplicación y cobertura restante

Los diálogos, la impresión, la navegación externa, import/export y los efectos HTTP usan el transporte host explícito de la aplicación y respuestas grabadas; el modelo de estado en sí no lanza ninguna operación de UI o red

Las APIs adicionales de diálogos del host, todas las propiedades del host de Acrobat, las consultas de reflow síncrono dinámico y los operadores SOM completos siguen siendo objetivos de integración separados

APIs relacionadas: TXFAHostModelState, PXFAHostModelState, HPDFXFAHostModelJavaScript y Interactive XFA Widget Runtime