Referenssyntaxkortkommandon för FormCalc

FormCalc innehåller ett antal genvägar som gör det lättare att använda objektegenskaper och värden och därmed att skapa referenser. I det här avsnittet beskrivs genvägarna för referenssyntaxen i FormCalc.

Aktuellt fält eller objekt

Hänvisar till det aktuella fältet eller objektet.

Beteckning

$

Exempel

$ = "Tommy Andersson"

Exemplet ovan visar hur du tilldelar det aktuella fältet eller objektet värdet Tony Blue.

Datamodellens rot, xfa.datasets.data

Representerar datamodellens rot, xfa.datasets.data.

Beteckning

$data

Exempel

$data.purchaseOrder.total

likvärdigt med

xfa.datasets.data.purchaseOrder.total

Formulärobjektshändelse

Representerar den aktuella formulärobjektshändelsen.

Beteckning

$event

Exempel

$event.name

likvärdigt med

xfa.event.name

Mer information finns i Arbeta med händelsemodellen.

Formulärmodellrot

Representerar formulärmodellens rot, xfa.form.

Beteckning

$form

Exempel

$form.purchaseOrder.tax

är likvärdigt med att skriva

xfa.form.purchaseOrder.tax

Värdobjekt

Representerar värdobjektet.

Beteckning

$host

Exempel

$host.messageBox("Hej där")

likvärdigt med

xfa.host.messageBox("Hej där")

Mer information finns i Arbeta med ett värdprogram.

Layoutmodellrot

Representerar layoutmodellens rot, xfa.layout.

Beteckning

$layout

Exempel

$layout.ready

är likvärdigt med att skriva

xfa.layout.ready

Insamling av datapost

Representerar den aktuella posten i en datasamling, t ex från en XML-fil.

Beteckning

$record

Exempel

$record.header.txtOrderedByCity

refererar till noden txtOrderedByCity i noden header i aktuella XML-data.

Mallmodellrot

Representerar mallmodellens rot, xfa.template.

Beteckning

$template

Exempel

$template.purchaseOrder.item

likvärdigt med

xfa.template.purchaseOrder.item

Datamodellens rot, xfa.datasets

Representerar datamodellens rot, xfa.datasets.

Beteckning

!

Exempel

!data

likvärdigt med

xfa.datasets.data

Markera alla formulärobjekt

Markerar alla formulärobjekt inom en given behållare, t ex ett delformulär, oavsett namn, eller markerar alla objekt med snarlika namn.

Du kan använda syntaxen ”*” (asterisk) med JavaScript om den används med metoden resolveNode.

Beteckning

*

Exempel

Följande uttryck markerar alla objekt med namnet item i ett formulär:

xfa.form.form1.item[*]

Söka efter objekt i en underordnad behållare

Om du vill söka efter objekt i en behållare som är underordnad den aktuella behållaren kan du ange det med två punkter var som helst i referenssyntaxen.

Du kan använda syntaxen ”..” (dubbelpunkt) med JavaScript om den används med metoden resolveNode.

Beteckning

..

Exempel

UttrycketSubform_Page..Subform2söker efter nodenSubform_Page(som vanligt) och sedan efter en nod, underordnadSubform_Pagemed namnetSubform2.

I exempelträdet ovan är

Subform_Page..TextField2

likvärdigt med

Subform_Page.Subform1[0].Subform3.TextField2[0]

eftersom TextField2[0] är i den första Subform1-nod som påträffas vid en sökning. Ytterligare ett exempel:

Subform_Page..Subform3[*]

returnerar alla fyra TextField2-objekt.

Beteckna ett namnlöst objekt eller ange en egenskap

Nummerteckenbeteckningen (#) används för att ange något av följande värden i en referenssyntax:

  • Ett namnlöst objekt

  • Specificera en egenskap i en referenssyntax om en egenskap och ett objekt har samma namn

Du kan använda syntaxen ”#” (nummertecken) med JavaScript om den används med metoden resolveNode.

Beteckning

#

Exempel

Följande referenssyntax använder t.ex. ett namnlöst delformulär:

xfa.form.form1.#subform

Följande referenssyntax använder egenskapen name på ett delformulär om delformuläret också innehåller fältet name:

xfa.form.form1.#subform.#name

Ett objekts förekomstvärde

Hakparentesen ([ ]) anger ett objekts förekomstvärde.

I språkspecifika formulär för arabiska, hebreiska, thailändska och vietnamesiska finns referenssyntaxen alltid till höger (även för språk som skrivs från höger till vänster).

Beteckning

[ ]

Exempel

Du refererar till ett förekomstvärde genom att sätta hakparentes ([ ]) efter ett objektnamn. Något av följande värden måste finnas i hakparentesen:

  • [ n ], där n är förekomstens indexnummer som ett absolut tal räknat från 0. Förekomstnummer utanför intervallet returnerar inget värde. Exempel:

    xfa.form.form1.#subform.Quantity[3]

    refererar till den fjärde förekomsten av objektet Quantity.

  • [ +/- n ], där n anger en förekomst i förhållande till förekomsten av objektet som gör referensen. Positiva värden ger högre förekomstnummer medan negativa värden ger lägre. Exempel:

    xfa.form.form1.#subform.Quantity[+2]

    Den här referensen avser den förekomst av Quantity vars förekomstnummer är två högre än den refererande behållarens förekomstnummer. Om det t ex var objektet Quantity[2] som gjorde referensen skulle den vara likvärdig med att skriva

    xfa.template.Quantity[4]

    Om det framräknade indexnumret ligger utanför intervallet returnerar referensen ett fel.

    Syntaxen används oftast för att hitta föregående eller nästa förekomst av ett visst objekt. Alla förekomster av objektet utom den första kan t ex använda Quantity för att få värdet för föregående Quantity-objekt.

  • [*] indikerar flera förekomster av ett objekt. Det första namngivna objektet hittas och objekt med samma namn på samma nivå returneras. Observera att om du använder det här skrivsättet returneras en objektsamling. Exempel:

    xfa.form.form1.#subform.Quantity[*]

  • Det här uttrycket refererar till alla objekt med namnet Quantity som finns på samma nivå som den första förekomsten av Quantity som referensen påträffar.

Givet exempelträdet ovan returnerar uttrycken följande objekt:

  • Subform_Page.Subform1[*] returnerar båda Subform1-objekten.

  • Subform_Page.Subform1.Subform3.TextField2[*] returnerar två TextField2-objekt.Subform_Page.Subform1 leder till det första Subform1-objektet till vänster och TextField2[*] utvärderas i förhållande till Subform3-objektet.

  • Subform_Page.Subform1[*].TextField1 returnerar båda TextField1-förekomsterna.Subform_Page.Subform1[*] leder till båda Subform1-objekten och TextField1 utvärderas i förhållande till Subform1-objekten.

  • Subform_Page.Subform1[*].Subform3.TextField2[1] returnerar det andra och det fjärde TextField2-objektet från vänster.Subform_Page.Subform1[*] leder till båda Subform1 -objekten och TextField2[1] utvärderas i förhållande till Subform3-objekten.

  • Subform_Page.Subform1[*].Subform3[*] returnerar båda TextField1-objekten.

  • Subform_Page.*returnerar både Subform1-objekten och Subform2-objektet.

  • Subform_Page.Subform2.*returnerar de två förekomsterna av NumericField2-objektet.

  • Du kan använda syntaxen ”[ ]” (hakparenteser) med JavaScript om den används med metoden resolveNode.