Forum abracadabraPDF.net

Thèmes de discussion du forum abracadabraPDF.net => PDF - Général => Discussion démarrée par: DeyDey le 03 octobre 2013 : 10:44

Titre: Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 03 octobre 2013 : 10:44
Bonjour à tous,

Après des jours de recherches, en vain, je n'ai pas la solution de mon problème qui est le suivant :

J'ai créé un formulaire PDF sur Adobe Acrobat Pro XI et j'aimerai pouvoir récupérer toutes les infos d'une base de données qui correspond aux champs.

Par exemple, J'ai une liste déroulante dans mon formulaire (Nom), avec tous les noms référencés dans ma BDD; j'aimerai qu'une fois le nom choisi, les autres champs se remplisse automatiquement avec les champs qui correspondent dans la BDD.

J'espère que vous avez compris ma question.

Merci d'avance :) !
Titre: Re : Récupération données BDD dans un forumaire PDF. -
Posté par: Merlin le 03 octobre 2013 : 13:10
Bonjour et bienvenue,

C'est possible mais il faut soit un très bon niveau en JavaScript, soit faire faire.
 :idee:
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: DeyDey le 03 octobre 2013 : 14:03
Outch,
Merci d'abord de ta réponse,

Ce n'est pas possible avec un autre logiciel ? Ou peut être que je peux renseigner des données (par exemple Prénom, Tel, Adresse) directement dans mon formulaire et quand je choisi le Nom, les champs se remplissent automatiquement ?

Et si je change de méthode:
Je fais une interface Windows form qui récupère mes données dans la BDD, je peux faire en sorte que quand je valide, les données des champs se place au bon endroit de mon pdf ?
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: Merlin le 03 octobre 2013 : 21:50
S'agit-il d'un formulaire qui doit être aussi complété par un humain (en plus des données importées), ou bien est-ce seulement du remplissage automatique ?
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: DeyDey le 04 octobre 2013 : 08:23
En fait c'est pour remplir un bordereau, en choisissant le nom de la personne, les autres champs doivent se mètrent automatiquement mais avec la possibilité de modifier certaines valeurs si elles ne conviennent pas.
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: alex le 04 octobre 2013 : 11:22
Bonjour à tous,
Sur le thème des données à afficher dans un formulaire voici un petit truc que j'utilise souvent et qui consiste à embarquer les données du formulaire sous forme de pièces jointes. Dans mon exemple, j'ai autant de fichiers texte que de fiches, on peut en ajouter autant qu'on veut. Mon formulaire comporte 3 champs à remplir (champs "Champ.0","Champ.1","Champ.2"), on peut là aussi en ajouter autant qu'on veut (paramètre NbreChamps à modifier dans le script importDatas().
Le premier script importDatas liste les pièces jointes, remplit la liste déroulante et et collecte les données pour les stocker dans une table.
Le second script remplit la fiche à partir de l'item sélectionné.
Voir maquette.
Nombreuses variantes possibles:
pièces jointes XML avec noms des champs.
pièce jointe unique.
données externes.
remplissage du menu déroulant à l'ouverture.
etc...

Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: Merlin le 04 octobre 2013 : 11:33
Génial !
 :bravo:
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: DeyDey le 04 octobre 2013 : 11:41
Merci de ta réponse, j'ai enfin l'impression d'avancé :D.

Je pense que cette méthode conviendrait, je vais essayé de gratter un peu en Js même si ce n'est pas forcement ma sauce ..
Peux-tu me détaillé un peu plus la méthode à utiliser pour faire cela, je ne suis pas sur d'avoir bien tout compris.

Aussi, comment accédé aux script ? Je vois uniquement le nom dans les options ..
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: Merlin le 04 octobre 2013 : 11:49
Sinon j'ai ça (ci-joint).

C'est le même principe mais ça fonctionne avec un seul fichier incorporé, c'est un fichier CSV séparé par des tabulations.
 :idee:
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: DeyDey le 04 octobre 2013 : 11:54
Ca peut être une bonne méthode aussi, il serait possible de modifier des données sur le fichier CSV sans passé par Acrobat (Sur un PC autre que le créateur) ?
Quelle est la config du fichier CSV ?

Merci
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: alex le 04 octobre 2013 : 12:27
Pour traiter les fichiers .csv, il faut considérer le ";" comme caractère séparateur (voir exemple ci-joint script importDatas() ). On peut là aussi modifier ces fichiers directement sous Acrobat PRO.
Ouvrir le fichier csv pour voir sa structure ...
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: Merlin le 04 octobre 2013 : 12:30
Acrobat ne peut pas modifier un fichier TXT ou CSV, il faut le préparer par ailleurs.
Pour l'export en CSV je préfère LibreOffice à Excel car les options d'exportation sont plus complètes.
De mémoire, il vaut mieux utiliser l'encodage UTF-8 qui assure un affichage cohérent des caractères accentués indépendamment des plateformes. C'est tout.
 :Smiley01:
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: alex le 04 octobre 2013 : 12:39
Bonjour Merlin,
Fais un essai sur ce formulaire...
Si tu ouvres une pièce  jointe dans Acrobat (par exemple Dupont.csv) tu constaters que tu peux la modifier sous Excel, et elle sera mise à jour !
Oui, il faut faire attention à l'encodage pour les accents.
Dans mon exemple, j'ai mélangé volontairement des csv et des txt.
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: DeyDey le 04 octobre 2013 : 13:08
A vrai dire je suis un peu perdu..
Je ne sais pas trop comment procéder pour obtenir un tel résultat.

Est ce possible de tout mettre dans le même fichier CSV?
Et comment se fait le lien avec les pièces jointes ?
Titre: Re : Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: Merlin le 04 octobre 2013 : 15:47
Fais un essai sur ce formulaire...
Si tu ouvres une pièce  jointe dans Acrobat (par exemple Dupont.csv) tu constaters que tu peux la modifier sous Excel, et elle sera mise à jour !

Oui, bien sur. Je pensais à la partie création du CSV.
 :Smiley03:
Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 04 octobre 2013 : 15:56
Est ce possible de tout mettre dans le même fichier CSV?
Et comment se fait le lien avec les pièces jointes ?

Dans mon exemple la correspondance entre les noms de champs et les colonnes est faite par JavaScript à l'ouverture du document.
Dans l'exemple il y en a 3 mais on peut augmenter le nombre des colonnes et des champs correspondants.
Peu importe le nom du fichier de donnés et son suffixe (TXT ou CSV), par-contre le script employé requiert qu'il n'y ait pas d'autre pièces jointes dans le PDF.

Par-contre je viens de m'apercevoir que j'avais posté un fichier verrouillé, ci-joint un autre.
Titre: Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: DeyDey le 07 octobre 2013 : 08:29
Salut !
Je ne comprends toujours pas bien, où ce trouve les script ?
Et dans ton exemple, les champs ne sont pas modifiables manuellement.

Merci de vous penchez sur ma question, ça m'aide beaucoup :) !
Titre: Re : Re : Récupération données BDD dans un forumaire PDF. - RÉPONDU
Posté par: Merlin le 07 octobre 2013 : 08:51
Et dans ton exemple, les champs ne sont pas modifiables manuellement.

Je cite mon dernier message (ci-dessus) : "Par-contre je viens de m'apercevoir que j'avais posté un fichier verrouillé, ci-joint un autre."


Je ne comprends toujours pas bien, où ce trouvent les scripts ?

Capture jointe.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 07 octobre 2013 : 09:10
Merci, autant pour moi :)

