Coleções vivas de filhos XFA
Eventos JavaScript e FormCalc podem inspecionar os nós filhos atuais de um nó de formulários ou de propriedades através da propriedade só de leitura nodes dele
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);
Ler filhos atuais
| Membro | Comportamento |
|---|---|
length | Contagem atual de nós filhos |
item(index) | Filho atual nesse índice com base zero, ou null para um índice negativo, não inteiro ou fora do intervalo |
namedItem(name) | Primeiro filho atual com esse nome literal, ou null quando nenhum filho corresponde |
nodes[index] | O mesmo nó atual que item(index) |
for...of | Lê nós filhos pela ordem atual deles |
clone() | Cria uma lista independente de consultas referindo os filhos atuais |
A coleção resolve o proprietário dela através do grafo atual de eventos a cada leitura, incluindo uma coleção retida por um objeto de scripts através de eventos
Coleções existentes refletem acrescentos e remoções de instâncias repetidas e criação implícita de propriedades; instâncias repetidas separadas mantêm filhos e valores separados de propriedades
Uma coleção retida cujo proprietário foi removido levanta um erro em vez de visar uma instância sobrevivente ou de substituição
Acesso FormCalc
FormCalc reconhece nodes como uma propriedade de coleções de filhos em nós de formulários, de propriedades e do Data DOM
if (xfa.record.nodes.length >= 2) then
xfa.record.nodes.item(1).nodes.namedItem("amount").rawValue = "Updated"
endif
Cadeias diretas de membros de length, item(index), namedItem(name) e clone() usam os mesmos nós nativos atuais e limites de coleções que o JavaScript
Coleções de filhos de formulários, de propriedades e do Data DOM suportam leituras diretas de nodes[index] tanto em JavaScript como em FormCalc
Índices de coleções têm base zero; for...of permanece sintaxe JavaScript
Escritas através de uma referência de coleções FormCalc atualizam o valor real vinculado de dados e mantêm o isolamento de instâncias repetidas; valores confirmados sobrevivem a gravação de XDP, recarregamento de runtimes e geração nativa de aparências PDF
Índices numéricos do Data DOM
const rows = xfa.record.nodes;
rows[1].nodes[0].rawValue = "Updated";
Chaves canónicas de inteiros não negativos como "0" e "1" resolvem o filho atual do Data DOM e devolvem null fora da coleção; chaves não canónicas como "01", "-0" e "1.0" não servem de alias a entradas numéricas
index in nodes de JavaScript verifica a contagem atual de filhos, e atribuição, eliminação ou redefinição direta de uma entrada numérica canónica levanta TypeError
As mesmas restrições de entradas numéricas aplicam-se dentro de uma função de objetos de scripts que retenha a coleção em estado lexical, bem como quando outro evento lê uma coleção devolvida por essa função
Use os métodos estruturais existentes do Data DOM para reordenar ou remover filhos; uma coleção retida por um objeto de scripts lê o grafo atual de eventos após cada edição confirmada e após rollback
Clones independentes
Uma lista clonada de filhos usa o armazenamento independente descrito nas coleções de nós de consultas XFA; os métodos append, insert e remove dela alteram esse armazenamento independente
Escrever num nó referenciado por qualquer uma das listas altera o nó nativo real, e valores confirmados e overrides de propriedades persistem através de XDP guardado e de geração nativa de aparências PDF
Coleções de filhos do Data DOM também fornecem clone() com armazenamento independente de entradas; os métodos estruturais existentes delas de append, insert e remove continuam a mutar a árvore nativa de dados
Transações e limites
Objetos vivos de coleções e clones independentes partilham os limites de alocações de coleções de eventos, verificações de operações e prazo da transação
Um erro de eventos não apanhado ou falha de orçamentos restaura em conjunto valores nativos, instâncias repetidas, estado retido de scripts, armazenamento independente de listas e estado do journal
Coleções vivas de formulários e de propriedades são só de leitura; atribuição direta, eliminação, redefinição de propriedades, alterações de prototypes e impedir extensões levantam um erro
Coleções do Data DOM rejeitam escritas, eliminação e redefinição de entradas numéricas canónicas mantendo os métodos estruturais nomeados existentes delas e o comportamento ordinário delas de propriedades não numéricas
Cobertura
Esta interface expõe coleções atuais de filhos de formulários e de propriedades e clones independentes de listas de filhos
Criação geral de nós de templates/formulários, clonagem recursiva de nós, inserção e remoção de árvores de filhos e bindings adicionais de classes de nós continuam a ser trabalho separado
Estrutura transacional do Data DOM XFA · Runtime de widgets XFA