XFA Live Child Collections

JavaScript- och FormCalc-händelser kan inspektera aktuell barnnoder på en formulärnod eller egenskapsnod genom dess skrivskyddade nodes egenskap

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);

Läsa aktuella barn

MemberBeteende
lengthAktuellt antal barnnoder
item(index)Aktuellt barn på det nollbaserade indexet, eller null för ett negativt, icke-heltals- eller utanför-intervallet-index
namedItem(name)Första aktuella barn med det literala namnet, eller null när inget barn matchar
nodes[index]Samma aktuella nod som item(index)
for...ofLäs barnnoder i sin aktuella ordning
clone()Skapa en oberoende frågelista som refererar aktuella barn

Kollektionen löser sin ägare genom den aktuella händelsegrafen vid varje läsning, inklusive en kollektion behållen av ett skriptobjekt över händelser

Befintliga kollektioner speglar upprepningsinstans-tillägg och borttagningar samt implicit egenskapsskapande; separata upprepade instanser behåller separata egenskapsbarn och värden

En behållen kollektion vars ägare togs bort kastar ett fel i stället för att rikta mot en överlevande eller ersatt instans

FormCalc-åtkomst

FormCalc känner igen nodes som en barnkollektionsegenskap på formulär-, egenskaps- och Data DOM-noder

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

Direkta length, item(index), namedItem(name)och clone() medlemskedjor använder samma aktuella nativa noder och kollektionsgränser som JavaScript

Formulär-, egenskaps- och Data DOM-barnkollektioner stödjer direkta nodes[index]-läsningar i både JavaScript och FormCalc

Kollektionsindex är nollbaserade; for...of förblir JavaScript-syntax

Skrivningar via en FormCalc-kollektionsreferens uppdaterar det faktiska bundna datavärdet och behåller upprepningsinstansisolering; sparade värden överlever XDP-sparande, körtidsomläsning och nativ PDF-utseendegenerering

Data DOM numeriska index

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

Kanoniska icke-negativa heltalsnycklar som "0" och "1" löser aktuell Data DOM-barn och returnerar null utanför kollektionen; icke-kanoniska nycklar som "01", "-0" och "1.0" aliasar inte numeriska poster

JavaScript index in nodes kontrollerar aktuellt barnantal, och direkt tilldelning, borttagning eller omdefinition av en kanonisk numerisk post kastar TypeError

Samma numerisk-post-begränsningar gäller inuti en skriptobjektfunktion som behåller kollektionen i lexikalt tillstånd, liksom när en annan händelse läser en kollektion som den funktionen returnerar

Använd de befintliga Data DOM-strukturella metoderna för att ordna om eller ta bort barn; en kollektion behållen av ett skriptobjekt läser aktuell händelsegraf efter varje sparad redigering och efter rullning

Oberoende kloner

En klonad barnlista använder den oberoende lagring som beskrivs i XFA-frågenodekollektioner; dess append, insertoch remove metoder ändrar den oberoende lagringen

Att skriva en nod som refereras av någon av listorna ändrar den faktiska nativa noden, och sparade värden och egenskapsöverskridningar består genom sparad XDP och nativ PDF-utseendegenerering

Data DOM-barnkollektioner tillhandahåller också clone() med oberoende postlagring; deras befintliga strukturella append, insertoch remove metoder fortsätter att mutera det nativa dataträdet

Transaktioner och gränser

Direkta kollektionsobjekt och oberoende kloner delar händelsekollektionens allokeringsgränser, operationskontroller och transaktionstidsgräns

Ett ofångat händelsefel eller budgetfel återställer nativa värden, upprepade instanser, behållet skripttillstånd, oberoende listlagring och journatillstånd tillsammans

Det direkta kollektionsobjektet och dess egenskaper är skrivskyddade; direkt tilldelning, borttagning, egenskapsomdefinition, prototypändringar och att förhindra utvidgningar kastar ett fel

Data DOM-kollektioner avvisar skrivningar, borttagning och omdefinition av kanoniska numeriska poster samtidigt som sina befintliga namngivna strukturella metoder och ordinärt icke-numeriskt egenskapsbeteende behålls

Coverage

Detta gränssnitt exponerar aktuella formulär- och egenskapsbarnkollektioner samt oberoende barnlistkloner

Generellt mall-/formulärnodsskapande, rekursiv nodkloning, barnträd-insättning och borttagning samt ytterligare nodklassbindningar förblir separat arbete

Transaktionell XFA Data DOM-struktur · XFA-widgetkörtid