Donnez vie à vos documents numériques !
 

Récupération données BDD dans un formulaire PDF. – RÉSOLU

abracadabraPDF Forums PDF – Général Récupération données BDD dans un formulaire PDF. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44667
    DeyDey
    Membre

    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 :) !

Affichage de 25 réponses de 51 à 75 (sur un total de 106)
  • Auteur
    Réponses
  • #55895
    DeyDey
    Membre

    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).

    [attachment deleted by admin]

    #55896
    DeyDey
    Membre

    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 :'(..

    #55897
    Merlin
    Maître des clés

    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:

    #55898
    DeyDey
    Membre

    Je ne comprends toujours pas  :Euuuh:

    #55899
    alex
    Participant

    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.

    #55900
    Merlin
    Maître des clés

    OK.
    :Ooops:

    #55901
    DeyDey
    Membre

    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.

    [attachment deleted by admin]

    #55902
    V1n6ane
    Membre

    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

    #55903
    DeyDey
    Membre

    UP

    #55904
    Merlin
    Maître des clés

    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éé.

    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:

    #55905
    DeyDey
    Membre

    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:

    Code:
    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:

    #55906
    Merlin
    Maître des clés

    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:

    #55907
    DeyDey
    Membre

    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:)

    #55908
    Merlin
    Maître des clés

    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.

    #55909
    DeyDey
    Membre

    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:

    #55910
    Merlin
    Maître des clés

    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:

    #55911
    DeyDey
    Membre

    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 ».

    #55912
    Merlin
    Maître des clés

    Là c’est moi qui suis largué.
    Je ne comprend pas la question…
    :Euuuh:

    #55913
    DeyDey
    Membre

    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é.

    #55914
    alex
    Participant

    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.

    [attachment deleted by admin]

    #55915
    Merlin
    Maître des clés

    :bravo:

    #55916
    DeyDey
    Membre

    :bravo:

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

    Code:
    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.

    #55917
    Merlin
    Maître des clés

    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:

    #55918
    DeyDey
    Membre

    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..

    #55919
    Merlin
    Maître des clés

    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:

Affichage de 25 réponses de 51 à 75 (sur un total de 106)
  • Vous devez être connecté pour répondre à ce sujet.