Donnez vie à vos documents numériques !
 

Problème script qui ne fonctionne pas

abracadabraPDF Forums PDF – Général Problème script qui ne fonctionne pas

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46268
    yoluflavaur
    Membre

    Bonjour,
    Je galère depuis plusieurs semaines pour trouver mon erreur…
    Je m’explique, j’ai un script dans un bouton de validation sur un formulaire.
    Le but : Vérifier que des champs soient renseignés puis si ok, message d’avertissement avec proposition de sauvegarde. Sinon, avertissement avec désignation du champ non renseigné.
    Jusque là tout est ok.
    Voici le script :

    Code:
    app.alert(“La vérification de votre rapport est en cours. Toute rubrique non renseignée vous sera indiquée.nn N’oubliez pas de contrôler le score final du match. nn Appuyer sur OK pour continuer.”,3)

    for(var i = this.numFields – 1; i > -1; i–)

    var fieldName = this.getNthFieldName(i);
    if ((
    this.getField(fieldName).type!=”button” && this.getField(fieldName).required==true) &&
    (this.getField(fieldName).value===”” || this.getField(fieldName).value==”Off”))
    {
    app.alert(“Le champ ” +fieldName+ ” ne semble pas rempli, merci de le compléter.”);
    this.getField(fieldName).setFocus();
    exit;
    }

    else
    {app.alert(“Vérification effectuée. La note attribuée est à titre d’information et n’apparaîtra pas à l’impression. Vous pouvez maintenant sauvegarder votre rapport sous le format Observateur-Arbitre.nnExemple: Dupont-MARTIN_BrunonnEnvoyez votre rapport dès maintenant à l’adresse xxx@gmail.com”,3);}

    app.execMenuItem(“SaveAs”)

    Je voulais ajouter une fonction pour vérifier les combobox de manière à ce que si l’utilisateur oublie de sélectionner un choix de la combobox, l’erreur s’affiche. Par défaut, la liste déroulante affiche “Sélectionner”. Je souhaiterai donc qu’au moment de la vérification, si une liste déroulante contient “Sélectionner” au lieu d’un autre mot, une fenêtre d’alerte s’affiche.
    Voici le script que j’ai ajouter juste avant le dernier “else” :

    Code:
    else if ((
    this.getfield(fieldName).type=this.event.change && this.getfield(fieldname).required==true) && this.getfield(fieldname).value===”Sélectionner”)
    {app.alert(“erreur” +fieldname+ ” : choix obligatoire”);this.getfield(fieldname).setfocus();
    exit;
    }

    Problème : il lance la vérification, et plus rien ne s’affiche, alors que sans cette partie cela fonctionne très bien….
    Merci de me dire où j’ai pêché !!
    Yo

