Donnez vie à vos documents numériques !
 

Erreur de syntaxe lignes de code

abracadabraPDF Forums PDF – Général Erreur de syntaxe lignes de code

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45960

    Bonjour à tous,

    Je dois créer un formulaire automatisé.

    Je voulais donc traduire cette phrase :
    Si la case “CET perenne 2017 ouv/ali” est cochée et que les champs suivants sont remplis alors effectuer le calcul sinon ne rien afficher.

    J’ai crée ces lignes de code :
    If(this.getField(“CET perenne 2017 ouv/ali).isBoxChecked(0)&&(this.getField(“congés annuels”).value!=””)&&(this.getField(“jours de RTT”).value!=””)&&(this.getField(“Total”).value!=””))
    {
    this.event.value=this.getField(“solde”).value=this.getField(“solde CET”).value – 20;
    }
    else
    {
    this.getField(“solde”).value=””;
    }

    Je voulais donc savoir si vous pouviez m’aider à les corriger ?

    Je vous remercie par avance :Smiley01: ,

Affichage de 16 réponses de 1 à 16 (sur un total de 16)
  • Auteur
    Réponses
  • #64894
    bebarth
    Maître des clés

    bonjour,
    D’après ce que je comprends, essaie ça :

    Code:
    If (this.getField(“CET perenne 2017 ouv/ali).value!=”Off” && this.getField(“congés annuels”).value!=”” &&  this.getField(“jours de RTT”).value!=”” && this.getField(“Total”).value!=””) {
        this.getField(“solde”).value=this.getField(“solde CET”).value – 20;
    } else {
        this.getField(“solde”).value=””;
    }

    Par contre, les noms des champs ne doivent contenir ni espaces, ni caractères accentués, ni caractères spéciaux…
    @+
    :bonjour:

    #64895

    J’ai essayé la correction mais adobe me met : “missing ) after argument list” en pointant cette ligne : this.getField(“solde”).value=this.getField(“solde CET”).value – 20;

    #64896
    bebarth
    Maître des clés

    …c’est au tout début :
    If (this.getField(“CET perenne 2017 ouv/ali).value!=”Off”…
    @+
    :bonjour:

    #64897

    Je n’ai pas acrobat pro sur mon ordi perso, donc j’essayerai demain au boulot et je te tiendrai au courant
    En tout cas je te remercie !

    #64898
    bebarth
    Maître des clés

    Encore une fois, je ne peux que te conseiller de simplifier le nom des champs !
    En plus, ça simplifie beaucoup la lecture du script.
    @+
    :bonjour:

    #64899
    Merlin
    Maître des clés

    Je n’ai pas acrobat pro sur mon ordi perso

    Les licences des logiciels Adobe valent pour deux postes de travail.
    Pro/perso, ordi fixe/portable, etc.
    :idee:

    #64900

    J’ai fait la correction et Adobe m’a signalé une autre erreur, j’ai donc ajouté un ; puis ensuite il m’a pointé une autre erreur en disant à nouveau “missing ; before statement” en soulignant } else {

    If (this.getField(“CET perenne 2017 ouv/ali”).value!=”Off” && this.getField(“congés annuels”).value!=”” &&  this.getField(“jours de RTT”).value!=”” && this.getField(“Total”).value!=””); {
        this.getField(“solde”).value=this.getField(“solde CET”).value – 20;
    } else {
        this.getField(“solde”).value=””;
    }

    #64901

    Finalement j’ai mis le ; avant else et ça a l’air d’être bon. Maintenant il pointe cette ligne : this.getField(“solde”).value=””;} et marque “missing ) in parenthetical”
    }

    If (this.getField(“CET perenne 2017 ouv/ali”).value!=”Off” && this.getField(“congés annuels”).value!=”” &&  this.getField(“jours de RTT”).value!=”” && this.getField(“Total”).value!=””); {
        this.getField(“solde”).value=(this.getField(“solde CET”).value – 20
    }; else {
        this.getField(“solde”).value=””;
    }

    #64902

    Finalement j’ai mis le ; avant else et ça a l’air d’être bon. Maintenant il pointe cette ligne : this.getField(“solde”).value=””;} et marque “missing ) in parenthetical”
    }

    If (this.getField(“CET perenne 2017 ouv/ali”).value!=”Off” && this.getField(“congés annuels”).value!=”” &&  this.getField(“jours de RTT”).value!=”” && this.getField(“Total”).value!=””); {
        this.getField(“solde”).value=this.getField(“solde CET”).value – 20
    }; else {
        this.getField(“solde”).value=””;
    }

    Maintenant il me met “syntax error”, en désignant cette phrase  this.getField(“solde”).value=””;

    #64903
    bebarth
    Maître des clés

    bonjour,
    Ne pourrais-tu pas partager ton fichier ou au moins un fichier avec les champs concernés. Ce serait plus pratique car je n’ai pas beaucoup de temps aujourd’hui…
    @+
    :bonjour:

    #64904

    bebarth,

    Tu trouveras ci-joint le document. Je comptais ajouter la formule dans les propriétés de la case “CET perenne 2017 ouv/ali”

    Je te remercie de prendre de ton temps pour tester la formule  :Smiley01:

    #64905
    bebarth
    Maître des clés
    Code:
    {this.event.value = this.getField(“solde”).value = this.getField(“solde CET”).value – 20;}

    Ça ne veut rien dire… Il y a deux égalités dont une avec la valeur de la case à cocher qui est “Oui” !
    Il faudrait écrire :

    Code:
    {this.getField(“solde”).value = this.getField(“solde CET”).value – 20;}

    De plus, il faudrait plutôt mettre un script en calcul de ton champ solde, car ici le script n’est lancé que lorsque l’on coche/décoche la case. Si on change une autre valeur le script ne sera pas lancé et le solde sera donc faux !!!
    @+
    :bonjour:

    #64906

    Oui justement ! c’est pour ça que j’ai écrit ma formule en disant que je voulais que le script se lance à condition que la case soit cochée mais aussi les champs remplis !

    #64907

    Je voulais remplacer la formule qu’il y a dans le formulaire par celle que l’on est en train de faire :

    If (this.getField(“CET perenne 2017 ouv/ali”).value!=”Off” && this.getField(“congés annuels”).value!=”” &&  this.getField(“jours de RTT”).value!=”” && this.getField(“Total”).value!=””); {
        this.getField(“solde”).value=(this.getField(“solde CET”).value – 20
    }; else {
        this.getField(“solde”).value=””;
    }

    mais le problème de syntaxe persiste

    #64908
    bebarth
    Maître des clés
    Code:
    if (this.getField(“CET perenne 2017 ouv/ali”).value!=”Off” && this.getField(“congés annuels”).value!=”” &&  this.getField(“jours de RTT”).value!=”” && this.getField(“Total”).value!=””) {
    this.event.target.value = this.getField(“solde CET”).value – 20;
    } else {
    this.event.target.value = “”;
    }

    @+
    :bonjour:

    #64909

    C’est le top ! ça fonctionne  :bravo:

    Je te remercie !  :Smiley01:

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