Coleções de nós de consultas do XFA

Eventos JavaScript e FormCalc podem inspecionar ocorrências de nós no escopo e reter listas de consultas independentes entre eventos do runtime

const siblings = xfa.record.amount.all;
const retained = siblings.clone();
retained.remove(retained.item(0));
retained.insert(siblings.item(0), null);
retained.item(0).rawValue = "42";

Propriedades de ocorrências

node.all retorna uma lista de consultas ordenada e fresca de nós no escopo com o mesmo nome literal; um nó sem nome usa o nome da classe dele em vez disso

node.classAll retorna uma lista de consultas ordenada e fresca de nós no escopo com a mesma classe, incluindo nós com outros nomes

node.index e node.classIndex retornam a ocorrência com base zero dentro dos escopos respectivos

Containers sem nome que não são propriedades são transparentes ao lookup de escopos nomeados, incluindo ocorrências SOM relativas positivas e negativas; containers de propriedades retêm o próprio escopo deles

Nomes literais como #field, * e nomes Unicode são comparados como nomes autorados por essas propriedades

Operações de listas independentes

MembroComportamento
lengthContagem atual de entradas da lista
item(index)Nó referenciado, ou null para índice negativo, não inteiro ou fora da faixa
namedItem(name)Primeiro nó referenciado com aquele nome literal, ou null quando nenhum nó corresponde
clone()Novo armazenamento independente de entradas que referencia os mesmos nós
append(node)Adiciona a mesma referência viva de nó no fim, incluindo uma referência duplicada
insert(node, before)Insere uma referência viva de nó antes da primeira referência correspondente; null anexa
remove(node)Remove a primeira referência correspondente; uma referência ausente dispara um erro

Listas retornadas por resolveNodes, all e classAll usam armazenamento independente de entradas; mudar esse armazenamento deixa as trees de formulários e dados no lugar, enquanto escrever num nó referenciado muda o nó real

Coleções node.nodes de formulários e propriedades expõem views vivas de filhos; os métodos clone() delas retornam listas de consultas independentes, como descrito em Coleções vivas de filhos do XFA

node.nodes do Data DOM também fornece um clone() independente; os métodos existentes append, insert e remove dele retêm seu comportamento estrutural nativo, como descrito em Estrutura transacional do Data DOM do XFA

Iteração de arrays, leituras indexadas e enumeração expõem os nós referenciados; atribuição direta, deleção, redefinição de propriedades, mudanças de prototype e impedir extensões disparam erros antes de mudar a lista de consultas

Persistência e identidades estáveis

Objetos de scripts podem reter uma lista de consultas ou clone entre eventos; cada operação usa o resolver atual de eventos e os limites transacionais

Handles retidos de instance managers roteiam operações ao grafo atual de eventos quando retidos ou clonados entre eventos

Renomear ou reordenar um nó sobrevivente mantém a identidade da lista retida dele; remover uma instância repetida de formulário faz as leituras e escritas através daquela referência removida falharem, em vez de selecionar uma instância de substituição

Uma lista independente pode clonar as referências armazenadas dela e remover uma referência previamente retida de um nó removido sem desreferenciar aquele nó

O armazenamento de listas de consultas é estado de scripts do runtime; salvar o XDP persiste os valores e a estrutura nativos dos nós, enquanto um runtime novo inicia uma nova sessão de objetos de scripts

Transações e limites

Nós inválidos e referências de participação falham antes de aquila operação de lista mutar o armazenamento; um erro capturado deixa as operações válidas anteriores do mesmo evento disponíveis

Um erro de evento não capturado, orçamento de operações ou falha de tempo decorrido restaura juntos as mutações de listas de consultas, valores nativos, instâncias repetidas, estado retido de objetos de scripts e estado do journal, permitindo que o mesmo runtime tente de novo

TXFAFormScriptLimits.MaxArrayItems delimita cada comprimento retido de listas e delimita separadamente os objetos cumulativos de listas e as entradas recém-alocadas durante um evento; sua configuração zero usa o default de contexto de eventos de 65.536

Clones vazios consomem o orçamento de objetos, clones não vazios também consomem o orçamento de entradas, e listas retidas permanecem delimitadas entre eventos bem-sucedidos separados

FormCalc e consumo de PDF

output = Concat(Sum(xfa.datasets.data.main.amount.all), ":",
  xfa.datasets.data.main.amount.all.length, ":",
  xfa.datasets.data.main.amount[1].classIndex)

A seleção de ocorrências FormCalc em paths literais de xfa.form, xfa.datasets e xfa.record usa a resolução SOM nativa; indexação de listas após uma propriedade de coleção indexa aquela coleção

Salve os bytes do runtime em XDP e passe-os a HPDFXFAWriteHeadlessPDF para gerar campos e aparências nativos reais a partir dos valores commitados, incluindo edições através de referências retidas sobreviventes de instâncias repetidas

TXFAHeadlessPDFOptions.Editable = False cria campos nativos read-only com aparências, em vez de achatá-los

Cobertura

Esta interface fornece listas de consultas independentes e metadados de ocorrências; criação e clonagem gerais de nós de templates/formulários, scripting adicional de classes de nós, validação de schema e mídia externa permanecem trabalho separado

Runtime de widgets XFA · Data DOM nativo