abracadabraPDF › Forums › PDF – Général › Formulaire variant en fonction des réponses données. – RÉSOLU
- Ce sujet est vide.
-
CréateurSujet
-
5 août 2013 à 14:27 #44618Antonin TCPMembre
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.
-
CréateurSujet
-
AuteurRéponses
-
5 août 2013 à 15:02 #55426StubianaMembre
: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
5 août 2013 à 15:04 #55427Antonin TCPMembreJe suis très très preneur, j’ai justement décidé de me mettre dessus :Smiley08:
5 août 2013 à 15:07 #55428jsamicaMembreBienvenu à 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:
5 août 2013 à 15:15 #55429Antonin TCPMembreJe l’ai justement et je débute dessus
5 août 2013 à 16:03 #55430StubianaMembreAvec 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:
5 août 2013 à 16:12 #55431Antonin TCPMembreMerci 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 !
5 août 2013 à 17:13 #55432StubianaMembreOr, 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:
6 août 2013 à 08:19 #55433Antonin TCPMembreJ’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 !
6 août 2013 à 10:10 #55434Antonin TCPMembreJe 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
6 août 2013 à 12:59 #55435jsamicaMembreJe 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:6 août 2013 à 14:19 #55436LionelMacBruSoftMembreBonjour,
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.htmlLionel :alien2:
6 août 2013 à 14:27 #55437Antonin TCPMembreMerci 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
6 août 2013 à 14:35 #55438jsamicaMembreVoici 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:7 août 2013 à 09:06 #55439Antonin TCPMembreGé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:
7 août 2013 à 15:20 #55440StubianaMembrePour 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<=20 ; 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:
8 août 2013 à 14:47 #55441Antonin TCPMembreJ’ai un problème de syntaxe, mais je n’arrive pas à l’identifier:
Code:if (event.target.value == “1”)
{
for (var i = 2B ; i<= 20B ; i++)
{
this.getField(i).display = hidden;
}
for (var i = 1B ; i<= 1B ; i++)
{
this.getField(i).display = visible;
}
}Vous arrivez à l’identifier ?
8 août 2013 à 15:07 #55442StubianaMembreOui, 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<= 20 ; i++)
{
this.getField(i+”B”).display = hidden;
}– Si ce n’est que du texte… :joker:
Cordialement :bonjour:
8 août 2013 à 15:35 #55443Antonin TCPMembreMerci 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<= 20 ; i++)
{
this.getField(i+”B”).display = hidden;
}
}Mais ça ne fonctionne pas
Tu aurais une piste ? Merci encore beaucoup !
8 août 2013 à 15:40 #55444Antonin TCPMembrePar 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:
8 août 2013 à 16:19 #55445StubianaMembreJe 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:
8 août 2013 à 16:51 #55446Antonin TCPMembreCool, 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 !
8 août 2013 à 16:54 #55447LionelMacBruSoftMembreBonjour,
Je ne comprend pas ce qui cloche.
:idee: L’ordre dans lesquelles les actions s’effectuent ?
Lionel :alien2:
8 août 2013 à 17:00 #55448Antonin TCPMembreSalut 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:
8 août 2013 à 17:14 #55449StubianaMembreje 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:
8 août 2013 à 17:17 #55450Antonin TCPMembreNon 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;
}8 août 2013 à 17:20 #55451StubianaMembreSerait-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:
8 août 2013 à 17:28 #55452Antonin TCPMembreVoici un lien vers le formulaire.
Merci encore pour l’aide :bravo: :Smiley01:
8 août 2013 à 17:57 #55453StubianaMembreMet 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:
13 août 2013 à 10:17 #55454Antonin TCPMembreEn effet ça fonctionne impeccablement ! C’est terrible, mon pdf commence à ressembler à ce que je voulais
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 !
26 août 2013 à 11:45 #55455Antonin TCPMembreUp :bonjour:
27 août 2013 à 12:10 #55456MerlinMaître des clésJe 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.
27 août 2013 à 12:45 #55457Antonin TCPMembreMerci beaucoup pour ta réponse Merlin.
27 août 2013 à 13:15 #55458MerlinMaître des clésEst-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]
27 août 2013 à 14:06 #55459Antonin TCPMembreC’est parfait ! Ca permet de gagner beaucoup de temps et c’est un excellent compromis !
Merci encore Merlin.
Pour finir, as tu une piste pour enregistrer le fichier en lecture seule ?
27 août 2013 à 16:42 #55460MerlinMaître des clésPour 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]
27 août 2013 à 18:36 #55461djamel227MembreBonjour 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
27 août 2013 à 19:40 #55462MerlinMaître des clésthis.exportAsFDF(true, true, cPath: “C:UsersDJAMELDocuments”, true);
:Smiley01:
28 août 2013 à 16:56 #55463djamel227Membrebonjour
s’il vous plait Merlin !
J’ai réussi, donne moi un coup de main!
ou je dois placer le code ?28 août 2013 à 21:54 #55464MerlinMaître des clésDans 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:29 août 2013 à 09:37 #55465Antonin TCPMembreMerci beaucoup beaucoup Merlin!
Bientôt mon formulaire sera terminé grâce à toi
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});}
elseAprès ça je vous embêterai plus jamais promis
Merci encore :priere: :bonjour:
29 août 2013 à 09:44 #55466MerlinMaître des clésInstinctivement 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:29 août 2013 à 10:47 #55467djamel227MembreDans 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]
29 août 2013 à 10:50 #55468djamel227Membreje veux enregistrer les données de mon document Pdf dans un lien sur mon ordinateur a chaque saisie.
29 août 2013 à 11:20 #55469MerlinMaître des clésvoila ce que j’ai sur le ficher joint.
Ca marche.
(Voir ci-joint).[attachment deleted by admin]
29 août 2013 à 11:22 #55470MerlinMaître des clésBonjour 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.fdfPour 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:
29 août 2013 à 11:31 #55471Antonin TCPMembreArg 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 !
29 août 2013 à 11:41 #55472djamel227MembreOui ,Merlin ça marche
Merci beaucoupMais ou est le lien automatisé.
C:UsersDJAMELDocumentsALG-BLANC29 août 2013 à 12:29 #55473djamel227Membrethis.exportAsFDF(true, true, cPath: “C:UsersDJAMELDocuments”, true);
:Smiley01:
Il ya une erreur de syntaxe Merlin !
29 août 2013 à 14:25 #55474MerlinMaître des clésMais ou est le lien automatisé.
C:UsersDJAMELDocumentsALG-BLANCPour 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:
29 août 2013 à 14:33 #55475MerlinMaître des clésArg 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:29 août 2013 à 14:54 #55476Antonin TCPMembrePas 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”);
}
}29 août 2013 à 15:20 #55477djamel227MembrePas 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.29 août 2013 à 15:33 #55478Antonin TCPMembre:Euuuh:
Je ne comprend ni votre message ni la raison pour laquelle vous ne faites pas un nouveau sujet .29 août 2013 à 15:45 #55479djamel227Membreok
je recommence :bonjour:30 août 2013 à 17:50 #55480MerlinMaître des clésje 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:
30 août 2013 à 18:35 #55481djamel227Membre:bonjour: :bonjour: :bonjour:
bonne fin de journée .31 août 2013 à 12:14 #55482MerlinMaître des clésPas 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:
3 septembre 2013 à 13:50 #55483Antonin TCPMembreImpeccable, ç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 !
3 septembre 2013 à 14:05 #55484MerlinMaître des clésLe copier-coller demande maîtrise et rigueur…
:jerisjaune: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.