|
U kunt met behulp van een script een tweede veld dynamisch vullen nadat u het eerste veld hebt gevuld. U kunt bijvoorbeeld een vervolgkeuzelijst maken waarin een lijst met landen wordt weergegeven waaruit gebruikers een land kunnen kiezen. Nadat een gebruiker een land heeft geselecteerd, worden in de tweede lijst de staten of provincies van dat land weergegeven.
In het voorbeeld-XML-bestand waarmee u verbinding maakt, kan bijvoorbeeld het volgende worden gedefinieerd:
<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>
Nadat u bijvoorbeeld Vietnam hebt geselecteerd in de eerste vervolgkeuzelijst, worden in de lijst met staten/provincies alleen die items weergegeven die betrekking hebben op Vietnam.
Voordat u deze taak uitvoert, moet u de volgende instellingen controleren:
Het eerste veld instellenKlik in het palet Objectbibliotheek op de categorie Standaard en sleep een vervolgkeuzelijst of keuzelijst naar het formulierontwerp.
Voeg bijvoorbeeld een vervolgkeuzelijst in.
(Optioneel) Klik in het palet Object op het tabblad Veld en typ een bijschrift voor het object in het vak Bijschrift.
Typ bijvoorbeeld Land.
Voer een van de volgende handelingen uit:
Selecteer de gegevensverbinding.
Opmerking: Als u nog niet met een gegevensbron bent verbonden, is Standaardgegevensbinding de enige optie die u in de lijst Gegevensverbinding kunt selecteren.
Klik op het driehoekje naast het vak Items en selecteer een binding.
De binding die u selecteert, moet een herhalende gegevenswaarde of gegevensgroep zijn, zodat in de vervolgkeuzelijst of keuzelijst meer dan één item wordt weergegeven.
Selecteer bijvoorbeeld countries > item.
De volgende tekenreeks wordt in het vak Items weergegeven:
$record.countries.item[*]
 U kunt deze tekenreeks ook in het vak Items typen in plaats van deze te selecteren. Opmerking: Voor OLEDB-gegevensverbindingen is het vak Items niet beschikbaar. Gebruik de vakken Itemtekst en Itemwaarde om die databasekolommen te selecteren die moeten worden gebruikt om de lijst te vullen.
Als u tijdens het gebruik van het formulier een gebruikersvriendelijke naam wilt weergeven, klikt u op het driehoekje naast het vak Itemtekst en selecteert u een binding.
Selecteer bijvoorbeeld @uiname om United States weer te geven.
(Optioneel) Als u een andere waarde dan het Itemtekst-label in de gegevensbron wilt opslaan, klikt u op het driehoekje naast het vak Itemwaarde en selecteer u een binding.
Selecteer bijvoorbeeld @token om US in het gegevensbestand op te slaan.
Klik op OK.
Nadat u een binding hebt ingesteld wordt bij het actieve label een klein koppelingspictogram weergegeven.
Het script maken waarmee een tweede veld dynamisch wordt gevuld nadat het eerste veld is gevuldSelecteer de eerste vervolgkeuzelijst en kies in de Scripteditor de optie Wijzigen in de lijst Tonen.
Selecteer JavaScript in de lijst Taal.
Typ het volgende script:
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);
}
Script
|
Beschrijving
|
tempString
|
Hiermee geeft u de tekenreeks op voor xfa.record. Als bijvoorbeeld United States wordt geselecteerd, verandert xfa.record in xfa.record.US.
|
this.boundItem
|
Dit is een methode voor een lijstobject waarmee de gebruikersvriendelijke naam wordt omgezet in de waarde of token-tekenreeks. Als bijvoorbeeld United States wordt geselecteerd, wordt US verzonden.
|
xfa.event.newText
|
Dit resulteert in de nieuwe tekstinhoud van de gebeurtenis Change van de lijst. Als bijvoorbeeld United States wordt geselecteerd, wordt United States verzonden.
|
var nItemsLength = oItems.nodes.length;
|
Hiermee wordt het aantal onderliggende elementen van <US> (of <SRV>) opgevraagd, dat het aantal onderliggende elementen van <item> is.
|
DropDownList2.clearItems();
|
Hiermee worden alle bestaande elementen uit de tweede vervolgkeuzelijst verwijderd.
|
for (var nItemCount = 0; nItemCount < nItemsLength; nItemCount++)
|
Hiermee wordt elk onderliggende <item>-element van <US> (of <SRV>) opgevraagd.
|
DropDownList2.addItem(oItems.nodes.item(nItemCount).value);
|
Hiermee wordt de tekstwaarde opgevraagd van het onderliggende <item>-element dat wordt aangegeven door de nItemCount-index. Deze waarde wordt vervolgens als een nieuw item aan de tweede vervolgkeuzelijst toegevoegd.
|
Het tweede veld instellenKlik in het palet Objectbibliotheek op de categorie Standaard en sleep een vervolgkeuzelijst of keuzelijst naar het formulierontwerp.
Voeg bijvoorbeeld een vervolgkeuzelijst in.
(Optioneel) Klik in het palet Object op het tabblad Veld en typ een bijschrift voor het object in het vak Bijschrift.
Typ bijvoorbeeld Staten/provincies.
Bind het veld aan de gegevensbron.
Bind het knooppunt state aan de vervolgkeuzelijst Staten/provincies.
Geef het formulier weer op het tabblad Voorbeeld-PDF.
|
|
|