Donnez vie à vos documents numériques !
 

Affichage valeur selon choix plusieurs listes déroulantes

abracadabraPDF Forums PDF – Général Affichage valeur selon choix plusieurs listes déroulantes

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45208
    micka92
    Membre

    Bonsoir.

    Je souhaiterais réaliser la chose suivante :
    – J’ai 5 listes déroulantes avec pour choix 1, 2 et 3.
    – Je souhaiterais faire apparaître ailleurs la plus grande des valeurs sélectionnées

    Je pensais utiliser des masques à afficher et masquer pour faire apparaître la valeur nécessaire mais il y a peut-être plus pratique (je n’ai pas beaucoup de place pour le chevauchement des valeurs à afficher).

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

    Bonjour.

    Je crois qu’il faudrait que tu postes ton document ou bien une petite maquette ne contenant que les champs nécessaires…
    :Smiley01:

    #59311
    micka92
    Membre

    Bonsoir.

    Voici l’exemple ci-joint.

    Je souhaiterais que la plus grande valeur sélectionnée dans les 5 listes déroulantes apparaisse dans le champ texte.

    #59312
    micka92
    Membre

    Somebody can help me ?  :bonjour:

    #59313
    alex
    Participant

    Bonjour à tous,
    Voici votre maquette. Pour chaque sélecteur, veiller à cocher la case « Valider la valeur sélectionnée immédiatement » (Onglet « Options »).
    Un seul script de calcul est alors nécessaire pour obtenir le résultat dans le champ « champ »:

    v1=this.getField(« ld1 »).value;
    v2=this.getField(« ld2 »).value;
    v3=this.getField(« ld3 »).value;
    v4=this.getField(« ld4 »).value;
    v5=this.getField(« ld5 »).value;
    this.event.value=Math.max(v1,v2,v3,v4,v5);

    #59314
    Merlin
    Maître des clés

    Alex, merci pour ce script très utile s’il faut combiner ce calcul avec d’autres.

    micka92, s’il n’y a pas d’autres calculs dépendants on peut aussi utiliser les fonctions de calcul d’Acrobat (voir capture).

    #59315
    micka92
    Membre

    Bonjour.

    Un grand merci à vous deux !  :bonjour:

    Il faudrait juste que je puisse faire apparaître un champ vide si la valeur est égale à 0 et ce serait parfait.

    #59316
    Merlin
    Maître des clés

    Auquel cas il faut revenir au JavaScript.

    v1=this.getField(« ld1 »).value;
    v2=this.getField(« ld2 »).value;
    v3=this.getField(« ld3 »).value;
    v4=this.getField(« ld4 »).value;
    v5=this.getField(« ld5 »).value;
    var resultat=Math.max(v1,v2,v3,v4,v5);
    if (resultat = « 0 »)
    {this.event.value = «  »;}
    else
    {this.event.value = resultat;}

    #59317
    micka92
    Membre

    Merci Merlin !

    Le champ apparaît bien vide avec ton script mais par contre la valeur max ne s’affiche plus…  :oh:

    #59318
    micka92
    Membre

    Je dois vraiment être mauvais…

    J’ai créé ce script de calcul pour avoir le millième du produit de deux champs mais quand je clique sur le bouton « OK », il s’efface et n’est pas pris en compte.  :mur:

    Code:
    v1=this.getField(« champ1 »).value;
    v2=this.getField(« champ2 »).value;
    resultat = (v1*v2)/1000;
    this.event.value = resultat;
    #59319
    Merlin
    Maître des clés

    C’est « normal »…  :Smiley11:

    Je me suis trompé dans la condition, c’est un double-égal qu’il faut utiliser :

    v1=this.getField(« ld1 »).value;
    v2=this.getField(« ld2 »).value;
    v3=this.getField(« ld3 »).value;
    v4=this.getField(« ld4 »).value;
    v5=this.getField(« ld5 »).value;
    var resultat=Math.max(v1,v2,v3,v4,v5);
    if (resultat == « 0 »)
    {this.event.value = «  »;}
    else
    {this.event.value = resultat;}

    Désolé.
    :bonjour:

    #59320
    Merlin
    Maître des clés

    J’ai créé ce script de calcul pour avoir le millième du produit de deux champs mais quand je clique sur le bouton « OK », il s’efface et n’est pas pris en compte.

    Essaye plutôt :

    v1=this.getField(« champ1 »).value;
    v2=this.getField(« champ2 »).value;
    event.target.value = (v1*v2)/1000;

    #59321
    micka92
    Membre

    Toujours pas… il me l’efface encore ! :mur:

    #59322
    Merlin
    Maître des clés

    J’ai créé ce script de calcul pour avoir le millième du produit de deux champs mais quand je clique sur le bouton « OK »

    Alors il va falloir développer un peu plus la problématique…
    :joker:

    #59323
    micka92
    Membre

    Quand je mets mon script de calcul personnalisé et que je veux le valider (bouton OK), je retourne sur l’onglet « Calcul » mais avec pour choix « Valeur non calculée ». Résultat : le script n’apparaît pas et n’est pas pris en compte.

    #59324
    Merlin
    Maître des clés

    Le porblème survient-il sur :

    – un seul champ dans un seul document,
    – plusieurs champs dans un seul document,
    – plusieurs champs dans plusieurs documents ?

    #59325
    micka92
    Membre

    Un seul champ sur un seul document.

    #59326
    Merlin
    Maître des clés

    Supprime ce champ et essaye d’en faire un autre tout neuf…

    #59327
    micka92
    Membre

    J’ai déjà fait cela me faisait la même chose.

    Je viens de trouver… ce champ étant caché sous un autre masque, je passais par le bandeau de droite, sélectionnais mon champ concerné et allait dans ses propriétés. De cette manière, impossible d’écrire un quelconque script de calcul. Par contre, en décalant mon champ masque un peu et en faisant clique-droit puis propriétés sur le champ concerné, cela fonctionne !

    #59328
    micka92
    Membre

    Finalement même avec mon script, cela fonctionne. Je ne suis pas si bête que cela tout compte fait…  :jerisjaune:

    Merlin, quelle est la différence entre this.event.value et event.target.value ?

    #59329
    Merlin
    Maître des clés

    this.event.value

    this : dans ce document
    event : l’évènement qui vient de survenir
    value : valeur de

    event.target.value

    event : l’évènement qui vient de survenir
    target : le champ qui est la cible de l’évènement
    value : valeur de

    Dans certains cas ça revient au même, des fois non.
    Mais Alex ou quelqu’un de plus calé que moi t’en parlera beaucoup mieux.
    :joker:

    #59330
    micka92
    Membre

    Merci Merlin pour tes explications.

    Je ne comprends pas pourquoi mon script de touches personnalisé, qui doit afficher ou non un masque selon la valeur du champ ne semble fonctionner qu’après deux changements de cette valeur.

    Dans l’exemple ci-joint, la valeur est de 14. Il faut que je saisisse deux fois 25 pour que le champ noir disparaisse.

    #59331
    Merlin
    Maître des clés

    Il y a deux erreurs :

    – c’est typiquement un script à utiliser en script de validation et non pas en script de touche perso.
    Mais pour le coup ce n’est pas ça qui l’empêche de fonctionner.

    – C’est la première ligne du script qui fait foirer le calcul :

    if (event.target.value
    Ca veut dire « si la valeur contenue dans le champ est inférieure à 20 ».

    Alors qu’il faut utiliser :

    if (event.value
    Qui veut dire « si la valeur de l’évènement qui vient de survenir (saisie utilisateur) est inférieure à 20 ».

    Dans le 1er cas on lui demande de comparer la valeur qui est déjà dans le champ et qui est donc déjà validée.
    Dans le 2e cas on lui demande de comparer la valeur qui vient d’être saisie et qui n’est pas encore validée.

    :Smiley01:

    #59332
    micka92
    Membre

    Encore une fois merci Merlin ! :bonjour:

    Il ne me reste plus qu’à empêcher l’impression du document tant qu’il n’est pas signé et le tour sera joué.

    Oui je sais, tu n’es pas pour ce type de pratique mais dans mon cas, si l’utilisateur décide d’imprimer le document mais qu’il ne l’a pas signé, le numéro ne se génère pas et il n’a alors aucune valeur pour nous (chaque document doit avoir son numéro unique sous peine de non-conformité réglementaire).

    Je n’ai rien trouvé pouvant m’aider sur ce point précis…  :Euuuh:

    #59333
    Merlin
    Maître des clés

    Moi c’est surtout « l’impression » qui me gène.
    Parce-qu’on est au XXIe siècle…
    :joker:

    #59334
    micka92
    Membre

    Mon rôle est d’aller dans ce sens-là mais malheureusement le travail doit se faire aussi bien auprès de nos employés mais également de nos clients qui, très souvent, souhaitent impérativement le format papier.

    Si jamais tu peux m’aider pour empêcher l’impression tant que le document n’est pas signé, je suis preneur par contre  :jerisjaune:

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