Dit voorbeeld laat zien hoe u knoppen verbergt wanneer u een formulier afdrukt. Ook ziet u hoe u objecten weergeeft en verbergt door de aanwezigheidswaarden tijdens runtime te wijzigen.
Opmerking: U kunt ook zonder een script te schrijven via het dialoogvenster Action Builder in het menu Opties objecten weergeven of verbergen in formulieren met een stroombare indeling. Zie voor meer informatie
Acties maken in formulieren
In dit voorbeeld worden alle formulierobjecten in het formulier weergegeven.
Met behulp van de vervolgkeuzelijsten in het gebied Aanwezigheidswaarden kan de invuller van het formulier objecten weergeven of verbergen. In de volgende afbeelding is het adresveld verborgen en is de formulierindeling dienovereenkomstig aangepast. Ook de knop voor formulier afdrukken is onzichtbaar.
Opmerking: Als u objecten tijdens runtime wilt weergeven of verbergen, slaat u uw formulier op als een dynamisch PDF-formulierbestand van Acrobat.
Ga naar het LiveCycle Developer Center om dit scriptvoorbeeld en andere voorbeelden te bekijken.
Een script maken voor de aanwezigheidswaarden van subformulieren
Dit script voor de aanwezigheidswaarden van het subformulier bevat de instructie Switch. Hiermee worden de drie aanwezigheidsopties verwerkt die de invuller van een formulier op het subformulierobject kan toepassen:
switch(xfa.event.newText) {
case 'Invisible':
Subform1.presence = "invisible";
break;
case 'Hidden (Exclude from Layout)':
Subform1.presence = "hidden";
break;
default:
Subform1.presence = "visible";
break;
}
Een script maken voor de aanwezigheidswaarden van tekstvelden
Dit script voor de aanwezigheidswaarden van tekstvelden vereist twee variabelen. Met de eerste variabele wordt het aantal objecten opgeslagen dat zich in Subform1 bevindt:
var nSubLength = Subform1.nodes.length;
Met de tweede variabele wordt de naam opgeslagen van het tekstveld dat door de invuller van het formulier wordt geselecteerd in de vervolgkeuzelijst Tekstvelden:
var sSelectField = fieldList.rawValue;
In het volgende script wordt de methode replace gebruikt om alle spaties te verwijderen uit de naam van het veld dat met de variabele sSelectField is opgeslagen. Hierdoor komt de waarde van de vervolgkeuzelijst overeen met de naam van het object in het palet Hiërarchie:
sSelectField = sSelectField.replace(' ', '');
Dit script bevat een For-lus om alle objecten in Subform1 te doorlopen:
for (var nCount = 0; nCount < nSubLength; nCount++) {
Als het huidige object in Subform1 van het type field is en het huidige object dezelfde naam heeft als het object dat door de invuller van het formulier wordt geselecteerd, worden de volgende switches uitgevoerd:
if ((Subform1.nodes.item(nCount).className == "field") & (Subform1.nodes.item(nCount).name == sSelectField)) {
Het volgende script voor de aanwezigheidswaarden van het subformulier bevat de instructie Switch. Hiermee worden de drie aanwezigheidswaarden verwerkt die de invuller van een formulier op tekstveldobjecten kan toepassen:
switch(xfa.event.newText) {
case 'Invisible':
Subform1.nodes.item(nCount).presence = "invisible";
break;
case 'Hidden (Exclude from Layout)':
Subform1.nodes.item(nCount).presence = "hidden";
break;
default:
Subform1.nodes.item(nCount).presence = "visible";
break;
}
}
}
Een script maken voor de aanwezigheidswaarden van knoppen
Het script voor de aanwezigheidswaarden van knoppen vereist twee variabelen. Met deze variabele wordt het aantal objecten opgeslagen dat zich in Subform1 bevindt:
var nSubLength = Subform1.nodes.length;
Met deze variabele wordt de naam opgeslagen van de knop die door de invuller van het formulier wordt geselecteerd in de vervolgkeuzelijst Knoppen:
var sSelectButton = buttonList.rawValue;
In het volgende script wordt de methode replace gebruikt om alle spaties te verwijderen uit de naam van de knop die met de variabele sSelectField is opgeslagen. Hierdoor komt de waarde van de vervolgkeuzelijst overeen met de naam van het object in het palet Hiërarchie:
sSelectButton = sSelecButton.replace(/\s/g, '');
Dit script bevat een For-lus om alle objecten in Subform1 te doorlopen:
for (var nCount = 0; nCount < nSubLength; nCount++) {
Als het huidige object in Subform1 van het type field is en het huidige object dezelfde naam heeft als het object dat door de invuller van het formulier wordt geselecteerd, worden de volgende switches uitgevoerd:
if ((Subform1.nodes.item(nCount).className == "field") &
Subform1.nodes.item(nCount).name == sSelectButton)) {
Het volgende script bevat de instructie switch. Hiermee worden de vijf aanwezigheidswaarden verwerkt die de invuller van een formulier op knopobjecten kan toepassen.
Opmerking: De relevante eigenschap geeft aan of een object moet worden weergegeven wanneer het formulier wordt afgedrukt.
switch(xfa.event.newText) {
case 'Invisible':
Subform1.nodes.item(nCount).presence = "invisible";
break;
case 'Hidden (Exclude from Layout)':
Subform1.nodes.item(nCount).presence = "hidden";
break;
case 'Visible (but Don\'t Print)':
Subform1.nodes.item(nCount).presence = "visible";
Subform1.nodes.item(nCount).relevant = "-print";
break;
case 'Invisible (but Print Anyway)':
Subform1.nodes.item(nCount).presence = "invisible";
Subform1.nodes.item(nCount).relevant = "+print";
break;
default:
Subform1.nodes.item(nCount).presence = "visible";
break;
}
}
}
Een script maken om de vervolgkeuzelijsten opnieuw in te stellen
Gebruik de methode resetData om alle vervolgkeuzelijsten weer op hun oorspronkelijke waarden in te stellen:
xfa.host.resetData();
Gebruik de methode remerge om het formulierontwerp en de formuliergegevens opnieuw samen te voegen. In dit geval worden de objecten in het gebied Formulierobjecten door de methode in hun oorspronkelijke staat hersteld:
xfa.form.remerge();