Formulaire variant en fonction des réponses données. - RÉSOLU  (Lu 14721 fois) Partager ce sujet Imprimer

1 2 B


Merlin  03 septembre 2013 : 16:05

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

IP archivée


Antonin TCP  03 septembre 2013 : 15:50

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 !

IP archivée


Merlin  31 août 2013 : 14:14

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:

IP archivée


djamel227  30 août 2013 : 20:35

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

IP archivée


Merlin  30 août 2013 : 19:50

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:

IP archivée


djamel227  29 août 2013 : 17:45

ok
je recommence  :bonjour:

IP archivée


Antonin TCP  29 août 2013 : 17:33

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

IP archivée


djamel227  29 août 2013 : 17:20

Pas chez moi  :Smiley02:

Mais voilà le code en entier:

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 propos\u00E9 ci-dessous et COLLEZ le dans la fen\u00EAtre 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<this.numFields; 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:\Users\DJAMEL\Documents\ALG-BLANC\le 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.

IP archivée


Antonin TCP  29 août 2013 : 16:54

Pas chez moi  :Smiley02:

Mais voilà le code en entier:

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 propos\u00E9 ci-dessous et COLLEZ le dans la fen\u00EAtre 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<this.numFields; i++)
      {
      var fname = this.getNthFieldName(i);
      var f = this.getField(fname);
      f.readonly = true;
      }
app.execMenuItem("SaveAs");
}
}

IP archivée


Merlin  29 août 2013 : 16:33

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:

IP archivée


Merlin  29 août 2013 : 16:25

Mais ou est le lien automatisé.
C:\Users\DJAMEL\Documents\ALG-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:

IP archivée


djamel227  29 août 2013 : 14:29

this.exportAsFDF(true, true, cPath: "C:\Users\DJAMEL\Documents\", true);

 :Smiley01:
Il ya une erreur de syntaxe Merlin !

IP archivée


djamel227  29 août 2013 : 13:41

Oui ,Merlin ça marche
Merci beaucoup

Mais ou est le lien automatisé.
C:\Users\DJAMEL\Documents\ALG-BLANC

IP archivée


Antonin TCP  29 août 2013 : 13:31

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 !

IP archivée


Merlin  29 août 2013 : 13:22

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:\Users\DJAMEL\Documents\documents.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:

IP archivée


Merlin  29 août 2013 : 13:20

voila ce que j'ai sur le ficher joint.
Ca marche.
(Voir ci-joint).

IP archivée


djamel227  29 août 2013 : 12:50

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

IP archivée


djamel227  29 août 2013 : 12:47

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.

IP archivée


Merlin  29 août 2013 : 11:44

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:

IP archivée


Antonin TCP  29 août 2013 : 11:37

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:

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:

IP archivée


Merlin  28 août 2013 : 23:54

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:

IP archivée


djamel227  28 août 2013 : 18:56

bonjour

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

IP archivée


Merlin  27 août 2013 : 21:40

this.exportAsFDF(true, true, cPath: "C:\Users\DJAMEL\Documents\", true);

 :Smiley01:

IP archivée


djamel227  27 août 2013 : 20:36

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:\Users\DJAMEL\Documents\documents.fdf

IP archivée


Merlin  27 août 2013 : 18:42

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<this.numFields; 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 propos\u00E9 ci-dessous et COLLEZ le dans la fen\u00EAtre 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<this.numFields; i++)
      {
      var fname = this.getNthFieldName(i);
      var f = this.getField(fname);
      f.readonly = true;
      }

   app.execMenuItem("SaveAs");
   }
}


Voir PJ.
 :Smiley03:

IP archivée


Antonin TCP  27 août 2013 : 16:06

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 ?

IP archivée


Merlin  27 août 2013 : 15:15

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:

IP archivée


Antonin TCP  27 août 2013 : 14:45

Merci beaucoup pour ta réponse Merlin.

Voici un lien vers mon formulaire.

IP archivée


Merlin  27 août 2013 : 14:10

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.

IP archivée


Antonin TCP  26 août 2013 : 13:45

Up  :bonjour:

IP archivée


Antonin TCP  13 août 2013 : 12:17

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 !


IP archivée


Stubiana  08 août 2013 : 19:57

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

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:

IP archivée


Antonin TCP  08 août 2013 : 19:28

http://we.tl/8dJNPJZ9WS

Voici un lien vers le formulaire.


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

IP archivée


Stubiana  08 août 2013 : 19:20

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:

IP archivée


Antonin TCP  08 août 2013 : 19:17

Non plus malheureusement :(

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;
}

IP archivée


Stubiana  08 août 2013 : 19:14

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:

IP archivée


Antonin TCP  08 août 2013 : 19:00

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 :
if (this.getField("ListeMSD").display == hidden )!important;
Rien ne change.

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

IP archivée


LionelMacBruSoft  08 août 2013 : 18:54

Bonjour,

Je ne comprend pas ce qui cloche.
:idee: L'ordre dans lesquelles les actions s'effectuent ?

Lionel :alien2:

IP archivée


Antonin TCP  08 août 2013 : 18:51

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:

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 !

IP archivée


Stubiana  08 août 2013 : 18:19

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 :

if (this.getField("ListeMSD").display == hidden);
{
this.getField("ListeMSD").value = "0"
}

Cordialement  :bonjour:


IP archivée


Antonin TCP  08 août 2013 : 17:40

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.

if (this.getField("ListeMSD").display = hidden);
{
this.getField("ListeMSD").value == "0"}

C'est passionnant le Javascript !  :Smiley08:

IP archivée


Antonin TCP  08 août 2013 : 17:35

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:

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 !

IP archivée


Stubiana  08 août 2013 : 17:07

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 :
for (var i = 2 ; i<= 20 ; i++)
{
this.getField(i+"B").display = hidden;
}

- Si ce n'est que du texte... :joker:

Cordialement  :bonjour:

IP archivée


Antonin TCP  08 août 2013 : 16:47

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

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 ?

IP archivée


Stubiana  07 août 2013 : 17:20

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

Remplace :

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

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:

IP archivée


Antonin TCP  07 août 2013 : 11:06

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:

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:

IP archivée


jsamica  06 août 2013 : 16:35

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

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:

IP archivée


Antonin TCP  06 août 2013 : 16:27

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

IP archivée


LionelMacBruSoft  06 août 2013 : 16:19

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:

IP archivée


jsamica  06 août 2013 : 14:59

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:

IP archivée


Antonin TCP  06 août 2013 : 12:10

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

IP archivée


Antonin TCP  06 août 2013 : 10:19

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 !

IP archivée


Stubiana  05 août 2013 : 19:13

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:

IP archivée


Antonin TCP  05 août 2013 : 18:12

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 !

IP archivée


Stubiana  05 août 2013 : 18:03

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:


IP archivée