Affichage de 9 réponses de 1 à 9 (sur un total de 9)
  • Auteur
    Réponses
  • #67269
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Je n’ai pas le temps ce soir de répondre en détail, mais de façon générale plutôt que de vérifier si la valeur du champ est égale à “rien”, ou égale à ceci ou cela il est plus productif, surtout avec les listes déroulantes, de détecter si la valeur du champ est égale à sa valeur par défaut (defaultValue).
    Ce qui signifie qu’il n’a pas été rempli.

    :Smiley15:

    #67270
    yoluflavaur
    Membre

    Merci Merlin…
    J’ai modifier le script comme suit, mais cela ne fonctionne pas…grrrrr

    Code:
    app.alert(“La vérification de votre rapport est en cours. Toute rubrique non renseignée vous sera indiquée.nn N’oubliez pas de contrôler le score final du match. nn Appuyer sur OK pour continuer.”,3)

    for(var i = this.numFields – 1; i > -1; i–)

    var fieldName = this.getNthFieldName(i);
    if ((
    this.getField(fieldName).value=defaultvalue))
    {
    app.alert(“Le champ ” +fieldName+ ” ne semble pas rempli, merci de le compléter.”);
    this.getField(fieldName).setFocus();
    exit;
    }

    else
    {app.alert(“Vérification effectuée. La note attribuée est à titre d’information et n’apparaîtra pas à l’impression. Vous pouvez maintenant sauvegarder votre rapport sous le format Observateur-Arbitre.nnExemple: Dupont-MARTIN_BrunonnEnvoyez votre rapport dès maintenant à l’adresse arbitrage@foot49.fff.fr et en copie à rapports@gmail.com”,3);}

    app.execMenuItem(“SaveAs”)

    help me please

    #67271
    Merlin
    Maître des clés

    Tu ne dis pas ce qui ne fonctionne pas (qu’en dit la Console ?) et tu n’as pas joint le PDF qui permettrait de tester le script…

    Mais j’ai un soupçon : var fieldName

    fieldName est un “mot clé” réservé par JavaScript, donc il faudrait nommer la variable autrement. Pour éviter ce problème j’utilise toujours des mots français pour nommer les variables.
    :Smiley15:

    #67272
    yoluflavaur
    Membre

    Du coup j’ai totalement changer le script en mettant directement defaultvalue…sauf que la console dit “pas de valeur pour default value” ???
    Le fichier joint pour.

    #67273
    bebarth
    Maître des clés

    bonjour,
    Il y a quelques erreurs de syntaxe, de plus il n’y a pas de raison pour vérifier l’ordre des champs dans le sens inverse !!! La logique est plutot de les vérifier dans l’ordre où on les remplit.
    Voici ton script retouché :

    Code:
    for (var i=0; i    var nomchamp = this.getNthFieldName(i);
        if (this.getField(nomchamp).type!=”button” && this.getField(nomchamp).type!=”signature” && this.getField(nomchamp).value==this.getField(nomchamp).defaultValue) {
            app.alert(“Le champ ” +nomchamp+ ” ne semble pas rempli, merci de le compléter.”);
            this.getField(nomchamp).setFocus();
            break;
        } else {
            {app.alert(“Vérification effectuée. La note attribuée est à titre d’information et n’apparaîtra pas à l’impression. Vous pouvez maintenant sauvegarder votre rapport sous le format Observateur-Arbitre.nnExemple: Dupont-MARTIN_BrunonnEnvoyez votre rapport dès maintenant à l’adresse arbitrage@foot49.fff.fr et en copie à rapports@gmail.com”,3);}
            app.execMenuItem(“SaveAs”);
        }
    }

    @+
    :bonjour:

    #67274
    yoluflavaur
    Membre

    Merci pour le script…Cela semble fonctionner plus ou moins…
    Il vérifie bien, mais il suffit que la première rubrique soit valide et il va directement faire la sauvegarde sans vérifier le reste…Si je fais annuler (lors de la sauvegarde), il revient sur le document et procède à la suite de la vérification…..

    #67275
    bebarth
    Maître des clés

    Ça devrait mieux marcher comme ça !

    Code:
    var verif=”OK”;
    for (var i=0; i    var nomchamp = this.getNthFieldName(i);
        if (this.getField(nomchamp).type!=”button” && this.getField(nomchamp).type!=”signature” && this.getField(nomchamp).value==this.getField(nomchamp).defaultValue) {
            app.alert(“Le champ ” +nomchamp+ ” ne semble pas rempli, merci de le compléter.”);
            var verif=”NON”;
            this.getField(nomchamp).setFocus();
            break;
        }
    }
    if (verif==”OK”) {
        {app.alert(“Vérification effectuée. La note attribuée est à titre d’information et n’apparaîtra pas à l’impression. Vous pouvez maintenant sauvegarder votre rapport sous le format Observateur-Arbitre.nnExemple: Dupont-MARTIN_BrunonnEnvoyez votre rapport dès maintenant à l’adresse arbitrage@foot49.fff.fr et en copie à rapports@gmail.com”,3);}
        app.execMenuItem(“SaveAs”);
    }

    @+
    :bonjour:

    #67276
    yoluflavaur
    Membre

    Nickel Chrome !!! Je l’ai juste légèrement modifié..mais cela fonctionne parfaitement !!

    Un Ultra Grand Merci !!!

    #67277
    Merlin
    Maître des clés

    :bravo:

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