Je ne comprends pas, dans l'exemple d'alex, le script "remplissageFiche" ?
Le bouton 'importer" efface les champs, peut être que c'est un pb de mon coté ?
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 07 octobre 2013 : 10:26
Ouvre la Console (ctrl/cmd + J) avant de cliquer sur "Importer" : ça réinitialise la liste des pièces jointes et ça réinitilise les champs.
C'est la liste déroulante qui doit remplir les champs.

C'est une maquette, dans un "vrai" document il ne devrait pas y avoir le bouton "Importer" et l'initialisation se ferait automatiquement à l'ouverture du document.
 :idee:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 07 octobre 2013 : 11:19
Je comprends mieux l'intérêt du bouton, merci :)

Par contre j'essaye de gratter le script et je n'arrive pas à comprendre où il fait appel aux bon fichiers et quel champ correspond à tel cellule.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 07 octobre 2013 : 11:41
C'est le script "Remplissage fiche" qui fait tout le boulot, et qui est appelé par la liste déroulante.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 07 octobre 2013 : 13:45
Je dois être vraiment mauvais en JS..
Le truc c'est que j'ai beaucoup de champs à remplir avec plusieurs listes déroulantes, et je n'arrives pas à comprendre la script..

Il faut que je puisse récupérer plusieurs données venant du même fichier .csv.
Ou est-ce que l'on défini le nom des champs dans les code ?

(c'est un peu compliqué à expliquer, et je commence à me dire que c'est peut-être pas de mon niveau..)
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 07 octobre 2013 : 14:02
J'ai joint mon document pour que vous puissiez vous faire une idée.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 08 octobre 2013 : 11:12
UP
Je suis vraiment coincé, je n'avance plus, je désespère  ! :mur:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 09 octobre 2013 : 09:21
Ré UP ?
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 09 octobre 2013 : 09:52
Salut,

Je comprend ton impatience mais cette semaine ce n'est pas possible pour moi. Pas le temps.
…A suivre…
 :Smiley01:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 09 octobre 2013 : 10:04
Salut,

Oui je tourne en rond et la tension me monte à la tête :Euuuh:

Peut être quelqu'un d'autre aurait la solution ? :Ooops:

Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 10 octobre 2013 : 08:09
(Je suis toujours bloqué, si jamais ..)  :mur:

