Générer un texte avec valeur de champs  (Lu 193 fois) Partager ce sujet Imprimer

1 B


jahsoldier  26 octobre 2020 : 22:37

Bonjour à vous,

J'ai parcouru le forum et cherché sur le net une solution à mon problème mais sans succès (mais je suis persuadé que le souci a déjà été abordé).
En gros dans mon formulaire, j'ai un champ de texte à la fin que je voudrais remplir en reprenant des informations d'autres champs présents sur le formulaire.  Je me suis donc inspiré du sujet suivant pour commencer : http://abracadabrapdf.net/forum/index.php/topic,3811.0.html
et mon code donne donc ceci dans le script de calcul personnalisé

event.target.value="Et certifie que les locaux destinés à un XXX sis "+this.getField("Rue_Etablissement").value+", n°"+this.getField("N°_Etablissement").value+"
dont l’enseigne est "+this.getField("Enseigne").value+", et le/la gérant(e) "+this.getField("gérant").value+",respectent les critères requis par la loi du 3 avril 1953 et l’arrêté royal du 4 avril 1953."

sauf qu'en fait quand je remplis les champs en question rien ne s'affiche dans mon champ récapitulatif (le champs autorisation en page 2).
Ceci est mon premier souci.
Mon second souci c'est que je voudrais qu'en fonction du choix fait en début de page 2 (autorisation/refus) le champ ad-hoc s'affiche et que l'autre reste masqué.  J'ai essayé également via les options de souris relâchée etc, mais j'ai du loupé une étape.
Mon dernier petit problème, c'est de savoir si dans un champ texte on peut insérer des cases à cocher ? Ou alors est ce que je les positionne en avant plan de mon champ et ça suffira ?
En question bonus, est-il possible pour le texte qui se préremplirait (dans le champ autorisation) qu'à la place des XXX on ajoute le texte correspondant aux différentes cases cochées dans la qualité en page 1 ?
Merci déjà pour le temps passé à la lecture et bonne soirée/journée.
Le lien vers mon fichier : https://framadrop.org/lufi/r/vVhqBMH8wu#BOM2QCG9ecm0xb4cVuYjJazjaZMDIXTEdMOSR9nlbtY=

IP archivée


Merlin  27 octobre 2020 : 10:13

Bonjour et bienvenue

Citer
sauf qu'en fait quand je remplis les champs en question rien ne s'affiche dans mon champ récapitulatif
C'est normal car le champ "gérant" n'existe pas. Ce qui renvoie une erreur, voir ce tuto à propos de la Console JavaScript :
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/


Citer
En question bonus, est-il possible pour le texte qui se préremplirait (dans le champ autorisation) qu'à la place des XXX on ajoute le texte correspondant aux différentes cases cochées dans la qualité en page 1 ?
Oui, exactement de la même façon que pour les champs texte. Sauf qu'il faudra prévoir une case cochée par défaut pour éviter l'affichage de la valeur "Off" quand aucune case n'est cochée.
Par ailleurs :
- il faut éviter les caractères accentués/spéciaux dans les noms de champs,
- tu aurais intérêt à mettre les valeurs en variable pour assembler le texte final, ça évite les erreurs de syntaxe et c'est plus facile à maintenir :

var text1 = this.getField("Rue_Etablissement").value;
var text2 = this.getField("N°_Etablissement").value;
var text3 = this.getField("Enseigne").value;
var text4 = this.getField("Nom").value;
var coch1 = this.getField("CASEaCOCHER").value;
event.target.value = "Et certifie que les locaux destinés à un " + coch1 + " sis "+ text1 +", n°"+ text2 +" dont l’enseigne est "+ text3 +", et le/la gérant(e) "+ text4 +", respectent les critères requis par la loi du 3 avril 1953 et l’arrêté royal du 4 avril 1953."


IP archivée


Merlin  27 octobre 2020 : 10:17

