Donnez vie à vos documents numériques !
 

Ajout de page dans un formulaires

abracadabraPDF Forums PDF – Général Ajout de page dans un formulaires

  • Ce sujet contient 15 réponses, 3 participants et a été mis à jour pour la dernière fois par WilliS4R, le il y a 4 jours.
  • Créateur
    Sujet
  • #72052
    WilliS4R
    Participant

    Bonjour à tous,

    Je pensais avoir tout régle par un masque en m’inspirant des différents échanges. J’ai une nouvelle difficulté.

    Pour masqué ma dernière page j’ai opté pour un masque avec une activation par bouton et mot de passe.

    Le problème est que mes codes présents sur le masque sont KO du fait du renommage des champs pour les listes mères filles ( champs 183,184,185,) et les autres champ listes (180_ds2 et 180_ds3) et les champ textes, 176a_nom, prénom et email.

    Je comprends pourquoi les codes sont inopérants, mais existe t il un moyen ?

     

    Dans la négative,je me contenterai de masquer tous les champs de la page et ne ferait pas de masque.

    Merci pour tout, j’ai déjà énormément progressé avec vos conseils mais la route est longue pour une autonomie 🤣

     

    Attachments:
    You must be logged in to view attached files.
Affichage de 15 réponses de 1 à 15 (sur un total de 15)
  • Auteur
    Réponses
  • #72055
    bebarth
    Maître des clés

     

    bonjour,
    Dans ton fichier les champs des pages dupliquées sont renommées avec un préfixe et c’est normal sinon les champs de même nom auraient toujours la même valeur quelle que soit la page !
    Il faut donc intégrer le préfixe pour chaque script, et ton document est pas mal fait pour ça.
    Par exemple, pour ton champ 180_DS1 tu peux modifier ton script en :
    if (!event.willCommit) {
    if (event.changeEx=="0") {
    this.getField(event.target.name.replace(/_DS1$/,"_DS2")).display=display.hidden;
    this.getField(event.target.name.replace(/_DS1$/,"_DS3")).display=display.hidden;
    } else this.getField(event.target.name.replace(/_DS1$/,"_DS2")).display=display.visible;
    }
    où tu remplaces le nom du champ « prefixe.180_DS1 » par « prefixe.180_DS2 » et « prefixe.180_DS3 » et ce quel que soit ce préfixe.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #72057
    WilliS4R
    Participant

    Effectivement cette option marche parfaitement pour les champs l80 DS1, DS2 et DS3.

    J’ai tenté de reproduire la même logique sur le 113a et les listes mere-filles 183/184 et 185:

    Pour le champ 113a : this.getField(event.target.name.replace(/_nom$/, »_nom »)).value = event.target.value;

    Ca ne marche pas 🙁

    et sur le code java script « affichage », même pb 🙁

     

     

    #72058
    bebarth
    Maître des clés

    C’est pas tout à fait le même principe…
    Je n’ai pas le temps développer ni de vérifier immédiatement, mais voici ce que ça devrait donner.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #72066
    bebarth
    Maître des clés

    Pour le champ 113a…

    Ici il faut trouver dans le document tous les noms de champs qui contiennent « 176a_nom », « 176a_prenom » et « 176a_email » donc :
    if (this.getNthFieldName(i).indexOf("176a_nom")>-1) this.getField(this.getNthFieldName(i)).value=event.target.value;
    etc.

    et sur le code java script « affichage », même pb

    …et ici il faut trouver les champs « 184_Pole » et « 185_Metier » qui sont sur la même page que le champ « 183_Typedepole » donc avec le même préfixe.
    Donc prour trouver ce préfixe :
    var prefixe=event.target.name.substr(0,event.target.name.indexOf("183_Typedepole"));

    @+
    😎

    #72069
    WilliS4R
    Participant

    Bonjour à tous,

    Encore un grand merci pour la solution apportée qui marche parfaitement.

    Une ultime question pour régler je le pense un dernier point sur mon formulaire quasiment opérationnel.

    J’invite l’utilisateur à enregistrer sous la référence précisée dans le le champ Nom_Fichier_1 via un bouton email avec un focus sur ce champ.

    Comment faire un focus sur le champ d’une page model.

    Mon code  initial était

    ThisgetField(« Nom_Fichier_1 »).setFocus()

    Merci et encore bravo pour tout👍

     

    Attachments:
    You must be logged in to view attached files.
    #72071
    Merlin
    Maître des clés

    Ce script ne peux pas fonctionner, la syntaxe n’est pas correcte :

     

    this.getField("Nom_Fichier_1").setFocus();

     

    Par ailleurs, si la page modèle est dupliquée (spawn) il faut indiquer le numéro de widget du champ puisqu’il existe plusieurs fois dans le document.

    #72074
    WilliS4R
    Participant

    Pardon, j’ai écrit un peu vite.

    En pièce jointe, le formulaire.

    Mon dernier bloquage.

    Lorsque on clique sur envoyer l’e-mail, j’invite à l’utilisateur à sauvegarder avant l’envoi et s’il ne l’a pas encore fait je fais un focus sur le champ à côté pour qu’il l’enregistre sous ce nom.

    Le pro avec le modèle c’est que je n’arrive pas à faire le focus. Sur la page chargée par le model.

     

    Attachments:
    You must be logged in to view attached files.
    #72076
    Merlin
    Maître des clés

    Après utilisation du bouton « email » la console dit qu’un champ n’existe pas :

    TypeError: this.getField(...) is null

     

    Le script dit, à la dernière ligne :

    this.getField("Nom_Fichier_1").setFocus();

    Alors qu’aucun champ ne porte ce nom dans le document.

     

    Donc je suggère de remplacer la dernière ligne du script par :

    this.getField("Nom_Fichier").setFocus();

    #72089
    bebarth
    Maître des clés
    bonjour,

    Après utilisation du bouton « email » la console dit qu’un champ n’existe pas : TypeError: this.getField(…) is null

    Le champ « Nom_Fichier_1 » se trouve sur la page modèle donc comme indiqué précédemment il faut trouver le préfixe pour que le « setFocus » s’exécute correctement sur le bon champ de la bonne page !
    Donc pour trouver le préfixe :
    var prefixe=event.target.name.substr(0,event.target.name.indexOf("000_VALIDATION"));
    ...
    this.getField(prefixe+"Nom_Fichier1").setFocus();
    ...

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #72095
    WilliS4R
    Participant

    Hello,

    Ca fonctionne parfaitement.

    Pas si simple l’utilisation du masque.

    J’ai essayé d’étendre cette approche sur deux derniers zones de liste présentes dans mon modele mais je rencontre le problème suivant :

    • Lorsque j’ouvre avec le bouton accès réservé, je ne me retrouve plus sur la nouvelle page mais sur la première page du formulaire
    • Lorsque je sélectionne un champ de la zone de liste, je suis renvoyé en premiere page du document.

    Promis, c’est ma dernière requête… 🙂

    🙂

    Attachments:
    You must be logged in to view attached files.
    #72102
    WilliS4R
    Participant

    Bonjour,

    Après avoir tenté différents codes, je n’arrive hélas pas à résoudre mon problème.

    Pour éclairer mes lecteurs : Afin de récupérer les données de choix multiples (exports), j’ai créé un champ masqué (198a_ADS) qui récupère les valeurs de la liste (198_ADS).

    Les deux codes sont :

    pour le champ « 198_ADS » : this.getField(« 198a_ADS »).setFocus();

    pour le champ « 198a_ADS » :

    var v = this.getField(« 198_ADS »).value;

    if (typeof v == »object ») event.value = v.join(« , « );

    else event.value = v;

     

    Tout marche parfaitement quand la feuille n’est pas identifié en « modèle ». J’ai essayé avec les approches de Bebarth et Merlin sur la notion de « PRefixe » sans succès, j’ai essayé d’appelé des scripts sans succès …

    Je sèche lamentablement 🙂

    En pièce jointe, les listes qui fonctionnent si on affiche le model. En revanche, si on ajoute la page, c’est KO

    Attachments:
    You must be logged in to view attached files.
    #72105
    WilliS4R
    Participant

    Avec un peu de méthode…

    J’y suis arrivé 🤣🤣🤣🤣

    Attachments:
    You must be logged in to view attached files.
    #72107
    Merlin
    Maître des clés

    👍

    #72109
    bebarth
    Maître des clés

    Désolé, je ne suis pas passé sur le forum hier, mais du coup, tu vois qu’on y arrive à force de travail et de persévérance…
    Bravo. 🙌

    @+
    😎

    #72111
    WilliS4R
    Participant

    Mais oui, mais oui,

    Heureusement qu’il y a ce site. Une vraie perle. Et surtout, les maîtres de clés 👌.

     

Affichage de 15 réponses de 1 à 15 (sur un total de 15)
  • Vous devez être connecté pour répondre à ce sujet.