Donnez vie à vos documents numériques !
 

Remplissage de cases dans un formulaire sur Acrobat XI

abracadabraPDF Forums PDF – Général Remplissage de cases dans un formulaire sur Acrobat XI

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46178
    bouhahaha
    Membre

    Bonjour,
    J’aurais besoin de votre aide pour savoir si il est possible de paramètrer sur Acrobat XL le remplissage automatique de certaines cases dans un formulaire ?
    Je m’explique.
    J’ai créé une bouton avec liste déroulante dans laquelle j’ai rentré différents noms. Je voudrais par la suite que dès que l’on clique sur un de ces noms, cela remplisse automatiquement (avec les informations que j’aurais donnée) les 3 cases qui suivent concernant la fonction l’adresse mail et le numéro de téléphone.
    Je voudrais savoir si il est possible de programmer paramétrer ou autre ce type de demande ?
    Merci d’avance pour votre aide.

Affichage de 43 réponses de 1 à 43 (sur un total de 43)
  • Auteur
    Réponses
  • #66512
    bebarth
    Maître des clés

    bonjour,
    Je suppose que XL n’est pas la taille d’Acrobat, mais sa version XI… :geek:
    Ou sont stockées les autres données (tél & mail) ? dans d’autres champs, un autre fichier, une piéce jointe ???
    Ce n’est pas tout à fait la même chose.
    @+
    :bonjour:

    #66513
    bouhahaha
    Membre

    Oui pardon haha :jerisjaune: :oh:
    Pour l’instant les autres données sont nulle-part car je ne sais pas où les mettre justement ^^
    En pièce jointe j’ai mis un screenshot de la partie avec la liste déroulante et un autre avec les cases que j’aimerais faire remplir automatiquement.

    @+  :bonjour: :Smiley01:

    #66514
    bebarth
    Maître des clés

    bonjour,

    Pour l’instant les autres données sont nulle-part car je ne sais pas où les mettre justement ^^

    Il va falloir se décider alors !
    D’où proviennent ces données ? d’un tableur ??? Y en a-t-il beaucoup ? sont-elles régulièrement modifiées ?
    A mon avis une pièce jointe au fichier devrait être une bonne solution.
    @+
    :bonjour:

    #66515
    RemiB
    Membre

    Bonjour,

    pour compléter la réponse de @bebarth, je pense que la solution à ton problème se trouve ici https://abracadabrapdf.net/forum/index.php/topic,3498.msg20950.html#msg20950 et plus précisément voici le code de Merlin apportant une grande partie de la solution :

    Code:
    /* importation texte */
    this.resetForm();
    this.getField(“ListeDeroulante”).clearItems(); // champ liste déroulante
    // importer l’unique pièce jointe sans la nommer
    var p = this.getDataObject(this.dataObjects[0].name)
    // importer le contenu de la pièce jointe
    var fi = this.getDataObjectContents(p.name)
    var fit = util.stringFromStream(fi)
    // séparation des rangées (séparateur saut de ligne)
    var datarr1 = fit.split(“n”);
    // séparation des colonnes (séparateur point-virgule)
    var datarr = new Array();
    for (var i = 0 ; i var fillarr = new Array() ;
    for (var j = 0 ; j // remplissage du champ liste déroulante
    this.getField(“ListeDeroulante”).setItems(fillarr); // champ liste déroulante

    #66516
    bouhahaha
    Membre

    Bonjour,
    Je vais rentrer mes informations dans un tableur excel et je vais essayer de lier à mon fichier pdf.
    Je vous tiendrai au courant si cela fonctionne.
    Merci !
    Bonne journée

    #66517
    Merlin
    Maître des clés

    Je vous tiendrai au courant si cela fonctionne.

    Si ça ne fonctionne pas, n’hésites pas non plus.
    :Smiley03:

    #66518
    bouhahaha
    Membre

    Finalement, je ne suis pas arrivée à faire fonctionner cela. J’ai mis mes données dans un tableau Excel et j’ai essayé de faire ce que j’ai eu sur le dessus et en m’aidant d’un autre poste sur le forum mais rien. Je pense que j’ai du mal à transposer mon fichier Excel. Je réessayerai mieux demain.

    Bonne soirée

    #66519
    bebarth
    Maître des clés

    peux-tu partager ton formulaire avec le fichier en pièce jointe ?@+
    :bonjour:

    #66520
    bouhahaha
    Membre

    Bonjour,

    Voici mes deux documents, le fichier pdf et le tableau excel (le fichier avec la pièce jointe ne veut pas marcher).
    Dans le fichier pdf, ma liste déroulante (case représentant) est dans le premier tableau de la page à droite et les trois autres cases à remplir sont juste en dessous de la liste déroulante.

    Par contre ce ne sont pas les vrais coordonnées, c’est un essai avant de transposer cela avec les documents officiels de mon entreprise.

    Merci beaucoup !

    Bonne journée  :bonjour:

    #66521
    bebarth
    Maître des clés

    bonjour,
    On ne peut pas utiliser les données des fichiers .xlsx. Le mieux est donc de convertir ton fichier final en .csv puis de l’importer dans ton formulaire.
    Voici donc le résultat :

    • Un script de document qui initialise la liste déroulante et la fonction de remplissage.
    • Un script de touches personnalisé pour lancer la fonction (pour la liste déroulante).
    • [/list]Je te laisse étudier ça…
      @+
      :bonjour:

    #66522
    bouhahaha
    Membre

    Bonjour,

    Merci beaucoup, cela est exactement ce que je voulais réaliser !

    Pour la partie script je n’ai pas tout trouvé et compris mais ça fonctionne quand même ici.
    Qu’as-tu réellement fait pour que cela fonctionne ?

    Merci encore,

    Bonne fin de journée  :bonjour:

    #66523
    bebarth
    Maître des clés

    Il faut étudier le script de document “init” !
    Il est commenté (un petit peu)…
    @+
    :bonjour:

    #66524
    bouhahaha
    Membre

    Oui j’ai vu ça ! Merci !
    Juste une petite question comment cela se passe si il faut rajouter un représentant ? J’ai essayé mais cela ne fonctionne pas !
    Que faut-il rajouter ou modifier dans le script ?

    Merci

    @++  :bonjour:

    #66525
    Merlin
    Maître des clés

    Ça ne serait pas plus lisible avec des textes en blanc dans les bandeaux gris foncé ?
    :oh:  :Smiley03:

    #66526
    bebarth
    Maître des clés

    Juste une petite question comment cela se passe si il faut rajouter un représentant ? J’ai essayé mais cela ne fonctionne pas !
    Que faut-il rajouter ou modifier dans le script ?

    Il ne faut pas toucher au script !
    L’initialisation se fait à l’ouverture du fichier, donc si tu importes un nouveau fichier .csv, il faut enregistrer ton .pdf le fermer puis le réouvrir.
    Ce script ne prend en compte que le premier fichier joint sans le nommer. Il faut donc supprimé celui déjà joint si tu veux importer une nouvelle version.
    @+
    :bonjour:

    #66527
    bouhahaha
    Membre

    Ça ne serait pas plus lisible avec des textes en blanc dans les bandeaux gris foncé ?
    :oh:  :Smiley03:

    Si si tu as raison, je vais modifier ça !  :extra:
    Merci !

    #66528
    bouhahaha
    Membre

    Il ne faut pas toucher au script !
    L’initialisation se fait à l’ouverture du fichier, donc si tu importes un nouveau fichier .csv, il faut enregistrer ton .pdf le fermer puis le réouvrir.
    Ce script ne prend en compte que le premier fichier joint sans le nommer. Il faut donc supprimé celui déjà joint si tu veux importer une nouvelle version.
    @+
    :bonjour:

    D’accord parfait ! En tout cas, merci beaucoup pour ton aide sur ce sujet ! ?
    Je vais tout noter correctement pour pouvoir m’en resservir !

    Bonne journée @+  :bonjour:

    #66529
    Adri29
    Membre

    Bonjour,

    Je me permet d’écrire dans ce post.  :Smiley08:
    Je sais pas si je fais juste mais comme j’ai le même problème. :Smiley02:
    J’ai trouvé pas mal de réponses dans ce forum mais là je n’y arrive pas trop, c’est trop compliqué pour moi ! : :Smiley02: 

    Voilà j’aimerais une liste déroulante avec les noms d’articles, une fois sélectionné l’article ferait apparaître le numéro correspondant automatiquement, un peu comme le nom avec les données automatiques du PDF ci-joint.

    #66530
    bebarth
    Maître des clés

    bonjour,
    Y aura-t-il d’autres colonnes à utiliser dans le fichier .csv ?
    Les colonnes actuelles sont-elles positionnées au bon endroit ?
    @+
    :bonjour:

    #66531
    bebarth
    Maître des clés

    Vu qu’il n’y a que 2 colonnes utilisées dans le tableau, on peut faire légèrement différemment !
    @+
    :bonjour:

    #66532
    Adri29
    Membre

    c’est exactement ça!

    Merci :bravo: :bravo: :bravo:

    Pour rajoute les autres ligne dans le pdf, je les rajoute dans le scripts?

    #66533
    bebarth
    Maître des clés

    …et voici pour toutes les lignes !
    @+
    :bonjour:

    #66534
    Adri29
    Membre

    Génial c’est parfait ! :extra: :Smiley08:
    Un grand merci pour le coup de pouce.
    Bonne soirée

    #66535

    Bonjour à tous,

    Je suis débutant en création de formulaires.
    Peut-on appliquer la même méthode pour que le choix d’un item dans une liste déroulante coche automatiquement les cases correspondant à ses caractéristiques ?
    Merci.

    #66536
    bebarth
    Maître des clés

    bonjour,
    Oui c’est possible mais ce serait plus simple à te montrer avec un fichier exemple !
    @+
    :bonjour:

    #66537

    Bonjour,

    Bebarth, merci de ta réponse.
    Ce que j’aimerais c’est que lorsque je choisis un élément de la liste dans le menu déroulant, les cases correspondantes se cochent automatiquement.
    Par exemple : le choix “AR Sun” coche les cases “durci”, “Anti-reflets” et “Anti-UV”.
    Merci

    #66538
    bebarth
    Maître des clés

    bonjour,
    En script de validation de ta liste :

    Code:
    if (event.value==”AR Sun”) {
    this.getField(“Durci1″).value=”Oui”;
    this.getField(“AR1″).value=”Oui”;
    this.getField(“UV1″).value=”Oui”;
    }

    Il faut également cocher “Valider la valeur sélectionnée immédiatement”.

    Ça c’est dans le principe, mais après il faut les décocher toutes ou en partie en fonction du choix !
    @+
    :bonjour:

    #66539

    Un grand merci, c’est exactement ce que je voulais ; il ne me reste plus qu’à reproduire le script pour chaque élément de la liste je suppose ?

    Que faudrait-il changer dans le script si je voulais obtenir une action similaire (des cases cochées) non en choisissant un élément d’une liste déroulante mais en cliquant sur un bouton du type de ceux existant dans le document ?

    La sélection d’un élément d’une liste déroulante peut-elle renvoyer l’affichage d’un élément d’une autre liste déroulante ?

    Merci encore.

    #66540
    Merlin
    Maître des clés

    Un grand merci, c’est exactement ce que je voulais ; il ne me reste plus qu’à reproduire le script pour chaque élément de la liste je suppose ?

    Oui, mais comme le faisait remarquer Bebarth il y a un moment où tu vas aussi vouloir décocher des cases, ce qui se fait ainsi :

    this.getField(“NOM“).value = “Off“;

    Si je voulais obtenir une action similaire (des cases cochées) non en choisissant un élément d’une liste déroulante mais en cliquant sur un bouton du type de ceux existant dans le document, quelle devrait être la première ligne su script ?

    Dans ce cas il faut juste supprimer la condition (if) :

    this.getField(“Durci1″).value=”Oui”;
    this.getField(“AR1″).value=”Oui”;
    this.getField(“UV1″).value=”Oui”;

    Par ailleurs, comment s’appelle ce langage ? JavaScript ?

    Oui.
    Voir : https://www.abracadabrapdf.net/category/ressources-et-tutos/js-et-formulaires-ressources/
    et
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/ressources-pdf-javascript/

    #66541
    Merlin
    Maître des clés

    Comme tu as l’air d’un grand débutant je te conseille aussi et surtout cet article qui concerne toutes les actions des champs de formulaire, pas seulement JavaScript.
    C’est essentiel pour bien comprendre le fonctionnement des champs : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/lordre-dexecution-des-evenements-dans-les-champs-de-formulaire-pdf/

    :Smiley15:

    #66542

    Merci Merlin
    Plus que débutant, ignare en la matière serait plus approprié

    #66543
    Merlin
    Maître des clés

    :Smiley08:

    #66544

    Bonjour,

    Merlin, j’ai dû modifier mon post au moment où tu rédigeais ta réponse. Une question reste en suspens :
    “La sélection d’un élément d’une liste déroulante peut-elle renvoyer l’affichage d’un élément d’une autre liste déroulante ?”
    Merci

    #66545
    bebarth
    Maître des clés

    bonjour,

    “La sélection d’un élément d’une liste déroulante peut-elle renvoyer l’affichage d’un élément d’une autre liste déroulante ?”

    La sélection d’un élément d’une liste doit afficher un élément d’une liste déjà définie ou doit générer tous les éléments d’une autre liste (donc une seconde liste différente en fonction du choix de la première liste) ?
    Les 2 cas sont possibles. Pour le premier je ne vois pas trop l’utilité et pour second on parle de listes mère-fille.
    @+
    :bonjour:

    #66546

    Bonjour Bebarth,

    Sur le fichier joint, je souhaiterais que le choix d’un élément de la liste “Matériau” affiche automatiquement la caractéristique correspondante, choisie dans la liste “Résistance”, ce qui semblerait correspondre au premier cas de figure que tu décris.

    #66547
    bebarth
    Maître des clés

    Pour chaque élément de la liste “Materiau1” tu indiques une des valeurs de la liste “Resistance1” que tu souhaites voir apparaître lorsque tu le sélectionnes.
    En script de format personnalisé de cette liste “Materiau1” tu écris :

    Code:
    this.getField(“Resistance1”).value=event.target.value;

    Attention : Dans mon fichier, j’ai retiré le script de validation qui provoquait des erreurs.
    @+
    :bonjour:

    #66548

    Bonjour,

    Merlin, Bebarth, un grand merci pour votre aide qui m’a (presque) permis de réaliser le formulaire dont j’avais besoin.


    il ne me reste plus qu’à reproduire le script pour chaque élément de la liste je suppose ?

    “Presque” car j’ai un message d’erreur “unterminated string literal” sur le script que j’ai décliné autant de fois que j’ai d’éléments de ma liste déroulante. Que je supprime la ligne ou le bloc entier, j’ai toujours une erreur en bout de ligne 63.
    Il ne manque aucun signe (j’ai sagement fait du copier-coller) et n’ai fait aucun retour à la ligne…

    #66549
    Merlin
    Maître des clés

    Fais voir ce script.

    #66550

    Bonjour,
    Le voici.

    #66551
    bebarth
    Maître des clés

    bonjour,
    Aucun message d’erreur chez moi avec ton script !
    Voici une petite variante où tu décoches toutes les cases en début de script puis tu coches les cases adéquates en fonction du choix.
    J’ai également utilisé “else if” ce qui évite de vérifier toutes les autres conditions si la bonne à déjà été vérifiée.
    …et pas de message d’erreur non plus avec ce script !
    @+
    :bonjour:

    #66552
    Merlin
    Maître des clés

    Il y a 3 lignes qui se répètent toujours à l’identique, il vaudrait mieux les placer en tête de script, avant les conditions.

    this.getField(“Durci1″).value=”Oui”;
    this.getField(“EPS1″).value=”Off”;
    this.getField(“Buée1″).value=”Off”;

    Dès qu’on utilise JavaScript il faut absolument interdire les espaces et les caractères accentués ou spéciaux dans les noms de champs, il n’aime pas ça du tout !

    :Smiley15:

    #66553

    Bonjour à tous,

    En effet le problème venait de ma version d’Acrobat, pas du script.

    Merlin, Bebarth je vous adresse un énorme MERCI pour votre aide. Sans vous je n’y serais pas arrivé.

    Bonne journée.

    #66554
    Merlin
    Maître des clés

    :bonjour:

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