Juste une petite question Merlin, est ce qu'il y aurait un moyen pour avoir toutes les données dans le même fichier .csv ? plutôt que d'en créer un par nom ?
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 11 octobre 2013 : 08:48
Salut,

En fait mon souci actuel est de lister une colonne (Nom) au lieu de lister les pièces jointes, puisque mon but final est de tout mettre dans le même fichier .csv

Si quelqu'un à la solution du code Js, je suis preneur puisque ça fait plusieurs jours que je galère à chercher ..

(Désolé du "flood" :S)

Merci d'avance :)!
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: jeffe52 le 11 octobre 2013 : 13:10
Bonjour le forum, DeyDey, Merlin, Alex

Je viens d'essayer l'exemple fourni par Merlin,(le non protégé) cela fonctionne aussi avec un .csv
Seule contrainte, respecter l'encodage UTF8 et d'utiliser pour cela libreoffice comme il l'indique.

jf
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 11 octobre 2013 : 14:52
Salut,
merci de ta réponse.

Oui cela fonctionne mais j'aimerai pouvoir lister les noms d'une colonne d'un seul et même fichier .csv au lieu d'avoir une pièces jointe par nom.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: jeffe52 le 11 octobre 2013 : 15:58
je n'ai pas trop le temps, je comprends pas bien, j'ai réussi à créer un csv ou j'ai 3 colonnes, et une centaine de ligne, qui respecte les contraintes listées. et lorseque je remplace le fichier txt de merlin prend en compte mes infos :doute:
essaie de joindre un petit bout de fiche csv correctement formaté.
jf
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 13 octobre 2013 : 14:23
DeyDey, je crois que tu te mélanges les pinceaux.
L'exemple d'Alex utilise un fichier txt par entrée/rangée, le mien utilise un seul fichier CSV pour toutes les entrées.

 :idee:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 14 octobre 2013 : 08:11
Salut,
Oui je ne comprends pas bien x).

Dans l'exemple d'Alex, il y a bien un fichier par nom, je voudrais tout réunir dans le même fichier mais quelle sont les modifications à apporter au script pour lister une colonne d'un fichier .csv plutôt que de lister tous les fichier (pièces jointes) ?

Et je ne comprend pas le script de ton exemple Merlin ..

(J'espère être compris  :priere: )
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 14 octobre 2013 : 10:51
Je joint le fichier .pdf (avec le .csv en pièce jointe) et une capture d'écran des champs qui devraient être remplis.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 14 octobre 2013 : 12:21
Ben… Euh…
Ton CSV ne contient qu'une seule ligne incomplète…
 :Euuuh:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 14 octobre 2013 : 13:13
Je l'ai changé pourtant..

Je joint une capture de ce qu'il pourrait contenir.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 14 octobre 2013 : 21:16
Moi je ne vois que ça, et apparemment ce n'est pas encodé en UTF-8…
 :doute:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 15 octobre 2013 : 08:08
Oui ça n'a pas enregistrer.
Comment encoder en UTF-8 ?
Le truc serait d'adapter ton exemple Merlin à mon problème, ce que je ne parviens pas à faire.  :mur:

Je n'arrive pas à faire en sorte que ma liste déroulante, me liste tous les noms d'un même fichier et me remplisse les champs "Adresse", "Tél", "Fax", "Mail", etc automatiquement.

Je pense qu'il me faudrait juste une fonction Javascript qui, au lieu de me lister les pièces jointes, me liste une colonne d'une pièce jointe imposée.

Ca fait plus de deux semaines que je suis dessus et mon maître de stage commence à s'impatienter. (Moi je pette un câble :/ ).
Heelp :(
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 15 octobre 2013 : 13:03
Il faut vraiment que j'avance la ..  :Smiley11:
Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 15 octobre 2013 : 13:05
Oui ça n'a pas enregistrer.

Et bien recommence et poste cette fichue liste…
 :oh:


Comment encoder en UTF-8 ?

Relis mes messages précédents, mais ce n'est pas le plus important pour le moment.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 15 octobre 2013 : 13:13
Voila ca devrait être bon mais il n'y à rien d'exceptionnel, juste la liste que j'ai posté en screenshot, pour l'exemple.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 15 octobre 2013 : 14:12
Pas besoin que ce soit exceptionnel, juste utilisable.
Parce-que je veux bien prendre sur mon temps pour aider, mais pas pour saisir des listes d'exemples.
 :geek:

Ci-joint.
 :bonjour:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: alex le 15 octobre 2013 : 14:16
Bonjour à tous,
Je vous poste sur ce formulaire un exemple avec un seul fichier de données dans les heures qui viennent...
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 15 octobre 2013 : 14:38
Merci de me consacrer de ton temps Merlin :) !

Ce que tu m'a donné me conviens, c'est ce que je cherchais, merci!  :extra:

Petite question cependant, les champs de la liste déroulante, tu l'es as entré à la main ou ils se mettent automatiquement dans la liste ? Parce que si l'administrateur souhaite ajouter une nouvelle personne dans le .csv, est ce que l'ajout sera automatique dans le formulaire ? :)

Alex: Je suis toujours preneur de ta solution :D !
Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: Merlin le 15 octobre 2013 : 14:54
les champs de la liste déroulante, tu les as entrés à la main
Non

ils se mettent automatiquement dans la liste ?
Oui

Parce que si l'administrateur souhaite ajouter une nouvelle personne dans le .csv, est ce que l'ajout sera automatique dans le formulaire ?
Oui
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 15 octobre 2013 : 15:16
D'accord, merci.

Je viens de voir, le format du .csv, tout est regroupé dans la colonne A, est ce normal ?
Ce n'est pas très clair pour l'administrateur je trouve.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: alex le 15 octobre 2013 : 15:35
Voici l'exemple promis.
Le fichier de données est unique. Pour voir sa structure, utilisez un simple éditeur de texte. Vous remarquerez que toutes les valeurs se suivent séparées par des point-virgules.
Lors de l'ouverture du document, un script (importDatas()) lit la première colonne et renseigne le menu déroulant.
Lors de l'action sur le menu déroulant le script remplissageFiche() lit les autres valeurs et remplit les champs Champ.1 et suivants (jusqu'à Champ.7 dans mon exemple)

