Donnez vie à vos documents numériques !
 

Champ conditionnel – Résolu

abracadabraPDF Forums PDF – Général Champ conditionnel – Résolu

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #43753
    All
    Invité

    Bonjour,
    Je suis un nouveau venu sur ce forum que je viens de découvrir et qui, je l’espère me permettra de venir à bout de mon problème que voici.
    J’ai créé un formulaire avec Acrobat 5.  C’est le programme que j’avais déjà acheté il y a quelques années et comme je n’ai pas beaucoup de formulaires à faire, l’achat d’une nouvelle version me semble prohibitif.

    J’ai créé un champ nommé “Révision” qui devrait contenir une date.  J’ai aussi plusieurs champs nombres qu’on nommera “Assurance1”, “Assurance2”, “Assurance3”. J’ai aussi un champ “Total” , qui calcule la somme des champs “Assurance*”.  J’aimerais que le champ “Total” ne calcule la somme que s’il y a une inscription à l’intérieur du champ “Révision”.  Sinon, il demeurerait caché.
    J’espère avoir été assez clair et je vous remercie à l’avance pour votre aide.
    À vous lire,

    All

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

    Bonjour et bienvenue !

    Je ne sais pas si j’ai tout bien compris au problème mais il faut voir ma réponse dans le fichier PDF ci-joint, ce sera plus simple car il contient un exemple.
    :)

    [attachment deleted by admin]

    #50397
    All
    Invité

    Bonjour Merlin,

    Vous êtes bien l’enchanteur car il semble bien que votre réponse corresponde parfaitement à ma demande.
    J’ai téléchargé votre fichier et l’ai visionné.  Tout semble correspondre.  Je vais incorporer le script à mon formulaire et vous en donnerai des nouvelles très bientôt.

    Encore un IMMENSE merci,  :extra: vous me tirez une épingle du pied.

    All

    #50398
    All
    Invité

    Re-bonjour,

    J’ai adapté votre script à mon formulaire. C’est  probablement de ma faute car dans ma question, j’avais simplifié l’exemple pour une meilleure compréhension.  En fait, j’ai 16 “champ_assurance” , ce qui, en principe ne devrait pas poser problème.
    J’ai donc modifié en conséquence le nombre de variables, ce qui m’a donné le script suivant:
    //mise en variable de la valeur des champs
    a = this.getField(“AssPro.1”).value;
    b = this.getField(“AssPro.2”).value;
    c = this.getField(“AssPro.3”).value;
    d = this.getField(“AssPro.4”).value;
    e = this.getField(“AssPro.5”).value;
    f = this.getField(“AssPro.6”).value;
    g = this.getField(“AssPro.7”).value;
    h = this.getField(“AssPro.8”).value;
    i = this.getField(“AssPro.9”).value;
    j = this.getField(“AssPro.10”).value;
    k = this.getField(“AssPro.11”).value;
    l = this.getField(“AssPro.12”).value;
    m = this.getField(“AssPro.13”).value;
    n = this.getField(“AssPro.14”).value;
    o = this.getField(“AssPro.15”).value;
    p = this.getField(“AssPro.16”).value;

    //calcul de la somme
    e = a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p;

    //condition si champ-révision ne contient rien
    if (this.getField(“texte604.0”).value !== “”)
    {
    //la valeur du champ devient egale a la somme
    event.value = e;
    //le champ devient visible (optionnel)
    event.target.hidden = false
    }
    //condition si champ-révision contient quelque chose
    else
    {
    //la valeur du champ devient egale a rien
    event.value = “”;
    //le champ devient invisible (optionnel)
    event.target.hidden = true
    }
    Il se produit toutefois un chose bizarre: si je complète tous les champs “champ_assurance”, le calcul se fait parfaitement.  Si j’efface un des champs, j’obtiens un total complètement farfelu.  Dans votre exemple, si j’efface le “3”, j’obtiens 34 comme total (1+2 et 4), si j’efface le 2 seulement, j’obtiens 134 (1 et 3 et 4)  ??? J’en perds mon Latin.

    Je vous remercie beaucoup de vous pencher sur ce cas.  J’ai bien confiance car le script fonctionne en tout cas.

    J’ai hâte de vous lire,

    All

    #50399
    Merlin
    Maître des clés

    Oui, s’agissant d’un bête fichier de test/démo je n’avais pas vérifié que les calculs se fassent bien à partir de nombres et non pas d’autre chose. Ce qui est le cas lorsque l’un des champs jaunes ne contient rien : auquel cas le “calcul” s’effectue en ajoutant les caractères les uns derrière les autres et non pas de façon mathématique.
    C’est ce qui se produit lorsque l’un des champs jaune est vide.

    Donc, pour éviter qu’une entrée soit égale à rien (donc égale à autre chose qu’un nombre) j’ai ajouté un “script de validation personnalisé” dans les champs jaunes. Ces deux lignes de script suffisent à transformer un éventuel “rien” (si l’utilisateur utilise la touche effacement) en zéro. Et comme ces champs jaunes sont au format “nombre”, cela suffit à s’assurer que la valeur des champs jaunes sera bien un nombre dans tous les cas.
    Ce qui permet un calcul sans erreur.
    :soleil:

    Les deux lignes de script (4 avec les commentaires) :

    Code:
    //si valeur du champ est egale a rien
    if (event.value == “”)
    //alors valeur du champ devient zero
    {event.value = 0;}

    (Edit : fichier joint supprimé, voir plus loin)

    #50400
    All
    Invité

    Bonjour Merlin,

    Un GRAND, GRAND, GRAND MERCI!  :bravo: :contentdance: :soleil:

    Vous faites ma journée et même ma fin d’année 2009 dans la joie.

    Je n’ai pas pu ouvrir le fichier .PDF mais j’ai recopié l’inscription que vus aviez mise dans votre message et l’ai insérée dans le premier fichier .PDF test que vous aviez mis.  Tout fonctionne à merveille.  Je crois que c’est ma version d’Acrobat, la 5, qui est trop vieille.

    Une chance qu’il y a des gens comme vous pour aider les autres qui, comme moi, veulent bien se lancer dans de nouvelles expériences mais qui, parfois , se buttent à leurs limites.

    Je vous souhaite une merveilleuse année 2010,

    Bien à vous,

    All
    P.S.  Félicitations pour ce forum extrèmement utile

    #50401
    Merlin
    Maître des clés

    J’ai oublié “d’optimiser” le PDF pour Acrobat 5, le voici en version 1.4 (ci-joint).

    Merci pour les remerciements, et bonne année 2010 !

    [attachment deleted by admin]

    #50402
    All
    Invité

    Bonjour Merlin,

    Merci pour le fichier “optimisé”.

    J’ai copié le script dans tous les champs “AssPro.” . et cliqué sur OK. Toutefois, le champ n’affiche pas immédiatement “0”, je dois entrer un nombre, puis l’effacer pour qu’il indique “0” dans chacun des champs.  Si j’entre des nombres dans des champs non contigus sans avoir fait la manipulation, j’obtiens encore les nombres à la suite dans le champ Total.
    J’ai peut-être manqué quelquechose ?

    Désolé, j’ai crié victoire un peu trop tôt je crois,

    All

    #50403
    Merlin
    Maître des clés

    Je ne comprend pas bien, regarde dans mon fichier d’exemple : de fait il n’est pas possible que l’un des champs jaunes ne contienne rien.

    Je suppose que tu n’as pas placé le script de validation au bon endroit…

    :???: :doute:

    #50404
    All
    Invité

    Bonjour Merlin,

    Désolé pour les inconvénients.
    J’ai bien copié les scripts personnalisés sous l’onglet “Validation” de chaque champ (comme pour les jaunes pour vous). Après avoir copié le script et cliqué sur OK, si j’appuie sur la main de sélection, la ligne reste vierge. Si j’y inscrit un nombre puis “enter”, le nombre s’affiche; si j’efface ce nombre et “enter”, alors là, elle affiche 0,00 et le script fonctionne alors parfaitement par la suite.
    On dirait que le script ne s’active pas tout seul.
    Dans votre exemple, des chiffres avaient déjà été entrés je crois, c’est peut-être pourquoi le script était déjà activé.  Ou bien c’est une amélioration non présente dans Acrobat 5.
    C’est peut-être une question de sémentique car j’ai entré des “0” dans tous les champs et maintenant, le fichier fonctionne parfaitement.
    Alors, si vous désirez en rester là, y’a pas de problème, vous m’avez déjà très bien aidé.

    Au plaisir de vous lire,

    All

    #50405
    Merlin
    Maître des clés

    C’est un comportement normal : s’agissant d’un script de validation, cette validation ne peut intervenir qu’au moment où le champ est utilisé (avec l’outil Main).

    Mais ce ne devrait pas être un problème pour l’utilisateur final, car une fois que les champs ont affiché un chiffre ils ne peuvent plus afficher autre chose.

    Une autre bonne idée pourrait être d’attribuer “zéro” comme valeur par défaut de ces champs, pour éviter tout problème potentiel en cas de réinitialisation des champs de formulaire.

    :soleil:

    #50406
    All
    Invité

    Bonjour Merlin,

    Encore une fois, un grand merci pour tous ces renseignements.

    Je sais maintenant où trouver un expert en PDF, un format de fichier fort pratique.

    Au plaisir,

    All

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