XFA Query Node Collections

JavaScript- och FormCalc-händelser kan inspektera in-scope nodförekomster och behålla oberoende frågelistor över körtidshändelser

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

Förekomstegenskaper

node.all returnerar en färsk ordnad frågelista av in-scope noder med samma literala namn; en namnlös nod använder sitt klassnamn i stället

node.classAll returnerar en färsk ordnad frågelista av in-scope noder med samma klass, inklusive noder med andra namn

node.index och node.classIndex returnerar den nollbaserade förekomsten inom respektive scope

Namnlösa icke-egenskapsbehållare är transparenta för namngiven scope-uppslagning, inklusive positiva och negativa relativa SOM-förekomster; egenskapsbehållare behåller sitt eget scope

Literala namn som #field, *och Unicode-namn matchas som författade namn av dessa egenskaper

Oberoende listoperationer

MedlemBeteende
lengthAktuellt antal listposter
item(index)Refererad nod, eller null för ett negativt, icke-heltals- eller utanför-intervallet-index
namedItem(name)Första refererade nod med det literala namnet, eller null när ingen nod matchar
clone()Ny oberoende postlagring som refererar samma noder
append(node)Lägg till samma levande nodreferens på slutet, inklusive en dubbletterad referens
insert(node, before)Infoga en levande nodreferens före den första matchande referensen; null lägger till
remove(node)Ta bort den första matchande referensen; en frånvarande referens kastar ett fel

Listor returnerade av resolveNodes, alloch classAll använder oberoende postlagring; att ändra den lagringen lämnar formulär- och dataträden på plats, medan att skriva en refererad nod ändrar den faktiska noden

Formulär- och egenskapskollektioner node.nodes exponerar levande barnvyer; deras clone() metoder returnerar oberoende frågelistor, som beskrivs i XFA-direkta barnkollektioner

Data DOM node.nodes tillhandahåller också en oberoende clone(); dess befintliga append, insertoch remove metoder behåller sitt nativa strukturella beteende, som beskrivs i Transaktionell XFA Data DOM-struktur

Arrayiteration, indexerade läsningar och uppräkning exponerar refererade noder; direkt tilldelning, borttagning, egenskapsomdefinition, prototypändringar och att förhindra utvidgningar kastar fel innan frågelistan ändras

Persistens och stabila identiteter

Skriptobjekt kan behålla en frågelista eller klon över händelser; varje operation använder aktuell händelsresolver och transaktionsgränser

Frågade instanshanterarhandles ruttar operationer till aktuell händelsegraf när de behålls eller klonas över händelser

Namnbyte eller omordning av en överlevande nod behåller dess behållna listidentitet; att ta bort en upprepad formulärinstans gör läsningar och skrivningar genom den borttagna referensen misslyckas i stället för att välja en ersättningsinstans

En oberoende lista kan klona sina lagrade referenser och ta bort en tidigare behållen borttagen-nod-referens utan att dereferera noden

Frågelistlagring är körtidsskripttillstånd; att spara XDP lagrar de nativa nodvärdena och strukturen, medan en ny körtid startar en ny skriptobjektsession

Transaktioner och gränser

Ogiltiga noder och medlemskapsreferenser misslyckas innan den listoperationen muterar lagring; ett fångat fel lämnar tidigare giltiga operationer i samma händelse tillgängliga

Ett ofångat händelsefel, operationsbudget eller förloppstidsfel återställer frågelistmutationer, nativa värden, upprepade instanser, behållet skriptobjekttillstånd och journatillstånd tillsammans, vilket låter samma körtid försöka igen

TXFAFormScriptLimits.MaxArrayItems begränsar varje behållen listlängd och begränsar separat kumulativa listobjekt och nyallokerade poster under en händelse; dess nollinställning använder händelsekontextens standard på 65 536

Tomma kloner konsumerar objektbudgeten, icke-tomma kloner konsumerar också postbudgeten, och behållna listor förblir avgränsade över separata lyckade händelser

FormCalc- och PDF-konsumtion

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

FormCalc-förekomstselektion på literala xfa.form, xfa.datasetsoch xfa.record sökvägar använder nativ SOM-upplösning; listindexering efter en kollektionsegenskap indexerar den kollektionen

Spara körtidsbyte till XDP och skicka dem till HPDFXFAWriteHeadlessPDF för att generera faktiska nativa fält och utseenden ur de sparade värdena, inklusive redigeringar genom behållna överlevande upprepningsinstansreferenser

TXFAHeadlessPDFOptions.Editable = False skapar skrivskyddade nativa fält med utseenden, i stället för att platta ut dem

Täckning

Detta gränssnitt tillhandahåller oberoende frågelistor och förekomstmetadata; generellt mall-/formulärnodsskapande och kloning, ytterligare nodklassskriptande, schemavalidering och extern media förblir separat arbete

XFA-widgetkörtid · Nativt Data-DOM