Cet exemple vous explique comment masquer les boutons lors de l’impression d’un formulaire ; il vous explique également comment masquer et afficher des objets en modifiant les valeurs de visibilité au moment de l’exécution.
Livecycle eg hide show objects Masquage et affichage dobjets
Grâce aux listes déroulantes de la zone Valeurs de visibilité, l’utilisateur peut afficher ou masquer les objets. Dans le diagramme suivant, le champ d’adresse est masqué et la disposition du formulaire est ajustée en conséquence. Le bouton Formulaire pour impression est également visible.
Livecycle eg hide show objects2 Masquage et affichage dobjets
Remarque : 
Le script pour les valeurs de visibilité des sous-formulaires utilise une instruction de commutation pour gérer les trois options de visibilité qu’un utilisateur peut appliquer à l’objet de sous-formulaire :
case ‘Invisible’:
Subform1.presence =”invisible”;
break;
case ‘Hidden (Exclude from Layout)’:
Subform1.presence =”hidden”;
break;
default:
Subform1.presence =”visible”;
break;
}
var nSubLength = Subform1.nodes.length;
var sSelectField = fieldList.rawValue;
Le script suivant utilise la méthode replace pour supprimer tous les espaces contenus dans le nom du champ enregistré dans la variable sSelectField afin que la valeur de la liste déroulante corresponde au nom de l’objet dans la palette Hiérarchie :
sSelectField = sSelectField.replace(‘ ‘, ”);
Ce script utilise une boucle For pour passer en revue tous les objets contenus dans le Sous-formulaire1 :
for (var nCount = 0; nCount < nSubLength; nCount++) {
Si l’objet actif dans le Sous-formulaire1 est de type field et l’objet actif a le même nom que celui sélectionné par l’utilisateur, les cas de commutation suivants sont exécutés :
if ((Subform1.nodes.item(nCount).className == “field”) & (Subform1.nodes.item(nCount).name == sSelectField)) {
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;
}
}
}
var nSubLength = Subform1.nodes.length;
var sSelectButton = buttonList.rawValue;
Le script suivant utilise la méthode replace pour supprimer tous les espaces contenus dans le nom du bouton enregistré dans la variable sSelectField afin que la valeur de la liste déroulante corresponde au nom de l’objet dans la palette Hiérarchie :
sSelectButton = sSelecButton.replace(/\s/g, ”);
Ce script utilise une boucle For pour passer en revue tous les objets contenus dans le Sous-formulaire1 :
for (var nCount = 0; nCount < nSubLength; nCount++) {
Si l’objet actif dans le Sous-formulaire1 est de type field et l’objet actif a le même nom que celui sélectionné par l’utilisateur, exécutez les cas de commutation suivants :
if ((Subform1.nodes.item(nCount).className == “field”) &
Subform1.nodes.item(nCount).name == sSelectButton)) {
Ce script utilise une instruction switch pour gérer les cinq valeurs de visibilité qu’un utilisateur peut appliquer aux objets de bouton.
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;
}
}
}
Utilisez la méthode resetData pour rétablir toutes les valeurs par défaut des listes déroulantes :
xfa.host.resetData();
Utilisez la méthode remerge pour fusionner à nouveau la conception de formulaire et les données du formulaire. Dans le cas présent, la méthode rétablie de manière efficace les objets de la zone Objets de formulaire à leur état d’origine :
xfa.form.remerge();

Masquage et affichage d’objets