Modelo host XFA

Activa TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar el modelo con estado de xfa.host a través del 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 incrusta la librería
numPagesConteo real de páginas del layout, de solo lectura, incluido el contenido posicionado más allá de los widgets de campos
currentPagePágina actual en base cero, verificada 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 automáticos de cálculo; el valor por defecto es true
validationsEnabledControla los scripts de validación para valores editados; el valor por defecto es true

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

El estado del host pertenece al runtime; los cambios de título y página no modifican el grafo original de objetos PDF 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 enfocada en vivo, o null cuando el foco está ausente, eliminado o oculto
setFocus(fieldOrSOM)Solicita el foco sobre una ocurrencia de campo en vivo y visible; null o texto vacío limpia el foco
resetData(paths="")Restaura los valores por defecto de plantilla para los campos seleccionados por una lista SOM separada por comas, o todos los campos cuando paths está vacío; los conteos de instancias repetidas y las ocurrencias no relacionadas se preservan

Los campos reseteados 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 restauran los valores de datos, los buffers de edición, el estado del host y el estado léxico de los objetos de scripts 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 exit de la fuente, seleccionan el nuevo campo y ejecutan los scripts enter del destino antes de que el cálculo y el layout se estabilicen

Las solicitudes de foco hechas por scripts enter o exit pueden redirigir el destino; cada drenaje de foco permite 64 transiciones y comparte los presupuestos de operaciones y tiempo transcurrido del script

Los scripts ven la actividad mediante xfa.event.name; cálculo y 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 después de la confirmación; las redirecciones intermedias quedan dentro de la transacción, y los scripts fallidos, la validación o los presupuestos restauran en conjunto 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, la importación/exportación y los efectos HTTP usan el transporte explícito de host de la aplicación y respuestas grabadas; el modelo de estado mismo no lanza ninguna operación de UI o red

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

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