Citer
Mon second souci c'est que je voudrais qu'en fonction du choix fait en début de page 2 (autorisation/refus) le champ ad-hoc s'affiche et que l'autre reste masqué.
Oui c'est possible, sauf qu'il n'y a pas de champ nommé "ad-hoc" dans ce document.   :geek:


Citer
Mon dernier petit problème, c'est de savoir si dans un champ texte on peut insérer des cases à cocher ?
Non.

IP archivée


jahsoldier  27 octobre 2020 : 10:27

Bonjour,

Merci déjà pour les réponses.  Je vais m'atteler à renommer mes variables correctement et nommé correctement le champ gérant. 
Est-ce que je les renommes directement dans la partie pour le scripts personnalisé ?Et donc pour les cases à cocher, avec
var coch1 = this.getField("CASEaCOCHER").value; Cela n'affichera que les cases qui sont cochées et pas toutes les cases ? Je veux dire par là que je vais devoir mettre les valeurs pour toutes les cases à cocher, à savoir : débit de boissson, frites, snack chaud, snack froid,... mais je voudrais que ne s'affichent que les cases qui sont cochées du coup.
Pour le champs ad-hoc, je voulais parler des champs autorisation et refus en page 2 du document ^^ je ne parlais évidement pas de l'ami de Tintin  :joker:
Je m'attelle à la modification et reviens vers vous lorsque j'aurai d'autres soucis ou bien pour dire que tout va bien :)



IP archivée


Merlin  27 octobre 2020 : 11:27

Citer
Cela n'affichera que les cases qui sont cochées et pas toutes les cases ?
Ça n'affichera que la valeur de la case sélectionnée dans le groupe, si aucune case n'est cochée la valeur affichée sera "Off", d'où mon conseil ci-dessus.

IP archivée


jahsoldier  27 octobre 2020 : 15:08

Rebonjour,

J'avance un peu.
Voici donc ce que j'ai à l'heure actuelle comme script :

var text1 = this.getField("Rue_Etablissement").value;
var text2 = this.getField("N°_Etablissement").value;
var text3 = this.getField("Enseigne").value;
var text4 = this.getField("Nom").value;
var coch1 = this.getField("débit boisson").value;
var coch2 = this.getField("Petite restauration").value;
var coch3 = this.getField("Restaurant").value;
var coch4 = this.getField("Snack chaud").value;
var coch5 = this.getField("Snack froid").value;
var coch6 = this.getField("Plats à emporter").value;
var coch7 = this.getField("Plats consommer sur place").value;
var coch8 = this.getField("Cercle privé").value;
var coch9 = this.getField("Hôtel").value;
var coch10 = this.getField("Maison de logement").value;
var coch11 = this.getField("Salon de dégustation").value;
var coch12 = this.getField("Frites").value;
var coch13 = this.getField("Utilisation de la salle").value;

event.target.value = "Et certifie que les locaux destinés à un " + coch1 + ", " + coch2 + ", " + coch3 + " sis "+ text1 +", n°"+ text2 +" dont l’enseigne est "+ text3 +", et le/la gérant(e) "+ text4 +", respectent les critères requis par la loi du 3 avril 1953 et l’arrêté royal du 4 avril 1953."
Le hic, c'est que ça m'affiche des oui et non pour les cases à cocher, ce que je voudrais c'est qu'il reprenne le nom de la case en texte (je ne l'ai fait que pour 3 case à l'heure actuelle, histoire de ne pas devoir tout effacer ensuite s'il le fallait ^^).  Quelle serait donc du coup la formulation correcte pour ce faire ?   
Edit :  J'ai trouvé, c'est dans la valeur d'exportation de la case dans les propriétés :)   Par contre, serait-il possible de supprimer l'affichage des off quand la case n'est pas cochée (voir capture d'écran en pièce jointe) ?

Par ailleurs, je n'ai pas encore trouvé comment afficher un champ ou l'autre en fonction du choix effectuer en début de page 2, une fois que j'ai ça j'ai toutes les informations qu'il me fallait :)



