abracadabraPDF › Forums › PDF – Général › Remplissage de cases dans un formulaire sur Acrobat XI
- Ce sujet est vide.
-
CréateurSujet
-
26 novembre 2019 à 12:48 #46178
bouhahaha
MembreBonjour,
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. -
CréateurSujet
-
AuteurRéponses
-
26 novembre 2019 à 13:21 #66512
bebarth
Maître des clésbonjour,
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:26 novembre 2019 à 13:40 #66513bouhahaha
MembreOui 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:
27 novembre 2019 à 07:13 #66514bebarth
Maître des clésbonjour,
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:27 novembre 2019 à 08:07 #66515RemiB
MembreBonjour,
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 < datarr1.length ; i++) {datarr[i] = datarr1[i].split(";")}
var fillarr = new Array() ;
for (var j = 0 ; j < datarr.length ; j++) { fillarr[j] = [datarr[j][1], j] ;}
// remplissage du champ liste déroulante
this.getField(“ListeDeroulante”).setItems(fillarr); // champ liste déroulante27 novembre 2019 à 09:25 #66516bouhahaha
MembreBonjour,
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ée27 novembre 2019 à 14:50 #66517Merlin
Maître des clésJe vous tiendrai au courant si cela fonctionne.
Si ça ne fonctionne pas, n’hésites pas non plus.
:Smiley03:27 novembre 2019 à 17:48 #66518bouhahaha
MembreFinalement, 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
27 novembre 2019 à 18:54 #66519bebarth
Maître des cléspeux-tu partager ton formulaire avec le fichier en pièce jointe ?@+
:bonjour:28 novembre 2019 à 09:45 #66520bouhahaha
MembreBonjour,
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:
28 novembre 2019 à 11:31 #66521bebarth
Maître des clésbonjour,
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:28 novembre 2019 à 14:55 #66522bouhahaha
MembreBonjour,
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:
28 novembre 2019 à 15:07 #66523bebarth
Maître des clésIl faut étudier le script de document “init” !
Il est commenté (un petit peu)…
@+
:bonjour:28 novembre 2019 à 15:41 #66524bouhahaha
MembreOui 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:
28 novembre 2019 à 16:18 #66525Merlin
Maître des clésÇa ne serait pas plus lisible avec des textes en blanc dans les bandeaux gris foncé ?
:oh: :Smiley03:28 novembre 2019 à 17:54 #66526bebarth
Maître des clésJuste 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:29 novembre 2019 à 08:42 #66527bouhahaha
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 !29 novembre 2019 à 08:44 #66528bouhahaha
MembreIl 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:
28 janvier 2020 à 17:07 #66529Adri29
MembreBonjour,
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.
28 janvier 2020 à 20:06 #66530bebarth
Maître des clésbonjour,
Y aura-t-il d’autres colonnes à utiliser dans le fichier .csv ?
Les colonnes actuelles sont-elles positionnées au bon endroit ?
@+
:bonjour:29 janvier 2020 à 18:15 #66531bebarth
Maître des clésVu qu’il n’y a que 2 colonnes utilisées dans le tableau, on peut faire légèrement différemment !
@+
:bonjour:29 janvier 2020 à 18:35 #66532Adri29
Membrec’est exactement ça!
Merci :bravo: :bravo: :bravo:
Pour rajoute les autres ligne dans le pdf, je les rajoute dans le scripts?
29 janvier 2020 à 20:03 #66533bebarth
Maître des clés…et voici pour toutes les lignes !
@+
:bonjour:29 janvier 2020 à 21:12 #66534Adri29
MembreGénial c’est parfait ! :extra: :Smiley08:
Un grand merci pour le coup de pouce.
Bonne soirée7 février 2020 à 17:16 #66535monsieurjulien
MembreBonjour à 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.7 février 2020 à 18:49 #66536bebarth
Maître des clésbonjour,
Oui c’est possible mais ce serait plus simple à te montrer avec un fichier exemple !
@+
:bonjour:4 mars 2020 à 09:19 #66537monsieurjulien
MembreBonjour,
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”.
Merci4 mars 2020 à 14:42 #66538bebarth
Maître des clésbonjour,
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:4 mars 2020 à 17:31 #66539monsieurjulien
MembreUn 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.
4 mars 2020 à 17:53 #66540Merlin
Maître des clésUn 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/4 mars 2020 à 17:58 #66541Merlin
Maître des clésComme 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:
4 mars 2020 à 18:14 #66542monsieurjulien
MembreMerci Merlin
Plus que débutant, ignare en la matière serait plus approprié4 mars 2020 à 18:52 #66543Merlin
Maître des clés:Smiley08:
6 mars 2020 à 10:55 #66544monsieurjulien
MembreBonjour,
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 ?”
Merci6 mars 2020 à 12:25 #66545bebarth
Maître des clésbonjour,
“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:6 mars 2020 à 13:07 #66546monsieurjulien
MembreBonjour 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.
6 mars 2020 à 14:34 #66547bebarth
Maître des clésPour 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:10 mars 2020 à 17:54 #66548monsieurjulien
MembreBonjour,
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…10 mars 2020 à 18:12 #66549Merlin
Maître des clésFais voir ce script.
11 mars 2020 à 08:26 #66550monsieurjulien
MembreBonjour,
Le voici.11 mars 2020 à 09:32 #66551bebarth
Maître des clésbonjour,
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:11 mars 2020 à 10:06 #66552Merlin
Maître des clésIl 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:
12 avril 2020 à 13:56 #66553monsieurjulien
MembreBonjour à 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.
12 avril 2020 à 15:38 #66554Merlin
Maître des clés:bonjour:
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.