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
| Medlem | Beteende |
|---|---|
length | Aktuellt 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