IP archivée


Merlin  27 octobre 2020 : 18:26

Oui, exactement de la même façon que pour les champs texte. Sauf qu'il faudra prévoir une case cochée par défaut pour éviter l'affichage de la valeur "Off" quand aucune case n'est cochée.

si aucune case n'est cochée la valeur affichée sera "Off", d'où mon conseil ci-dessus.

Sinon il faut utiliser des boutons-radio : la différence avec les cases-à-cocher c'est que l'utilisateur ne peut pas décocher une série, c'est un choix forcé.

IP archivée


jahsoldier  27 octobre 2020 : 18:56

Ok,

Est-ce qu'on peut imaginer, avoir un espèce de Or/and ou un if qui fasse en sorte de n'afficher que le/les cases cochées dans le formulaire (pour effacer la multitude de off).  J'avoue que je suis un peu perdu pour n'afficher que le ou les cases sélectionnées et pas l'ensemble des cases.  Si c'est possible, alors je cocherai une case par défaut qu'on pourra décocher pour cocher les cases correctes ensuite.
Merci en tout cas pour les réponses et le temps passé sur mon/mes soucis.
Bonne soirée

IP archivée


Merlin  28 octobre 2020 : 08:55

Ci-joint un exemple avec 5 coches (j'ai utilisé des boutons-radio, le bouton par défaut est le premier).

Concernant le champ a afficher/masquer en page 2 il faudrait vraiment que tu dises duquel il s'agit, à moins que ce ne soit confidentiel ?  :joker:

IP archivée


jahsoldier  28 octobre 2020 : 09:25

Merci pour la solution avec les boutons, les hic c'est qu'il peut y avoir plusieurs choix possibles.  Du genre Snack chaud et snack froid avec plats à emporter par exemple :s
Pour les champs à afficher en page 2,  ce que j'aimerai, c'est que dans un premier temps ni le champ autorisation ni le champ refus ne s'affichent, mais que l'un des deux s'affiche en fonction du choix fait dans la première ligne, à savoir que la bourgmestre, autorise ou refuse l'exploitation.


IP archivée


bebarth  28 octobre 2020 : 09:25

bonjour,
Voici ma solution : Tu mets les renseignements en "info-bulle", et tu crée une table avec uniquement les cases cochées, puis tu rappelles tous les éléments de cette table.
Il faut que les 4 champs soient renseignés plus au moins une case cochée pour que le texte s'affiche.
Tu me dis si tu bloques sur un point.
@+
 :bonjour:

IP archivée


jahsoldier  28 octobre 2020 : 09:45

Bonjour bebarth,

Merci pour la méthode, cela fonctionne nickel.  Je n'ai pas encore tout compris à la récupération des infos dans un tableau mais je vais me pencher sur la question :)
Il me reste à afficher et masquer les champs autorisation refus en fonction du choix sur la première ligne de la page 2 en ayant les deux champs masqué au départ.


IP archivée


bebarth  28 octobre 2020 : 10:01

Voici.
Regarde en script de touches personnalisé du menu déroulant.
@+
 :bonjour:

IP archivée


jahsoldier  28 octobre 2020 : 10:06

Super ça fonctionne,

Merci beaucoup pour votre aide :)


IP archivée


Merlin  28 octobre 2020 : 10:26

Merci pour la solution avec les boutons, les hic c'est qu'il peut y avoir plusieurs choix possibles
Ah ben oui, mais si tu compliques tout à loisir…  :Smiley08:

Heureusement que bebarth est là.  :bravo:

IP archivée


jahsoldier  28 octobre 2020 : 10:56

Ben en fait c'est pour ça que j'avais choisi les cases à cocher et pas le bouton radio  :Smiley03:

Mais oui, bebarth à été d'un grand secours, et via son système j'ai pu aussi afficher masquer d'autres champs pour la suite du formulaire :)

IP archivée