Donnez vie à vos documents numériques !
 

Formulaire variant en fonction des réponses données. – RÉSOLU

abracadabraPDF Forums PDF – Général Formulaire variant en fonction des réponses données. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44618
    Antonin TCP
    Membre

    Bonjour,

    Je suis très heureux d’enfin trouver un forum d’entraide en français pour les PDF.

    Je cherche depuis quelques semaines à faire un formulaire pour mon entreprise:

    Je voudrai que les cameramen partant en tournage puissent remplir un formulaire pdf pour y indiquer avec quel matos partent ils, combien de piles…

    Or, dans la liste des caméras ils choisissent quel modèle : A, B ou C.

    Une fois selectionné, j’aimerai qu’une case apparaisse pour y inscrire le numéro de la caméra, comme sur certains sites web.

    J’ai essayé sur Open Office, mais je n’ai vraiment pas les compétences pour.

    Maintenant je me met sur Adobe Acrobat XI en espérant que ce soit plus accessible.

    Merci beaucoup et bonne journée.

Affichage de 59 réponses de 1 à 59 (sur un total de 59)
  • Auteur
    Réponses
  • #55426
    Stubiana
    Membre

    :joker:

    Je ne m’y connais pas du tout en script OpenOffice, mais je pense qu’il serait beaucoup, beaucoup plus simple de faire ça avec Adobe Acrobat (si tu le possède) et dans ce cas là je pourrais t’aider  :Smiley01:

    Cordialement

    #55427
    Antonin TCP
    Membre

    Je suis très très preneur, j’ai justement décidé de me mettre dessus  :Smiley08:

    #55428
    jsamica
    Membre

    Bienvenu à toi Antonin,
    Effectivement pour cela il te faut Adobe Acrobat pour que tu puisses créer/modifier des PDF.

    Il sera à ce moment là possible de réaliser cette fonctionnalité.

    :bonjour:

    #55429
    Antonin TCP
    Membre

    Je l’ai justement et je débute dessus :)

    #55430
    Stubiana
    Membre

    Avec Acrobat, c’est très simple.

    Clic droit sur ta liste > Propriétés > Action > Le déclencheur sera “Souris enfoncée” et l’action “Afficher/Masquer un champ” > Ajouter > Tu choisis le champ qui va contenir le numéro de la caméra et tu coche Afficher  :Smiley01:

    Pour que ton champ soit par défaut caché avant que le caméraman clique sur la zone de liste, Clic droit sur le champ > Propriétés > Général > Tu remplaces “Visible à l’écran” par “Invisible à l’écran”

    N’hésite pas si tu as besoin de plus de renseignements

    Cordialement  :bonjour:

    #55431
    Antonin TCP
    Membre

    Merci beaucoup Stubiana,

    Par contre je ne trouve pas la liste dont tu parles. Lorsque je demande à créer un nouveau formulaire, adobe acrobate m’envoie vers Forms Central, c’est dessus que ça se passe ou vous utilisez autre chose ?

    merci encore !

    #55432
    Stubiana
    Membre

    Or, dans la liste des caméras ils choisissent quel modèle : A, B ou C.

    C’est de cette liste que je parle, donc je suppose que tu ne l’a pas encore créée.

    Je pense que le mieux est de créer ton fichier sous Open Office, en y incluant tout le texte de ton formulaire, et en laissant des espaces à l’emplacement des champs, puis d’exporter ce fichier au format PDF.
    Une fois fait, tu l’ouvre avec Acrobat, tu cliques sur Créer un formulaire, A partir d’un document existant, et Document Actif.

    Lorsque tu aura fait ça, préviens nous qu’on puisse commencer à voir cette histoire de liste.  :Smiley03:

    Cordialement.  :bonjour:

    #55433
    Antonin TCP
    Membre

    J’ai justement déjà fait un formulaire assez proche de ce que je veux sur Acrobat. Mais lorsque je clique droit sur cet élément, je n’ai pas propriété, mais j’ai: “monter/descendre d’un niveau” “Insérer un élément au dessus” “Insérer un élément au regard” “couper/copier/coller” et “Sélectionner/Sélectionner tout” .

    Merci encore, c’est super !

    #55434
    Antonin TCP
    Membre

    Je viens de comprendre: Forms Central ne permet pas du tout ça. Il faut faire le formulaire sur Acrobat Pro, depuis une base Word, Excel ou autre, afin d’être sûr de le pouvoir !

    Merci beaucoup, si j’ai d’autres difficultés, je peux encore écrire sur ce topic ou j’en créé un autre ?

    Merci encore !

    EDIT: Est il plus pratique que je fasse les bases non interactives sur Photoshop ou Word, en laissant de la place pour les champs à remplir, ou que je fasse la totalité du formulaire sur Adobe Acrobat ? Comment procédez vous ?

    EDIT 2: En sélectionnant “Souris enfoncée” ou autre chose, lorsque je coche puis décoche la case, le nouveau champs apparu reste à l’image. Alors que j’aimerai dans l’idéal, qu’elle disparaisse aussi. (Par exemple si le cadreur s’est trompé de case, qu’il ait coché la mauvaise, la décochant donc ensuite)

    Merci encore et encore

    #55435
    jsamica
    Membre

    Je pense que le plus simple est de créer complétement ton formulaire avec Adobe Acrobat.
    Tu n’as besoin d’aucune autre ressource pour répondre à ton besoin.

    Tu peux intégrer dans javascript dans des champs ou document.

    Fait une recherche sur le forum tu trouveras un grand nombres de sujets correspondant.

    Bon courage.
    :bonjour:

    #55436

    Bonjour,

    Oui, le plus simple est de créer directement avec Adobe Acrobat.

    Faire une recherche sur le forum est la première chose à faire avant de créer un sujet.  :idee:
    http://abracadabrapdf.net/forum/index.php/topic,1000.0.html

    Lionel :alien2:

    #55437
    Antonin TCP
    Membre

    Merci pour vos réponses.

    J’ai cherché pour le problème suivant, et je n’ai pas trouvé chaussure à mon pied :

    Via les déclencheurs que me propose Adobe Acrobat, je n’arrive pas à rendre un champs visible uniquement lorsqu’une “case à cocher” est cochée. Visible et bien entendu éditable (l’idée serait que ce soit un champs de texte ou autre)

    Je ne trouve pas sur google non plus.

    Merci encore

    #55438
    jsamica
    Membre

    Voici un exemple de code js a intégrer sur des boutons boutons radio (type oui, non) :

    Code:
    if (this.getField(“boutonradio”).isBoxChecked(0))
    {this.getField(“champaffiche”).display = display.visible;}
    else
    {this.getField(“champaffiche”).display = display.hidden;}

    En gros quand la case oui est cochée, le champ “champaffiche” est visible sinon il ne l’est pas.

    Tu trouveras plein d’exemples de ce type sur le forum.

    Bonne continuation et bon courage.
    :bonjour:

    #55439
    Antonin TCP
    Membre

    Génial.

    J’arrive enfin à faire apparaitre ou disparaitre en fonction du choix, la fenêtre permettant de choisir le nombre de caméras sélectionnées.

    Je voudrais savoir si il y a un moyen pratique de résumer en une ligne, l’état de plusieurs “getfield“. De façon parfaitement insolente, j’ai tenté ça:

    Code:
    if (event.target.value == “0”)
    {
    this.getField(“3”).display = display.hidden;
    this.getField(“4”).display = display.hidden;
    }
    if (event.target.value == “1”)
    {
    this.getField(“1”).display = display.visible;
    this.getField(“2″;”3″;”4″;”5″;”6″;”7″;”8″;”9″;”10″;”11″;”12″;”13″;”14″;”15″;”16″;”17″;”18″;”19″;”20”).display = display.hidden;
    }

    Mais ça ne fonctionne pas. Dois-je du coup les écrire les un à la suite des autres?

    Au passage, comment puis-je rajouter du texte à côté d’un champs, de manière à qu’il apparaisse en même temps que celui-ci? (Pour nommer la liste par exemple)

    Je précise que je fais mes tout tout tout premier pas avec Javascript et que pour le coup j’essaye de comprendre une logique dont je n’ai pas trop les bases, c’est possible que le code ci-dessus soit une parfaite infamie.

    Merci encore, je vais peut être finir par y arriver grâce à vous.  :priere:

    #55440
    Stubiana
    Membre

    Pour ton problème de getField, si les valeurs se suivent, tu peux utiliser une boucle :

    Remplace :

    Code:
    this.getField(“2″;”3″;”4″;”5″;”6″;”7″;”8″;”9″;”10″;”11″;”12″;”13″;”14″;”15″;”16″;”17″;”18″;”19″;”20”).display = display.hidden;

    par

    Code:
    for (var i = 2 ; i{
    this.getField(i).display = hidden;
    }

    Pour rajouter du texte tu peux simplement ajouter un nouveau champ de texte, et le mettre en lecture seule pour que personne ne puisse le modifier  :Smiley03:

    Cordialement  :bonjour:

    #55441
    Antonin TCP
    Membre

    J’ai un problème de syntaxe, mais je n’arrive pas à l’identifier:

    Code:
    if (event.target.value == “1”)
    {
    for (var i = 2B ; i{
    this.getField(i).display = hidden;
    }
    for (var i = 1B ; i{
    this.getField(i).display = visible;
    }
    }

    Vous arrivez à l’identifier ?

    #55442
    Stubiana
    Membre

    Oui, cette méthode ne marche qu’avec les nombres, après il y aura d’autres méthodes plus compliqué qui dépendent des noms de tes champs :

    – Si tes noms de champ sont “1”, “2”, “3”, …., une boucle simple fera l’affaire

    – Si tes noms de champs sont un chiffre suivi d’un texte, il faudra concaténer les deux, par exemple :

    Code:
    for (var i = 2 ; i{
    this.getField(i+”B”).display = hidden;
    }

    – Si ce n’est que du texte… :joker:

    Cordialement  :bonjour:

    #55443
    Antonin TCP
    Membre

    Merci beaucoup pour ton aide Stubiana. Du coup je reste dans la longue liste que j’ai fait, je prend finalement moins de temps à dupliquer à “remplacer par” sur le bloc note de cette manière.

    Aussi, je cherche à rendre les cases invisibles lorsque la liste ne l’est pas non plus. Si par exemple un utilisateur commence à mettre “15” sur une liste, puis se rend finalement compte qu’il s’est trompé de catégorie, qu’il l’a décoche, j’aimerai que les cases partent elles aussi. Pour le moment seul la valeur de la liste peut les rendre invisible (Par défaut à zero du coup).

    J’ai tenté ça:

    Code:
    if (this.getField(“ListeMSD”).display = hidden;
    {
    for (var i = 1 ; i{
    this.getField(i+”B”).display = hidden;
    }
    }

    Mais ça ne fonctionne pas :(

    Tu aurais une piste ? Merci encore beaucoup !

    #55444
    Antonin TCP
    Membre

    Par un autre biais, je tente de mettre à zéro la valeur de la liste si elle est “hidden”, mais ça ne fonctionne pas non plus.

    Code:
    if (this.getField(“ListeMSD”).display = hidden);
    {
    this.getField(“ListeMSD”).value == “0”}

    C’est passionnant le Javascript !  :Smiley08:

    #55445
    Stubiana
    Membre

    Je ne sais pas si ça peut résoudre le problème mais en tout cas ton code comporte des erreurs de syntaxe :

    – L’opérateur == effectue un test d’égalité, il renvoie un booléen (true ou false) qui indique si le le test est correct ou non (par exemple 0 == 0 renverra true puisque 0 est bien égal à 0, mais 1 == 0 renverra false)

    – L’opérateur = effectue une affectation, c’est-à-dire qu’il donne la valeur à une variable (par exemple après le code a = 0; a vaudra 0)

    Dans ton deuxieme code, tu utilise une affectation dans ton if, donc le programme ne va pas tester si le champ est caché, il va le RENDRE caché.
    De même, ligne d’en dessous, le programme ne va pas mettre la valeur de la liste à 0, il va TESTER si elle est égale à 0, et renverra true ou false.

    Une correction serait donc :

    Code:
    if (this.getField(“ListeMSD”).display == hidden);
    {
    this.getField(“ListeMSD”).value = “0”
    }

    Cordialement  :bonjour:

    #55446
    Antonin TCP
    Membre

    Cool, grace à toi je comprend mieux la nuance entre le simple et le double “=” :)

    Malheureusement, ça ne marche toujours pas, alors que ça me semble fonctionnel:

    Code:
    if (this.getField(“ListeMSD”).display == hidden);
    {
    this.getField(“1B”).display = display.hidden;
    this.getField(“2B”).display = display.hidden;
    this.getField(“3B”).display = display.hidden;
    this.getField(“4B”).display = display.hidden;
    this.getField(“5B”).display = display.hidden;
    this.getField(“6B”).display = display.hidden;
    this.getField(“7B”).display = display.hidden;
    this.getField(“8B”).display = display.hidden;
    this.getField(“9B”).display = display.hidden;
    this.getField(“10B”).display = display.hidden;
    this.getField(“11B”).display = display.hidden;
    this.getField(“12B”).display = display.hidden;
    this.getField(“13B”).display = display.hidden;
    this.getField(“14B”).display = display.hidden;
    this.getField(“15B”).display = display.hidden;
    this.getField(“16B”).display = display.hidden;
    this.getField(“17B”).display = display.hidden;
    this.getField(“18B”).display = display.hidden;
    this.getField(“19B”).display = display.hidden;
    this.getField(“20B”).display = display.hidden;
    }

    J’ai mis cette action en haut de celle qui détermine le rapport valeur de liste => nombre de case apparente, elle devrait donc être prioritaire non ?

    Je ne comprend pas ce qui cloche.

    Merci encore Stubiana !

    #55447

    Bonjour,

    Je ne comprend pas ce qui cloche.

    :idee: L’ordre dans lesquelles les actions s’effectuent ?

    Lionel :alien2:

    #55448
    Antonin TCP
    Membre

    Salut Lionel,

    Je l’ai pourtant bien mise en première par rapport à l’autre action. Je viens d’essayer de mettre le script dans la même action avec :

    Code:
    if (this.getField(“ListeMSD”).display == hidden )!important;

    Rien ne change.

    J’ai aussi essayé de n’appliquer que cette action, en vain  :Smiley02:

    #55449
    Stubiana
    Membre

    je pense que c’est tout simplement dû à une erreur d’écriture, il faut écrire “display.hidden” et non pas seulement “hidden” dans ton if :Smiley03:

    Cordialement  :bonjour:

    #55450
    Antonin TCP
    Membre

    Non plus malheureusement :(

    Code:
    if (this.getField(“ListeMSD”).display == display.hidden );
    {
    this.getField(“1B”).display = display.hidden;
    this.getField(“2B”).display = display.hidden;
    this.getField(“3B”).display = display.hidden;
    this.getField(“4B”).display = display.hidden;
    this.getField(“5B”).display = display.hidden;
    this.getField(“6B”).display = display.hidden;
    this.getField(“7B”).display = display.hidden;
    this.getField(“8B”).display = display.hidden;
    this.getField(“9B”).display = display.hidden;
    this.getField(“10B”).display = display.hidden;
    this.getField(“11B”).display = display.hidden;
    this.getField(“12B”).display = display.hidden;
    this.getField(“13B”).display = display.hidden;
    this.getField(“14B”).display = display.hidden;
    this.getField(“15B”).display = display.hidden;
    this.getField(“16B”).display = display.hidden;
    this.getField(“17B”).display = display.hidden;
    this.getField(“18B”).display = display.hidden;
    this.getField(“19B”).display = display.hidden;
    this.getField(“20B”).display = display.hidden;
    }
    #55451
    Stubiana
    Membre

    Serait-il possible de mettre ton fichier en pièce jointe ? N’ayant pas la totalité du code sous les yeux je ne peux pas me rendre compte de ce qui cloche.

    Merci  :bonjour:

    #55452
    Antonin TCP
    Membre

    http://we.tl/8dJNPJZ9WS

    Voici un lien vers le formulaire.

    Merci encore pour l’aide  :bravo:  :Smiley01:

    #55453
    Stubiana
    Membre

    Met plutôt le code sur ta case à cocher, lorsqu’elle est décochée tu cache tout les champs :

    Code:
    if (this.getField(“CFCheck”).isBoxChecked(0))
    {
    this.getField(“ListeCF”).display = display.visible;
    }
    else
    {
    this.getField(“ListeCF”).display = display.hidden;
    this.getField(“1”).display = display.hidden;
    this.getField(“2”).display = display.hidden;
    this.getField(“3”).display = display.hidden;
    this.getField(“4”).display = display.hidden;
    this.getField(“5”).display = display.hidden;
    this.getField(“6”).display = display.hidden;
    this.getField(“7”).display = display.hidden;
    this.getField(“8”).display = display.hidden;
    this.getField(“9”).display = display.hidden;
    this.getField(“10”).display = display.hidden;
    this.getField(“11”).display = display.hidden;
    this.getField(“12”).display = display.hidden;
    this.getField(“13”).display = display.hidden;
    this.getField(“14”).display = display.hidden;
    this.getField(“15”).display = display.hidden;
    this.getField(“16”).display = display.hidden;
    this.getField(“17”).display = display.hidden;
    this.getField(“18”).display = display.hidden;
    this.getField(“19”).display = display.hidden;
    this.getField(“20”).display = display.hidden;
    }

    Initialisation();

    Chez moi ça marche  :Smiley03:

    Cordialement  :bonjour:

    #55454
    Antonin TCP
    Membre

    En effet ça fonctionne impeccablement ! C’est terrible, mon pdf commence à ressembler à ce que je voulais :D

    J’arrive au bout mais il va me falloir encore de l’aide  :priere:

    Je cherche à faire un bouton “Enregistrer” qui non seulement enregistre en lecture seule, mais dirige automatiquement dans un dossier précis et enfin, qui porte un nom constitué de champs dans le formulaire (ex: nom, projet, caméra).

    J’ai lu plusieurs topics sur le forum, notamment au sujet du script à mettre à la racine d’Acrobat, du fait d’étendre les droits dans Acrobat, du script javascript pour faire tout ça, mais après moulte tentatives, rien ne fonctionne…

    Est ce que Acrobat XI simplifie cette démarche, est elle différente ?

    En tout cas merci infiniment.  :bonjour: Ce formulaire va me faire gagner plusieurs dizaines de minutes par jour !

    #55455
    Antonin TCP
    Membre

    Up  :bonjour:

    #55456
    Merlin
    Maître des clés

    Je cherche à faire un bouton “Enregistrer” qui non seulement enregistre en lecture seule, mais dirige automatiquement dans un dossier précis et enfin, qui porte un nom constitué de champs dans le formulaire (ex: nom, projet, caméra).
    J’ai lu plusieurs topics sur le forum, notamment au sujet du script à mettre à la racine d’Acrobat, du fait d’étendre les droits dans Acrobat, du script javascript pour faire tout ça, mais après moulte tentatives, rien ne fonctionne…

    Il faudrait que tu reposte ton formulaire, le lien ci-dessus ne fonctionne plus.
    Le plus compliqué c’est le chemin d’accès vers le dossier spécifique, problème que j’ai résolu élégamment en plaçant le formulaire “matrice” dans le dossier final, ainsi l’enregistrement-sous est proposé par défaut dans ce même dossier…
    Je t’en dirais plus en voyant le doc.
    :Smiley03:

    Est ce que Acrobat XI simplifie cette démarche, est elle différente ?

    Non, ça ne change rien.

    #55457
    Antonin TCP
    Membre

    Merci beaucoup pour ta réponse Merlin.

    Voici un lien vers mon formulaire.

    #55458
    Merlin
    Maître des clés

    Est-ce que quelque chose comme le ci-joint conviendrait ?
    (Tout est dans le bouton).

    Ca ne répond pas à l’ensemble du cahier des charges mais c’est la solution la plus simple à mettre en œuvre, et ça fonctionne aussi avec Reader.
    :bonjour:

    [attachment deleted by admin]

    #55459
    Antonin TCP
    Membre

    C’est parfait ! Ca permet de gagner beaucoup de temps et c’est un excellent compromis :D !

    Merci encore Merlin.

    Pour finir, as tu une piste pour enregistrer le fichier en lecture seule ?

    #55460
    Merlin
    Maître des clés

    Pour qu’un PDF soit en lecture seule il faut utiliser les méthodes de protection.
    Pour ce que tu veux faire le plus simple est de verrouiller tous les champs, en ajoutant ce script :

    for (var i=0; i{
    var fname = this.getNthFieldName(i);
    var f = this.getField(fname);
    f.readonly = true;
    }

    Mais il ne faut pas l’ajouter n’importe où, ce qui pour ton document nous donne :

    MonTitre = “Tony Prod”;
    ChEnrgNom = this.getField(“Journaliste”);
    ChEnrgDate = this.getField(“Date de sortie”);
    if (ChEnrgDate.value == null || ChEnrgDate.value == “” || ChEnrgNom.value == null || ChEnrgNom.value == “”)
    {app.alert({cMsg:”Merci de renseigner les champs “Date de sortie” et “Journaliste” avant d’enregistrer ce document.”, nIcon:2, cTitle:MonTitre});}
    else
    {
    var strFixe = “_” + MonTitre;
    var strNom = ChEnrgNom.value;
    var strNum = ChEnrgDate.value
    if (app.language == “FRA”)
    {var strTitre = strFixe + “_Enregistrement”;
    var strQuestion = “COPIEZ le nom proposu00E9 ci-dessous et COLLEZ le dans la fenu00EAtre suivante pour l’utiliser comme nom de fichier (merci de respecter cette syntaxe qui nous facilite la gestion) :”;
    }
    else
    {var strTitre = strFixe + “_SaveAs”;
    var strQuestion = “COPY below proposed text and PASTE it in the following box to use it as file name:”;
    }
    var strDisplay = strNum + “_” + strNom + strFixe;
    var saveRep = app.response({cQuestion: strQuestion, cTitle: MonTitre, cDefault: strDisplay,});
    if (saveRep != null)
    {
    for (var i=0; i {
    var fname = this.getNthFieldName(i);
    var f = this.getField(fname);
    f.readonly = true;
    }

    app.execMenuItem(“SaveAs”);
    }
    }

    Voir PJ.
    :Smiley03:

    [attachment deleted by admin]

    #55461
    djamel227
    Membre

    Bonjour Merlin; Est ce que je peux ajouter un chemin vers lequel j’enregistre le document et sous le format .fdf

    par exemple ici ; C:UsersDJAMELDocumentsdocuments.fdf

    #55462
    Merlin
    Maître des clés

    this.exportAsFDF(true, true, cPath: “C:UsersDJAMELDocuments”, true);

    :Smiley01:

    #55463
    djamel227
    Membre

    bonjour

    s’il vous plait Merlin !
    J’ai réussi, donne moi un coup de main!
    ou je dois placer le code ?

    #55464
    Merlin
    Maître des clés

    Dans le bouton d’envoi, en action “souris enfoncée”.

    Mais enregistrer un PDF et enregistrer un FDF sont deux choses bien différentes qui répondent à des besoins et à des moyens différents.
    :idee:

    #55465
    Antonin TCP
    Membre

    Merci beaucoup beaucoup Merlin!

    Bientôt mon formulaire sera terminé grâce à toi :D

    Mais j’ai un problème de syntaxe que je ne comprend pas, j’ai un “missing ) after condition”  sur ces lignes:

    Code:
    if (ChEnrgDate.value == null || ChEnrgDate.value == “” || ChEnrgNom.value == null || ChEnrgNom.value == “”|| ChEnrgPrenom.value == null || ChEnrgPrenom.value == “” ChEnrgProjet.value == null || ChEnrgProjet.value == “”))
    {app.alert({cMsg:”Merci de renseigner les champs “Date du jour”, “Cadreur”, “Journaliste” et “Projet” avant d’enregistrer ce document.”, nIcon:2, cTitle:MonTitre});}
    else

    Après ça je vous embêterai plus jamais promis :D

    Merci encore  :priere: :bonjour:

    #55466
    Merlin
    Maître des clés

    Instinctivement je dirais que l’erreur vient de là (non testé) :

    if (ChEnrgDate.value == null || ChEnrgDate.value == “” || ChEnrgNom.value == null || ChEnrgNom.value == “”|| ChEnrgPrenom.value == null || ChEnrgPrenom.value == “” ChEnrgProjet.value == null || ChEnrgProjet.value == “”))

    Les messages d’erreur de la Console ne sont pas forcément très clairs, là il te dit qu’il manque une parenthèse en début de condition alors que c’est l’inverse : il y en a une en trop à la fin.
    :bonjour:

    D’autre part, le jour où ça m’embêtera je déserterais le forum…
    :geek:

    #55467
    djamel227
    Membre

    Dans le bouton d’envoi, en action “souris enfoncée”.

    Mais enregistrer un PDF et enregistrer un FDF sont deux choses bien différentes qui répondent à des besoins et à des moyens différents.
    :idee:

    *******

    Merci beaucoup Merlin !
    j’ai déjà fait ceci Mais j’en ai pas de résultat
    voila ce que j’ai sur le ficher joint.

    [attachment deleted by admin]

    #55468
    djamel227
    Membre

    je veux enregistrer les données de mon document Pdf dans un lien sur mon ordinateur a chaque saisie.

    #55469
    Merlin
    Maître des clés

    voila ce que j’ai sur le ficher joint.

    Ca marche.
    (Voir ci-joint).

    [attachment deleted by admin]

    #55470
    Merlin
    Maître des clés

    Bonjour Merlin; Est ce que je peux ajouter un chemin vers lequel j’enregistre le document et sous le format .fdf
    par exemple ici ; C:UsersDJAMELDocumentsdocuments.fdf

    Pour pouvoir pré-indiquer le chemin il faut que l’instruction vienne d’un bouton ou d’un menu d’Acrobat, ou bien d’une Action.
    Ce n’est pas possible depuis un document (sécurité oblige).

    :idee:

    #55471
    Antonin TCP
    Membre

    Arg malheureusement ça n’est pas ça ! :(

    J’avais ajouté la paranthèse moi même après plusieurs vaines tentatives. Du coup je l’ai copié avec sans faire exprès.

    Pourtant j’ai comparé mon script au tient et la syntaxe identique, j’ai juste rajouté des champs…

    Je ne comprend pas  :Euuuh:

    Merci encore !

    #55472
    djamel227
    Membre

    Oui ,Merlin ça marche
    Merci beaucoup

    Mais ou est le lien automatisé.
    C:UsersDJAMELDocumentsALG-BLANC

    #55473
    djamel227
    Membre

    this.exportAsFDF(true, true, cPath: “C:UsersDJAMELDocuments”, true);

    :Smiley01:

    Il ya une erreur de syntaxe Merlin !

    #55474
    Merlin
    Maître des clés

    Mais ou est le lien automatisé.
    C:UsersDJAMELDocumentsALG-BLANC

    Pour pouvoir pré-indiquer le chemin il faut que l’instruction vienne d’un bouton ou d’un menu d’Acrobat, ou bien d’une Action.
    Ce n’est pas possible depuis un document (sécurité oblige).

    :idee: :idee:

    #55475
    Merlin
    Maître des clés

    Arg malheureusement ça n’est pas ça ! :(
    Pourtant j’ai comparé mon script au tient et la syntaxe identique, j’ai juste rajouté des champs…
    Je ne comprend pas  :Euuuh:

    Quand j’enlève le “else” ça fonctionne : pas de message d’erreur…
    :Euuuh:

    #55476
    Antonin TCP
    Membre

    Pas chez moi  :Smiley02:

    Mais voilà le code en entier:

    Code:
    MonTitre = “TCP”;
    ChEnrgNom = this.getField(“Cadreur”);
    ChEnrgPrenom = this.getField(“Journaliste”);
    ChEnrgDate = this.getField(“datedujour”);
    ChEnrgProjet = this.getField(“Projet”);
    if (ChEnrgDate.value == null || ChEnrgDate.value == “” || ChEnrgNom.value == null || ChEnrgNom.value == “”|| ChEnrgPrenom.value == null || ChEnrgPrenom.value == “” ChEnrgProjet.value == null || ChEnrgProjet.value == “”)
    {app.alert({cMsg:”Merci de renseigner les champs “Date du jour”, “Cadreur”, “Journaliste” et “Projet” avant d’enregistrer ce document.”, nIcon:2, cTitle:MonTitre});}
    else
    {
    var strFixe = MonTitre + “_”;
    var strNom = ChEnrgNom.value;
    var strPrenom = ChEnrgPrenom.value;
    var strProjet = ChEnrgProjet.value;
    var strNum = ChEnrgDate.value
    if (app.language == “FRA”)
    {var strTitre = strFixe + “_Enregistrement”;
    var strQuestion = “COPIEZ le nom proposu00E9 ci-dessous et COLLEZ le dans la fenu00EAtre suivante pour l’utiliser comme nom de fichier (merci de respecter cette syntaxe qui nous facilite la gestion) :”;
    }
    else
    {var strTitre = strFixe + “_SaveAs”;
    var strQuestion = “COPY below proposed text and PASTE it in the following box to use it as file name:”;
    }
    var strDisplay = strNum + “_” + strProjet + “_” + strNom + “_” + strPrenom + strFixe;
    var saveRep = app.response({cQuestion: strQuestion, cTitle: MonTitre, cDefault: strDisplay,});
    if (saveRep != null)
    {
    for (var i=0; i      {
          var fname = this.getNthFieldName(i);
          var f = this.getField(fname);
          f.readonly = true;
          }
    app.execMenuItem(“SaveAs”);
    }
    }
    #55477
    djamel227
    Membre

    Pas chez moi  :Smiley02:

    Mais voilà le code en entier:

    Code:
    MonTitre = “TCP”;
    ChEnrgNom = this.getField(“Cadreur”);
    ChEnrgPrenom = this.getField(“Journaliste”);
    ChEnrgDate = this.getField(“datedujour”);
    ChEnrgProjet = this.getField(“Projet”);
    if (ChEnrgDate.value == null || ChEnrgDate.value == “” || ChEnrgNom.value == null || ChEnrgNom.value == “”|| ChEnrgPrenom.value == null || ChEnrgPrenom.value == “” ChEnrgProjet.value == null || ChEnrgProjet.value == “”)
    {app.alert({cMsg:”Merci de renseigner les champs “Date du jour”, “Cadreur”, “Journaliste” et “Projet” avant d’enregistrer ce document.”, nIcon:2, cTitle:MonTitre});}
    else
    {
    var strFixe = MonTitre + “_”;
    var strNom = ChEnrgNom.value;
    var strPrenom = ChEnrgPrenom.value;
    var strProjet = ChEnrgProjet.value;
    var strNum = ChEnrgDate.value
    if (app.language == “FRA”)
    {var strTitre = strFixe + “_Enregistrement”;
    var strQuestion = “COPIEZ le nom proposu00E9 ci-dessous et COLLEZ le dans la fenu00EAtre suivante pour l’utiliser comme nom de fichier (merci de respecter cette syntaxe qui nous facilite la gestion) :”;
    }
    else
    {var strTitre = strFixe + “_SaveAs”;
    var strQuestion = “COPY below proposed text and PASTE it in the following box to use it as file name:”;
    }
    var strDisplay = strNum + “_” + strProjet + “_” + strNom + “_” + strPrenom + strFixe;
    var saveRep = app.response({cQuestion: strQuestion, cTitle: MonTitre, cDefault: strDisplay,});
    if (saveRep != null)
    {
    for (var i=0; i      {
          var fname = this.getNthFieldName(i);
          var f = this.getField(fname);
          f.readonly = true;
          }
    app.execMenuItem(“SaveAs”);
    }
    }

    Mais Antonin TCP !
    insérez moi s’il vous plait dans le code ce lien (C:UsersDJAMELDocumentsALG-BLANCle nomdocument.fdf) vers lequel je pourrai exporter les données de mon formulaire.
    je ne veux pas l’enregistrer autant que document Pdf comme il est mentionner sur le code que vous avez donné, mais plus tôt comme fichier fdf.
    voila j’espère que vous m’avez compris.

    #55478
    Antonin TCP
    Membre

    :Euuuh:
    Je ne comprend ni votre message ni la raison pour laquelle vous ne faites pas un nouveau sujet ;).

    #55479
    djamel227
    Membre

    ok
    je recommence  :bonjour:

    #55480
    Merlin
    Maître des clés

    je recommence

    Inutile, pour la 3e fois : Pour pouvoir pré-indiquer le chemin il faut que l’instruction vienne d’un bouton ou d’un menu d’Acrobat, ou bien d’une Action.
    Ce n’est pas possible depuis un document (sécurité oblige).

    :joker:

    #55481
    djamel227
    Membre

    :bonjour: :bonjour: :bonjour:
    bonne fin de journée .

    #55482
    Merlin
    Maître des clés

    Pas chez moi  :Smiley02:

    J’ai trouvé, en fait l’erreur n’a rien à voir avec le else, il manque une double-barre dans la ligne 6 :
    if (ChEnrgDate.value == null || ChEnrgDate.value == “” || ChEnrgNom.value == null || ChEnrgNom.value == “”|| ChEnrgPrenom.value == null || ChEnrgPrenom.value == “” ChEnrgProjet.value == null || ChEnrgProjet.value == “”)

    Ce qui nous donne :

    if (ChEnrgDate.value == null || ChEnrgDate.value == “” || ChEnrgNom.value == null || ChEnrgNom.value == “”|| ChEnrgPrenom.value == null || ChEnrgPrenom.value == “” || ChEnrgProjet.value == null || ChEnrgProjet.value == “”)

    :extra:

    #55483
    Antonin TCP
    Membre

    Impeccable, ça fonctionne !

    Merci IMMENSÉMENT Merlin, tu es un héros pour moi  :priere:

    Mon formulaire est pour ainsi dire terminé, maintenant je vais créé un nouveau topic en espérant trouver un lien possible entre fichier Excel et formulaire pdf !

    A là revoyure, merci encore :D !

    #55484
    Merlin
    Maître des clés

    Le copier-coller demande maîtrise et rigueur…
    :jerisjaune:

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