On peut aussi faire ça  avec un fichier de données xml, ou du fdf.

Voyez si ça vous suffit.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉPONDU
Posté par: DeyDey le 15 octobre 2013 : 15:50
Oooooh ca me plait beaucoup ça :D !!
Merci  :extra:

(Normal qu'une fois le "Nom" sélectionné dans la liste, le reste s'affiche mais la liste est vide ?

Ci-joint une capture.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 15 octobre 2013 : 16:09
Je vais voir ça mais pas ce soir , désolé. J'ai une idée.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 16 octobre 2013 : 08:05
Salut, d'accord merci, je vais commencer à remplir mon formulaire.

Est-il juste possible de séparer mes différents "blocs" (ex: "1.Emetteur du bordereau, 2.Installation de destination..), en plusieurs Feuilles Excel ?
Faire une feuille par bloc pour que l'administrateur puisse gérer le .csv plus facilement ?  :Smiley00:
Puisque le but serait de faire ce système sur tous les champs.


(Euuuh.. What ?! Je viens de voir ça x), fichier joint).
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 16 octobre 2013 : 11:31
Ok, je viens de voir que les fichiers .csv ne prennent pas en charge plusieurs feuilles --' ..

Je peux utiliser un autre format ou je me pend tout de suite ? :oh:

Sinon je fais tout propre sur une seule feuille mais vu que je ne sais pas comment se configure l'appel des cellules en Js je ne peux rien faire :'(..
Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 16 octobre 2013 : 12:51
Sinon je fais tout propre sur une seule feuille mais vu que je ne sais pas comment se configure l'appel des cellules en Js je ne peux rien faire

Je l'ai déjà dit dans un message précédent : l'en-tête de colonnes doit correspondre au nom du champ hôte.
Ouvre les exemples fournis pour t'en convaincre.

 :bonjour:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 16 octobre 2013 : 13:06
Je ne comprends toujours pas  :Euuuh:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 16 octobre 2013 : 13:29
Merlin,
Ce n'est pas vrai dans mon exemple. Les en-têtes sont bien présentes dans le fichier de données BSD.csv mais je ne les utilise pas comme on le ferait avec du fdf ou du xml.
Les champs du formulaire sont nommés Champ.1 à Champ.x dans l'ordre des colonnes, rien de plus.
Cela dit, on pourrait les prendre en compte pour aider notre ami qui pourrait alors nommer ses champs de formulaire à l'identique des têtes de colonne.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 16 octobre 2013 : 14:05
OK.
 :Ooops:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 30 octobre 2013 : 10:22
Salut à tous !

J'ai bien avancé depuis la dernière fois (je remercie Alex!).
Cependant, je bute sur un problème assez conséquent:
   
   J'aimerai faire correspondre le N°CAP selon le Nom (du bloc 2) et la rubrique déchet (du bloc 3). Par exemple il peut y avoir la même personne pour plusieurs rubrique déchet et inversement. Le numéro de CAP reste unique et je souhaite qu'il se génère automatiquement selon ces 2 données.

   J'aimerai aussi pouvoir générer automatiquement le numéro de bordereau unique (s'il n'est pas référencé dans la base exportée que je vais créer plus tard).

Voilà j'espère que vous m'aurez compris et que l'on puisse aboutir à une solution.

Merci d'avance,
Cdlt,
DeyDey.


P.S: Ci joint le formulaire.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: V1n6ane le 30 octobre 2013 : 11:44
Bonjour à tous,

Merci et surtout bravo :bravo: pour ces supers exemples ! C'est exactement cela qu'il me faut.

Malheureusement pour moi j'utilise LiveCycle Designer (tableaux dynamiques oblige) et je dois donc transposer ce code et pour le moment je n'ai pas trouvé/réussi. Auriez-vous des pistes ?

Si j'y arrive (ce que j'espère), je le posterai, cela aidera peut-être d'autres personnes.

Merci d'avance
V1n6ane
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 04 novembre 2013 : 14:11
UP
Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 05 novembre 2013 : 11:54
J'aimerai faire correspondre le N°CAP selon le Nom (du bloc 2) et la rubrique déchet (du bloc 3). Par exemple il peut y avoir la même personne pour plusieurs rubrique déchet et inversement. Le numéro de CAP reste unique et je souhaite qu'il se génère automatiquement selon ces 2 données.

Oui, mais il faudrait savoir sur quel critère ce numéro devrait être créé.


Citer
J'aimerai aussi pouvoir générer automatiquement le numéro de bordereau unique (s'il n'est pas référencé dans la base exportée que je vais créer plus tard).

Le script contenu dans cet utilitaire pourrait il faire l'affaire ?
==> http://abracadabrapdf.net/utilitaires/acrobat-plugins/abracadabra-docid/

 :Smiley01:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 06 novembre 2013 : 10:34
Pour le numéro de CAP, une personne peut avoir plusieurs numéro de CAP et un déchets peut aussi avoir plusieurs numéros de CAP.
Ce dernier doit être unique pour un déchet et une personne.

Pour ce qui est du numéro du bordereau, la première partie du numéro est la date (ddmmyyyy) suivie de 01, 02 ou 03 etc.. selon le nombre de bordereau par jour; par exemple:

Si on envoi 3 documents le 05 Novembre, les numéros des documents seront:  20131105 01 // 20131105 02 // 20131105 03
Si on envoi d'autres documents le lendemain, les numéros des documents reprendrons à "01" mais avec la date du jour: 20131106 01 // 20131106 02 // 20131106 03 etc.

J'ai déjà le script pour la date:
if (this.getField("01_Num_Bordereau").value == "")
    {
      this.getField("01_Num_Bordereau").value = util.printd("yyyymmdd", new Date()) ;
    }

En fait il faut: Tant que la date n'a pas changé, faire Valeur++


J'espère avoir été clair  :Ooops:

Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 06 novembre 2013 : 13:09
Pour le numéro de CAP, une personne peut avoir plusieurs numéro de CAP et un déchets peut aussi avoir plusieurs numéros de CAP.
Ce dernier doit être unique pour un déchet et une personne.

a = this.getField("CAP-NOM").value;
b = this.getField("CAP-NUMERO").value;
event.target.value = a + b;


 :Smiley01:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 06 novembre 2013 : 13:20
Citer
a = this.getField("CAP-NOM").value;
b = this.getField("CAP-NUMERO").value;
event.target.value = a + b;

Il y a un moyen pour faire correspondre avec mes fichiers .csv et mes champs ?  :Ooops: (J'suis un peu paumé  :oh:)
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 06 novembre 2013 : 14:55
1- les champs sont remplis via le menu déroulant.
2- le script placé en script de calcul dans le champ CAP-final va récupérer les valeurs dans les 2 champs concernés et concaténer leurs valeurs pour les afficher.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 06 novembre 2013 : 15:41
Oh ça marche.  :extra:

Part contre, il me sort l'addition des rangs (un moyen les renseigner les numéros de CAP quelque part ?)

Et pour le script du champ, pas moyen de le mettre ailleurs que "champ activé" ou autre ?

Merci.  :priere:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 06 novembre 2013 : 19:43
Alors essaye plutôt ça :

a = this.getField("CAP-NOM").valueAsString;
b = this.getField("CAP-NUMERO").valueAsString;
event.target.value  = a + b;


A placer en script de calcul (dans l'onglet Calcul)

 :Smiley03:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 07 novembre 2013 : 08:26
Alors la il m'affiche le rang "CAP_NOM" puis le rang "CAP_NUMERO" à la suite et toujours quand j'active le champ.

Il faudrait que le "CAP_FINAL" soit stocké et relatif à "CAP_NOM" et "CAP_NUMERO".
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 07 novembre 2013 : 10:17
Là c'est moi qui suis largué.
Je ne comprend pas la question…
 :Euuuh:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 07 novembre 2013 : 10:57
Et bien le numéro de CAP doit être unique suivant le nom et le déchet.
Les numéros de CAP doivent être renseignés quelques part (ou générés selon un modèle) mais pas calculés.
C'est assez difficile à expliquer, désolé.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 07 novembre 2013 : 11:18
Bonjour à tous,
Pour concaténer le contenu de deux champs dans un troisième, voir exemples joints.
Pour incrémenter automatiquement un numéro de bordereau genre 20131105-01,20131105-02,20131105-03,20131105-04… c'est une autre affaire.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 07 novembre 2013 : 12:59
 :bravo:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 07 novembre 2013 : 13:34
 :bravo:

Pour la date, j'ai ça si ça peut intéresser quelqu'un :


var compteur = 1;
var ancienJour = new Date().getDate()
 
if (this.getField("01_Num_Bordereau").value == "")
{
    if(ancienJour != new Date().getDate())
        compteur = 1;
 
    ancienJour = new Date().getDate();
 
    this.getField("01_Num_Bordereau").value = util.printd("yyyymmdd", new Date()) + " " + compteur ;
    compteur++;
}

Le problème c'est que le numéro ne s'incrémente pas puisque le compteur est réinitialiser; il faudrait un moyen pour stocker la date.
Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 07 novembre 2013 : 13:48
Le problème c'est que le numéro ne s'incrémente pas puisque le compteur est réinitialiser; il faudrait un moyen pour stocker la date.

???
 :Euuuh: :doute:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 07 novembre 2013 : 13:54
Je voulais que pour chaque nouveau bordereau de la journée le numéro soit la date + 01, 02, ou 03 etc selon si on fait un ou plusieurs bordereaux par jour.

Mais à chaque fermeture, le numéro est réinitialisé puisque il est stocké en local. Donc à moins de laisser le bordereau constamment ouvert ou d'enregistrer le numéro sur un serveur, ce n'est pas possible..
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 07 novembre 2013 : 14:11
Si c'est possible, il y a 2 méthodes :

- utiliser une variable globale (qui persiste entre documents et entre sessions du logiciel), mais depuis les versions X il y a beaucoup plus de restrictions dans leur fonctionnement.
- stocker la valeur dans un champ placé dans un autre PDF (qui ne sert qu'à ça), donc assez facile à lire et à modifier javascriptement.

 :Smiley01:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 07 novembre 2013 : 14:46
Euuuh Whaaat ?!
Je crois que je vais laisser tomber, j'ai beaucoup d'autres choses à avancer (notamment l'exportation dans une base structurée --') et mon maître de stage va s'impatienter..

 :mur:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 07 novembre 2013 : 15:52
Pour illustrer la première proposition de Merlin voici un exemple qui exploite la variable globale mémorisée sur la plate-forme où l'on travaille. Il y a donc quelques contraintes d'exploitation à connaître.
Attention: deux scripts sont à l'oeuvre! Le premier est activé par l'ouverture du document, l'autre par l'action d'enregistrement[ (Définir les actions du document>Le document sera enregistré./color]
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 08 novembre 2013 : 08:50
Y a t-il un moyen de mettre la fonction sur un bouton ? (pour tester)
Et j'ai bien recopié les 2 scripts, mais rien ne s'affiche dans mon champ.  :mur:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 08 novembre 2013 : 10:03
Non, on ne doit pas simuler par un bouton puisque les évènements qui gèrent les scripts sont:
1-l'ouverture du document pour le calcul du nouvel identifiant.
2-la fermeture du document pour l'enregistrement de la variable locale.
Ci-joint un document qui ouvre la console à l'issue de la numérotation, recopier le contenu pour que l'on puisse analyser l'erreur éventuelle.
Pour tester:Ouvrir, enregistrer, réouvrir,enregistrer, etc...
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 08 novembre 2013 : 10:19
Merci,

Mon maître de stage vient de m'apprendre qu'il peut être amené, par exemple, à faire 7 ou 8 bordereaux d'affilés et recommencer l'après-midi, par exemple.

Peut-être que l'on ajouter une fonction qui, quand on valide le formulaire pour exporter/imprimer, automatise uniquement la fermeture du bordereau (pas du logiciel).

Est-ce possible ?

Ci joint, le dernier document à jour.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 08 novembre 2013 : 10:48
A placer en action souris enfoncée dans le bouton concerné :
this.closeDoc();

 :Smiley01:
Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: LionelMacBruSoft le 08 novembre 2013 : 12:06
BONJOUR,

Merci,

Et par hasard, s'il existe un script qui envoi les données du formulaire, dans un tableau structuré (Excel, access ou autre) ?

Et est-il possible que ce bouton demande d'enregistrer, d'imprimer et d'exporter ?
Un moment donné, quand on abord un autre point : il faut savoir créer un nouveau sujet (avec un titre adéquat).  :Smiley01:

Merci à vous.

Lionel :alien2:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 08 novembre 2013 : 12:20
Pour poursuivre le débat sur la numérotation automatique d'un document, voici une maquette où deux boutons assurent:
1-la numérotation automatique.
2-la fermeture du formulaire avec, en cas d'enregistrement, la mémorisation du dernier numéro.
Pour raffiner, on pourrait rendre invisible le champ "Attribuer un numéro" et le champ "Valider le bordereau" visible après attribution du numéro.
Attention de bien recopier les scripts de document.

En ce qui concerne l'export des données, c'est l'objet d'un fil différend, je suis bien d'accord.
Titre: Re : Re : Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 08 novembre 2013 : 12:52
Un moment donné, quand on aborde un autre point : il faut savoir créer un nouveau sujet (avec un titre adéquat).

C'est fait : http://abracadabrapdf.net/forum/index.php/topic,2268.0.html
 :bonjour:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 08 novembre 2013 : 13:28
Désolé pour le mauvais post.
Merci Merlin de l'avoir déplacé au bon endroit, et merci Alex pour ton aide :) !

J'ai recopié tous les script au bon endroit et dans mon champ, il s'affiche "xxxxx", je n'ai aucune idée pourquoi.

Ouaaa et je viens d'avoir un gros souci la.. (Je suis désolé  :Ooops:)
Pour le numéro de CAP, en fait je doit choisir un "Nom (case2)", la "rubrique déchet (case3)" et qu'il me propose une liste déroulante pour le numéro de CAP (case2) qui correspond au "Nom" et à la "Rubrique déchet".

Je joint le BSD avec un .csv type comme exemple qui pourrait être donné (02_CAP.csv)
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 08 novembre 2013 : 14:54
As tu lu ceci ? : http://abracadabrapdf.net/ressources-et-tutos/les-differents-niveaux-dutilisation-des-scripts-javascript/
 :idee:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 08 novembre 2013 : 15:08
Edit du message précédent (je ne voulais pas flooder)  :oh:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 08 novembre 2013 : 19:12
Dans ton formulaire manque le script lié à l'enregistrement du document:
Outils>Définir les actions du document>Le document sera enregistré…
Pour le reste, je n'ai rien compris. le contenu d'un menu déroulant dépend du choix effectué sur un autre ???
Merlin, on pourrait ouvrir un fil sur ce seul thème de la numérotation automatique, je vous proposerai une solution plus raffinée que vous pourrez tester.
Bonsoir à tous et bon week-end.
Titre: Re : Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 09 novembre 2013 : 22:33
Merlin, on pourrait ouvrir un fil sur ce seul thème de la numérotation automatique, je vous proposerai une solution plus raffinée que vous pourrez tester.

C'est fait : http://abracadabrapdf.net/forum/index.php/topic,2270.new.html
 :Smiley03:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 12 novembre 2013 : 11:11
Merci, le numéro automatique fonctionne.
Pour le numéro de CAP je vais essayer d'être plus clair:

Le « 02_CAP » doit dépendre de « 02_Installation_de_destination » et « 03_Rubrique ». C’est-à-dire que si je sélectionne tel «Nom » et tel « Déchet », la liste des numéros de CAP doit me proposer que les numéros qui sont associés au nom et au déchet.
J’ai fait un .csv exemple (02_CAP.csv) des possibilités.

Ci-joint le dernier document a jour.
Titre: Re : Récupération données BDD dans un formulaire PDF.
Posté par: DeyDey le 14 novembre 2013 : 09:46
En fait c'est des listes déroulantes liées mais avec des données extérieures (pièces jointes) et non encrées directement dans le code.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 14 novembre 2013 : 11:26
Le menu déroulant "02_CAP" ne peut plus être renseigné à l'ouverture du document puisqu'il dépend de deux autres sélections. En conséquence, on ne doit pas voir apparaître le script configComBox() dans le script xinitialisation(). Par précaution, on vide le menu déroulant "02_CAP".d'où, les lignes suivantes:

nomFichier="02_CAP.csv";
lectureCSV();
data02_CAP=data;
configComboBox();
this.getField("02_CAP.csv").clearItems();

Par contre, on doit créer deux scripts au niveau des menus déroulants « 02_Installation_de_destination » et « 03_Rubrique ». pour mettre à jour le menu "02_CAP.csv",
Onglet Format>Personnalisé>Script de touche personnalisé
1-pour « 02_Installation_de_destination », un script de la forme:
//Remplissage du menu déroulant
if(!event.willCommit)
{
table=new Array() ;
choix1=this.event.changeEx;
choix2=this.getField("03_Rubrique").value;
//définition de la table à partir des choix1 et choix2 (la table "dépend de")
//……………script à écrire………………….
//
   f2=this.getField("02_CAP");
   f2.delay=true;
   f2.clearItems();
   j=0;
   while(j<table.length)
   {
   f2.insertItemAt(table[j],j,j)
   j=j+1;
   }
   f2.currentValueIndices=0;
   f2.delay=false;
}

2-pour « 02_Installation_de_destination », un script de la forme:
//Remplissage du menu déroulant
if(!event.willCommit)
{
table=new Array() ;
choix1=this.getField("02_Installation_de_destination").value;
choix2=this.event.changeEx;
//définition de la table à partir de choix1 et choix2. (la table "dépend de")
//……………script à écrire………………….
//
   f2=this.getField("02_CAP");
   f2.delay=true;
   f2.clearItems();
   j=0;
   while(j<table.length)
   {
   f2.insertItemAt(table[j],j,j)
   j=j+1;
   }
   f2.currentValueIndices=0;
   f2.delay=false;
}

Hélas, je ne peux pas définir les tables des items car je ne suis pas une voyante extra-lucide ni un enchanteur  !
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 14 novembre 2013 : 13:10
Merci de me consacrer du temps Alex :D.

Je ne suis pas tout-à-fait sur de la structure du script a rajouter ? (Désolé je suis un vrai plot en Js :/)
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 15 novembre 2013 : 13:35
J'ai des erreurs qui viennent d’apparaître comme par magie.
Des erreurs de protection, plus aucun champs ne marche, la numérotation auto ne marche plus.
Je ne vois pas ce que j'ai modifier pour que cela arrive.
Je commence vraiment à désespérer :( .. 
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: Merlin le 15 novembre 2013 : 13:58
Pas de panique, au pire des cas il suffit de repartir d'une version antérieure.
 :Smiley01:
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 15 novembre 2013 : 17:48
Quand plus rien ne marche, c'est que le diagnostique est aisé (en général). Ouvrir la console avec un Ctrl-J (sur Pc) ou un cmd-J (sur Mac), mes scripts sont assez bavards, on devrait avoir une piste…
Bon week-end à tous.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 18 novembre 2013 : 08:08
Salut,
Pour les erreurs, voici ce qu'indique la console:
NotAllowedError: Les paramètres de protection interdisent l'accès à cette propriété ou à cette méthode.
Global.dernNum:7:Field Num:Mouse Up

TypeError: table[event.changeEx] is undefined
20:Field:Keystroke
Rien de plus..

Quand à l'exportation des données, je ne tire pas beaucoup de solution avec d'autres logiciels..
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 18 novembre 2013 : 09:00
Bonjour,
Tout d'abord donnes-nous quelques précisions.
Quelle application (Acrobat ou Acrobat Reader) et quelle version ? Système d'exploitation  (Windows Xp ?) pour cette recopie de la console ?
Ensuite, vérifies le réglage des préférences d'Adobes Reader et refais un essai. (voir copie d'écran jointe).
A suivre.

Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 18 novembre 2013 : 09:10
J'utilise Acrobat Pro XI sur Windows 8.
Le logiciel sera sur windows XP lu avec un vieux Adobe Reader.

J'ai fais la modification que tu m'as donné, ça fonctionne pour le numéro du bordereau.
Par contre, le remplissage des champs ne fonctionne toujours pas.

Je joint le fichier en date.
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 20 novembre 2013 : 08:07
UP
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 20 novembre 2013 : 10:37
Bonjour,
Ci-joint le formulaire avec une correction (le nom du champ "02_CAP" au lieu du nom "02_CAP.csv") qui ne résoud rien puisque qu'on ne connait toujours pas la logique qui régit la collecte des items de ce menu déroulant !Dans l'état actuel du script, ce champ est vide. Par ailleurs, pour faire des tests il aurait été bon d'avoir des jeux de données un peu plus consistants.
Questions:
1-Comment doit-on renseigner les items du menu déroulant "02_CAP" ? La réponse à cette question permettrait de compléter le script proposé le script ci-dessus du 14.
2-Quelle version d'Adobe Reader utilisera t-on sur le Pc de saisie des données ?

Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 20 novembre 2013 : 10:45
Salut,

Pour la première question, les items du menu déroulant "02_CAP" devront être renseignés eux aussi dans un menu déroulant qui contiendrait les items selon les données choisies des autres listes.

La version d'Adobe Reader qui sera utiliser et, à mon avis, une vieille version puisque le PC est sous XP (je ne peux, pour le moment pas renseigner la version exact).
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 20 novembre 2013 : 11:22
Désolé mais,
Pour la première question, les items du menu déroulant "02_CAP" devront être renseignés eux aussi dans un menu déroulant qui contiendrait les items selon les données choisies des autres listes.
ne suffit pas pour écrire un script même avec une baguette magique!
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 20 novembre 2013 : 11:36
Désolé mais je ne comprends pas ta question alors.
Ce programme commence à me sortir par les yeux, j'en verrais jamais le bout, je comprends plus rien.

Il n'y a pas de moyen d'avoir un script qui exporte les données des champs? Comme pour l'importation mais à l'inverse?
Je n'ai quasiment aucune connaissances dans ce domaine; je serai probablement plus avancé sinon..
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: alex le 20 novembre 2013 : 11:47
La question est:
Quelle relation, (quel lien logique) y-a t-il entre les items de la liste "02_CAP" et ceux des deux autres menus déroulants?
Il faut me donner f !
item"02_CAP" =f(item"02_Installation_de_destination",item"03_Rubrique")
Titre: Re : Récupération données BDD dans un formulaire PDF. - RÉSOLU
Posté par: DeyDey le 20 novembre 2013 : 11:51
Ce doit être des listes liées, selon les données qui sont dans 02_Installation_de_destination et 03_Rubrique, la liste 02_CAP est modifié automatiquement, selon le fichier .csv en pièces jointes.

Je ne sais pas comment expliquer autrement, au pire je laisse tomber ce point la, c'est pas le plus important, contrairement à l'exportation.