|
Du kan dynamiskt fylla i ett andra fält efter att du har fyllt i det första med hjälp av skript. Du kan t ex ha en nedrullningsbar lista som visar en lista över länder. När en användare har valt ett land visas en andra lista med staterna eller provinserna i landet.
Exempel-XML-filen som du ansluter till kan t ex ha följande definierat:
<MyData>
<country/>
<countries>
<item uiname="United States" token="US"/>
<item uiname="Vietnam" token="SRV"/>
</countries>
<state/>
<US>
<item>California</item>
<item>New York</item>
<item>Texas</item>
</US>
<SRV>
<item>An Giang</item>
<item>Bac Giang</item>
<item>Bac Kan</item>
</SRV>
</MyData>
När du t.ex. har valt Vietnam i den första nedrullningsbara listan, visas bara de objekt som gäller för Vietnam i listan Stater/provinser.
Innan du utför den här åtgärden måste du se till att följande inställningar används:
Ställa in det första fältetKlicka på kategorin Standard på paletten Objektbibliotek, och dra sedan en nedrullningsbar lista eller listruta till formulärdesignen.
Infoga t ex en nedrullningsbar lista.
(Valfritt) Klicka på fliken Fält på paletten Objekt, och skriv sedan en bildtext för objektet i rutan Bildtext.
Skriv t.ex. Land.
Gör något av följande:
Välj dataanslutning.
Obs! Om du inte redan är ansluten till en datakälla kan du endast välja Standarddatabindning i listan Dataanslutning.
Klicka på triangeln bredvid rutan Objekt och välj en bindning.
Bindningen som du väljer ska vara ett upprepat datavärde eller en upprepad grupp, så att fler än ett objekt visas i den nedrullningsbara listan eller listrutan.
Välj t.ex. länder > objekt.
Följande sträng visas i rutan Objekt:
$record.countries.item[*]
 Du kan skriva strängen i rutan Objekt i stället för att välja den. Obs! Rutan Objekt är inte tillgänglig för OLEDB-dataanslutningar. Använd rutorna Objekttext och Objektvärde och välj de databaskolumner som ska användas för att fylla i listan.
Om du vill visa ett användarvänligt objektnamn vid körningen klickar du på triangeln bredvid rutan Objekttext och väljer en bindning.
Välj t ex @uiname om du vill visa USA.
(Valfritt) Om du vill spara ett annat värde än etiketten för Objekttext i datakällan, klickar du på triangeln bredvid rutan Objektvärde och väljer sedan en bindning.
Välj t ex @token om du vill spara US i datafilen.
Klicka på OK.
När en bindning har ställts in visas en liten länkikon tillsammans med den aktiva etiketten.
Ställa in ett skript som dynamiskt fyller i ett andra fält när det första har fyllts iNär den första nedrullningsbara listan är markerad väljer du Change i listan Visa i skriptredigeraren.
Välj JavaScript i listan Språk.
Skriv följande skript:
var tempString = "xfa.record." + this.boundItem(xfa.event.newText);
var oItems = xfa.resolveNode(tempString);
var nItemsLength = oItems.nodes.length;
DropDownList2.clearItems();
for (var nItemCount = 0; nItemCount < nItemsLength; nItemCount++) {
DropDownList2.addItem(oItems.nodes.item(nItemCount).value);
}
Skript
|
Beskrivning
|
tempString
|
Anger strängen för xfa.record. Om t ex USA väljs blir xfa.record xfa.record.US.
|
this.boundItem
|
En listobjektmetod som översätter från det användarvänliga namnet till värde- eller tokensträngen. När t ex USA väljs, skickas US .
|
xfa.event.newText
|
Returnerar det nya textinnehållet i listan Change-händelse. När t ex USA väljs, skickas USA .
|
var nItemsLength = oItems.nodes.length;
|
Frågar efter antalet underordnade element i <US> (eller <SRV>), det vill säga antalet underordnade <objekt>.
|
DropDownList2.clearItems();
|
Tar bort alla befintliga objekt i den andra nedrullningsbara listan.
|
for (var nItemCount = 0; nItemCount < nItemsLength; nItemCount++)
|
Frågar för varje underordnat <objekt> i <US> (eller <SRV>).
|
DropDownList2.addItem(oItems.nodes.item(nItemCount).value);
|
Hämtar textvärdet för det underordnade objektet som anges med indexet nItemCount, och lägger till värdet som ett nytt objekt i den andra nedrullningsbara listan
|
Ställla in det andra fältetKlicka på kategorin Standard på paletten Objektbibliotek, och dra sedan en nedrullningsbar lista eller listruta till formulärdesignen.
Infoga t ex en nedrullningsbar lista.
(Valfritt) Klicka på fliken Fält på paletten Objekt, och skriv sedan en bildtext för objektet i rutan Bildtext.
Skriv t.ex. Stater/provinser.
Bind fältet till datakällan.
Du kan t ex binda noden stat till den nedrullningsbara listan Stater/provinser.
Visa formuläret på fliken Förhandsgranska PDF
|
|
|