Collezioni di figli vivi XFA

Gli eventi JavaScript e FormCalc possono esaminare i nodi figli correnti di un nodo di modulo o di proprietà attraverso la sua proprietà nodes di sola lettura

const field = xfa.resolveNode("row[1].amount");
const children = field.font.nodes;
const snapshot = children.clone();
field.font.fill.color.value = "192,48,96";
const fill = children.item(0);

Lettura dei figli correnti

MembroComportamento
lengthNumero corrente di nodi figli
item(index)Figlio corrente a quell'indice a base zero, o null per un indice negativo, non intero o fuori intervallo
namedItem(name)Primo figlio corrente con quel nome letterale, o null quando nessun figlio corrisponde
nodes[index]Lo stesso nodo corrente di item(index)
for...ofLegge i nodi figli nel loro ordine corrente
clone()Crea una lista di query indipendente che referenzia i figli correnti

La collezione risolve il suo proprietario attraverso il grafo di eventi corrente a ogni lettura, inclusa una collezione trattenuta da un oggetto script attraverso gli eventi

Le collezioni esistenti riflettono aggiunte e rimozioni di istanze ripetute e creazione implicita di proprietà; le istanze ripetute separate conservano figli di proprietà e valori separati

Una collezione trattenuta il cui proprietario è stato rimosso solleva un errore invece di puntare a un'istanza sopravvissuta o di sostituzione

Accesso da FormCalc

FormCalc riconosce nodes come una proprietà di collezione di figli su nodi di modulo, di proprietà e del Data DOM

if (xfa.record.nodes.length >= 2) then
  xfa.record.nodes.item(1).nodes.namedItem("amount").rawValue = "Updated"
endif

Le catene di membri dirette di length, item(index), namedItem(name) e clone() usano gli stessi nodi nativi correnti e i limiti di collezione di JavaScript

Le collezioni di figli di moduli, proprietà e Data DOM supportano letture dirette di nodes[index] sia in JavaScript sia in FormCalc

Gli indici delle collezioni sono a base zero; for...of resta sintassi JavaScript

Le scritture attraverso un riferimento di collezione FormCalc aggiornano il valore dati associato effettivo e conservano l'isolamento delle istanze ripetute; i valori confermati sopravvivono al salvataggio XDP, al ricaricamento del runtime e alla generazione nativa delle appearance PDF

Indici numerici del Data DOM

const rows = xfa.record.nodes;
rows[1].nodes[0].rawValue = "Updated";

Le chiavi intere canoniche non negative come "0" e "1" risolvono il figlio corrente del Data DOM e restituiscono null fuori dalla collezione; le chiavi non canoniche come "01", "-0" e "1.0" non sono alias delle voci numeriche

Il index in nodes JavaScript verifica il conteggio corrente dei figli, e l'assegnazione diretta, l'eliminazione o la ridefinizione di una voce numerica canonica solleva TypeError

Le stesse restrizioni delle voci numeriche si applicano dentro una funzione di oggetto script che trattiene la collezione nello stato lessicale, così come quando un altro evento legge una collezione restituita da quella funzione

Usare i metodi strutturali esistenti del Data DOM per riordinare o rimuovere i figli; una collezione trattenuta da un oggetto script legge il grafo di eventi corrente dopo ogni modifica confermata e dopo il rollback

Cloni indipendenti

Una lista di figli clonata usa l'archiviazione indipendente descritta in Collezioni di nodi di query XFA; i suoi metodi append, insert e remove cambiano quell'archiviazione indipendente

Scrivere un nodo referenziato da una delle due liste cambia il nodo nativo effettivo, e i valori confermati e le sovrascritture delle proprietà persistono attraverso l'XDP salvato e la generazione nativa delle appearance PDF

Le collezioni di figli del Data DOM forniscono anche clone() con archiviazione di voci indipendente; i loro esistenti metodi strutturali append, insert e remove continuano a mutare l'albero dati nativo

Transazioni e limiti

Gli oggetti di collezione vivi e i cloni indipendenti condividono i limiti di allocazione delle collezioni dell'evento, le verifiche delle operazioni e la scadenza della transazione

Un errore di evento non intercettato o un fallimento di budget ripristina insieme i valori nativi, le istanze ripetute, lo stato script trattenuto, l'archiviazione delle liste indipendenti e lo stato del journal

Le collezioni vive di moduli e proprietà sono di sola lettura; assegnazione diretta, eliminazione, ridefinizione di proprietà, cambi del prototipo e impedimento delle estensioni sollevano un errore

Le collezioni del Data DOM rifiutano la scrittura, l'eliminazione e la ridefinizione delle voci numeriche canoniche conservando i loro esistenti metodi strutturali nominati e il comportamento ordinario delle proprietà non numeriche

Copertura

Questa interfaccia espone collezioni di figli correnti di moduli e proprietà e cloni indipendenti di liste di figli

La creazione generale di nodi di template/modulo, la clonazione ricorsiva dei nodi, l'inserimento e la rimozione di alberi di figli e binding aggiuntivi di classi di nodi restano lavoro separato

Struttura transazionale del Data DOM XFA · Runtime dei widget XFA