Donnez vie à vos documents numériques !
 

Recuperer la valeur textuelle

abracadabraPDF Forums PDF – Général Recuperer la valeur textuelle

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45897
    Patakess
    Membre

    Bonjour, c’est encore moi
    J’ouvre un nouveau sujet puisqu’on s’éloigne pas mal du précedent ^^ » (et je dois encore étudier la réponse expliqué :3)
    Donc cette fois fini les radio etc, je suis sur un soucis de… Calcul.
    Après plein d’essai de if, and etc, je suis parvenue à ce que je voulais (en théorie).Car dans la pratique… Bah ca ne fonctionne pas.
    Mon code:

    Code:
    var text1 = this.getField(« Text1 »)
    var poids1 = this.getField (« Poids »)
    if ((text1.value= »Env ») && (poids.value<100))
    {
    this.event.target.value = « 1,90 »
    }
    else if ((text1.value= »Env ») && (poids1.value>=100) && (poids1.value<250))
    {
    this.event.target.value = « 3,50 »
    }
    else if ((text1.value= »Env ») && (poids1.value>=250) && (poids1.value<500))
    {
    this.event.target.value = « 5,10 »
    }
    else if ((text1.value = Env) && (poids1.value>=500) && (poids1.value<3000))
    {
    this.event.target.value = « 6,70 »
    }
    else
    {
    this.event.target.value = « bientot »
    }

    Mais… Il ne prends pas en compte la valeur de la variable ‘Env’.J’ai bien pensé aux ordres de calcul, et en effet, le calcul de cette case s’effectue AVANT celle de la case qui affiche la variable. Sauf que, si je place la case de la variable avant… Bah c’est cette case si qui ne fonctionne plus, pourtant tout les calculs dont elle a besoin sont bien avant… J’avoue je seche…

    Les cases sont celles du haut, pour plus de praticité dans mes tests ^^ ».
    Merci d’avance !

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

    bonsoir,
    je n’ai pas vérifié le calcul car je ne trouve pas les champs correspondants, mais juste la syntaxe qui n’était pas tout à fait ça….

    Code:
    var text1 = this.getField(« Text1 »);
    var poids1 = this.getField (« Poids »);
    if ((text1.value= »Env ») && (poids.value<100)) {
        this.event.target.value == « 1,90 »;
    } else {
        if ((text1.value== »Env ») && (poids1.value>=100) && (poids1.value<250)) {
        this.event.target.value = « 3,50 »;
        } else {
            if ((text1.value== »Env ») && (poids1.value>=250) && (poids1.value<500)) {
                this.event.target.value = « 5,10 »;
            } else {
                if ((text1.value == « Env ») && (poids1.value>=500) && (poids1.value<3000)) {
                    this.event.target.value = « 6,70 »;
                } else {
                    this.event.target.value = « bientot »;
                }
            }
        }
    }

    Lorsqu’il y a plein de « if / else » imbriqués, il vaut mieux les écrire correctement car c’est vite fait le fouilli…
    @+
    :bonjour:

    #64376
    Patakess
    Membre

    Awi en effet ! La ça marche en effet ^^’.
    Mais il me semblait que else if était une variable qui empêchait justement les imbrications de if…. Else
    (J’avoue je me suis basé sur https://abracadabrapdf.net/forum/index.php/topic,3460.msg20605.html#msg20605)

    Du coup je suppose que mon code

    Code:
    var int1 = this.getField(« int_1 »)
    var poids = this.getField(« Poids »)
    if (this.getField(« Livraison »).value== »2″)
    {
    this.event.target.value = « Pas de Frais de port »
    }
    else if ((poids.value<1128)&&(int1.value==0))
    {
    this.event.target.value = « Env »
    }
    else if ((poids.value<2000)&&(int1.value==1))
    {
    this.event.target.value = « CarL »
    }
    else if ((poids.value>1128)&&(poids.value<2000)&&(int1.value==0))
    {
    this.event.target.value = « CarMP »
    }
    else if ((poids.value<5000)&&(int1.value>=2)&&(int1.value{
    this.event.target.value = « CarLP »
    }

    else
    {
    this.event.target.value = « Demande de devis »
    }

    et aussi à revoir ? ^^ »
    Edit: J’ai fait ça, c’est bon ?

    Code:
    var int1 = this.getField(« int_1 »)
    var poids = this.getField(« Poids »)
    if (this.getField(« Livraison »).value== »2″) {
        this.event.target.value = « Pas de Frais de port »;
        } else {
            if ((poids.value<1128)&&(int1.value<1)) {
            this.event.target.value = « Env »;
                } else {
                    if ((poids.value<2000)&&(int1.value==1)) {
                    this.event.target.value = « CarL »;
                        } else {
                            if ((poids.value>1128)&&(poids.value<2000)&&(int1.value==0)) {
                            this.event.target.value = « CarMP »;
                                } else{
                                    if ((poids.value<5000)&&(int1.value>=2)&&(int1.value                                this.event.target.value = « CarLP »;

                                        }else {
                                        this.event.target.value = « Demande de devis »
                                        }
    }
    }
    }
    }

    #64377
    bebarth
    Maître des clés

    bonjour,

    (J’avoue je me suis basé sur https://abracadabrapdf.net/forum/index.php/topic,3460.msg20605.html#msg20605)

    Je n’ai personnellement jamais écris comme ça. Je ne suis pas spécialiste ès JavaScript et ne connais donc pas tous les comportements selon la syntaxe, mais ce que je suis certain, c’est que si c’est bien écris, ça fonctionne alors que la réciprocité n’est pas vraie !  :geek:

    C’est pour cela que je préconise d’utiliser un éditeur JavaScript quand on commence à enchevêtrer des instructions (if, switch…) et/ou des boucles (for, while…). Placer les crochets au bonne endroit facilite la relecture !

    Edit: J’ai fait ça, c’est bon ?

    Je n’ai pas testé comme ça, mais ça m’a l’air de fonctionner. Ne pas oublier le « ; » en fin de ligne, et à mon avis les parenthèse inutiles compliquent la lecture. Toujours à mon avis, il vaut mieux mettre un espace pour séparer et bien lire les opérateurs (&&, ||…) surtout lorsqu’on débute, mais je le fais encore lorsque ça coince…
    J’écrirais donc ton script comme ça :

    Code:
    var int1 = this.getField(« int_1 »);
    var poids = this.getField(« Poids »);
    if (this.getField(« Livraison »).value== »2″) {
        this.event.target.value = « Pas de Frais de port »;
    } else {
        if (poids.value<1128 && int1.value<1) {
            this.event.target.value = « Env »;
        } else {
            if (poids.value<2000 && int1.value==1) {
                this.event.target.value = « CarL »;
            } else {
                if (poids.value>1128 && poids.value<2000 && int1.value==0) {
                    this.event.target.value = « CarMP »;
                } else {
                    if (poids.value<5000 && int1.value>=2 && int1.value                    this.event.target.value = « CarLP »;
                    } else {
                        this.event.target.value = « Demande de devis »;
                    }
                }
            }
        }
    }

    @+
    :bonjour:

    #64378
    Merlin
    Maître des clés

    Il ne prends pas en compte la valeur de la variable ‘Env’

    Il y a un truc à savoir, qui a bien failli me rendre fou :

    Quand on déclare une variable ainsi elle n’est valable qu’à l’intérieur de sa fonction et elle est invisible pour les autres :
    var toto = 1;

    Quand on déclare une variable ainsi elle est valable pour toutes les autres fonctions :
    toto = 1;

    :geek:

    #64379
    Patakess
    Membre

    😮 c’est bon à savoir merci !
    Mais ca ne rentre pas en compte là il me semble. ‘Env’ est une réponse de variable d’un autre code (le deuxieme que j’ai donné), donc normalement elle aurait du être prise en compte tout le temps

    (Bon depuis du coup j’ai modifié en mettant des if… else…. If etc et ça fonctionne ;) mon code de base devait avoir une erreur >

    #64380
    bebarth
    Maître des clés

    bonjour,
    Il y a un article intéressant lorsqu’on travaille sur les variables :
    https://acrobatusers.com/tutorials/global-object-acrobat-javascript
    avec le fichier à étudier, on comprend mieux !
    http://www.pdfscripting.com/public/FreeStuff/PDFSamples/GlobVars_Sample.pdf

    Voir aussi :
    https://developer.mozilla.org/fr/docs/Glossaire/Variable

    @+
    :bonjour:

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