abracadabraPDF › Forums › PDF – Général › Variables ayant comme nom la valeur des champs
- Ce sujet contient 7 réponses, 3 participants et a été mis à jour pour la dernière fois par
michel c., le il y a 2 années.
- CréateurSujet
- 27 septembre 2024 à 06:11 #74939
- CréateurSujet
- AuteurRéponses
- 27 septembre 2024 à 08:18 #74941
bebarthMaître des clésbonjour,
Oui, il faut utiliser la méthode « eval ».
Pour un chiffre :
eval("var "+this.getField("nomChamp").value+"=5;");
ou chaîne de caractères :
eval("var "+this.getField("nomChamp").value+"=\"la chaîne de caractères\";");
Mais attention, il faut respecter la règle de nomination des variables… donc pas de caractères spéciaux et ne pas commencer par un chiffre !@+
😎27 septembre 2024 à 08:50 #74942
michel c.ParticipantMerci mais je ne suis pas sur d’avoir compris. Ce que je dois mettre à la place de « la chaîne de caractères »
Et pour la suite, je ne vois pas trop ce que je pourrais faire pour exploiter ces variables.
Dans mon document, je souhaite que dans le champs calcul, la somme des variables E et F soit calculée.
Le nom de ces variables serait la valeur des champs Var.1.0 et Var.2.0 et les valeurs de ces variables seraient respectivement les
valeurs des champs Var.1.3 et Var.2.3
Autre question : si je déclare ces variables par var, celles ci ne sont déclarées que dans le script de document ou dans tout le document?
Merci
Attachments:
You must be logged in to view attached files.27 septembre 2024 à 09:36 #74944
MerlinMaître des clésBonjour
Attention, le point est aussi un caractère spécial non toléré dans un nom de variable. Donc pas de noms de champs contenant des points !
Autre question : si je déclare ces variables par var, celles ci ne sont déclarées que dans le script de document ou dans tout le document?
En utilisant « var » dans la déclaration d’une variable :
var toto = "Blablabla";Si elle est déclarée dans une fonction elle n’est disponible que dans cette fonction.
Si elle est déclarée ailleurs que dans une fonction (script de document ou d’objet) elle est disponible dans tout le document actif, et seulement dans celui là.
En n’utilisant pas « var » dans la déclaration :
toto = "Blablabla";Elle est disponible pour tous les scripts de tous les documents ouverts et ceux qu’on ouvrira par la suite tant qu’on n’aura pas quitté l’application.
Ce qui est parfois trompeur car on peut avoir un document avec des scripts qui fonctionnent très bien alors que le lendemain, après avoir quitté l’application, ou bien quand on le transmet à quelqu’un d’autre ça ne fonctionne plus. En cause : la variable avait été déclarée ailleurs dans un autre document.
Ce qui peut aussi causer des erreurs si plusieurs documents utilisent un même nom de variable : il en résulte que chaque document écrase la variable déclarée dans un autre.
27 septembre 2024 à 10:45 #74945
MerlinMaître des clésPS : ci-dessus c’est le principe que j’ai décrit, je n’ai pas vérifié mais il est possible que pour des « raisons de sécurité » Adobe ait limité l’échange de variables entre les documents.
Cependant ce qui vaut chez Adobe ne vaut pas pour tous les éditeurs de logiciels.
27 septembre 2024 à 10:55 #74946
michel c.ParticipantMerci beaucoup, j’avance…
J’aimerais maintenant que pour chaque variable (E et F) , au lieu d’avoir « la chaine de caractère comme valeur » j’ai le contenu des champs Var.1.3 pour la variable E et Var.2.3 pour la variable F
Merci
Merci
- Cette réponse a été modifiée le il y a 2 années par
michel c..
Attachments:
You must be logged in to view attached files.27 septembre 2024 à 12:28 #74949
bebarthMaître des clésTu écris :
function variables () {
eval("var "+this.getField("Var.2.0").value+"="+this.getField("Var.2.3").value);
eval("var "+this.getField("Var.1.0").value+"="+this.getField("Var.1.3").value);
app.alert("Valeur de la variable E : "+E+" ; Valeur de la variable F : "+F);
}@+
😎Attachments:
You must be logged in to view attached files.27 septembre 2024 à 12:47 #74951
michel c.ParticipantMerci beaucoup !
- Cette réponse a été modifiée le il y a 2 années par
- AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
