Donnez vie à vos documents numériques !
 

Javascript afficher/masquer un champ en fonction d’un calcul

abracadabraPDF Forums PDF – Général Javascript afficher/masquer un champ en fonction d’un calcul

  • Créateur
    Sujet
  • #72115
    David Misso
    Participant

    Bonjour,

    je suis désolé si le problème a déjà été posé, je cherche depuis 5 jours en tapant tous les mots clefs possibles et je ne trouve pas LA solution.

    Je dispose d’un tableau avec des cellules.

    La somme des champs doit faire 100 et je voudrais que la cellule résultat (là où la somme est calculée) disparaisse quand le résultat fait 100 et réapparaisse quand il est différent de 100. C’est donc, si j’ai bien compris, une condition dans js.

    Le calcul se fait (grace à vous et à ce site ! 😃)

    la cellule disparait de manière aléatoire et je n’arrive pas à comprendre où est mon erreur.

    Ci-joint un PDF simplifié pour visualiser les cellules et le JS.

    Le js tapé si le PDF ne passe pas :

    // somme des cases

    {

    VAL01 = Number((this.getField(“VERS_REG_1”).value)) ;

    VAL02 = Number((this.getField(“VERS_REG_2”).value)) ;

    VAL03 = Number((this.getField(“VERS_REG_3”).value)) ;

    VAL04 = Number((this.getField(“VERS_REG_4”).value)) ;

    VAL05 = Number((this.getField(“VERS_REG_5”).value)) ;

    VAL06 = Number((this.getField(“VERS_REG_6”).value)) ;

    VAL07 = Number((this.getField(“VERS_REG_7”).value)) ;

    VAL08 = Number((this.getField(“VERS_REG_8”).value)) ;

    VAL09 = Number((this.getField(“VERS_REG_9”).value)) ;

    VAL10 = Number((this.getField(“VERS_REG_10”).value)) ;

    VAL11 = Number((this.getField(“VERS_REG_11”).value)) ;

    {event.value = ( VAL01 + VAL02 + VAL03 + VAL04 + VAL05 + VAL06 + VAL07 + VAL08 + VAL09 + VAL10 + VAL11 )};

    }

    // hide & show

    if ((Number(this.getField(“ROUGE_VERS_INIT”)) <= Number(“99\,99”)) || (Number(this.getField(“ROUGE_VERS_INIT”)) >= Number(“100\,01”)))

    { event.target.display = display.visible ; this.getField(“ROUGE_VERS_INIT”).display = display.visible ;

    }

    else if (Number(this.getField(“ROUGE_VERS_INIT”)) == Number(“100,00”))

    {

    event.target.display = display.hidden ; this.getField(“ROUGE_VERS_INIT”).display = display.hidden ;

    }

    Attachments:
    You must be logged in to view attached files.
Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Auteur
    Réponses
  • #72117
    bebarth
    Maître des clés

    bonjour,
    Il suffit d’écrire :
    // somme des cases
    VAL01 = Number((this.getField("VERS_REG_1").value)) ;
    VAL02 = Number((this.getField("VERS_REG_2").value)) ;
    VAL03 = Number((this.getField("VERS_REG_3").value)) ;
    VAL04 = Number((this.getField("VERS_REG_4").value)) ;
    VAL05 = Number((this.getField("VERS_REG_5").value)) ;
    VAL06 = Number((this.getField("VERS_REG_6").value)) ;
    VAL07 = Number((this.getField("VERS_REG_7").value)) ;
    VAL08 = Number((this.getField("VERS_REG_8").value)) ;
    VAL09 = Number((this.getField("VERS_REG_9").value)) ;
    VAL10 = Number((this.getField("VERS_REG_10").value)) ;
    VAL11 = Number((this.getField("VERS_REG_11").value)) ;
    // Total
    event.value = VAL01 + VAL02 + VAL03 + VAL04 + VAL05 + VAL06 + VAL07 + VAL08 + VAL09 + VAL10 + VAL11;
    // Affichage
    if (event.value==100) event.target.display=display.visible;
    else event.target.display=display.hidden;

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #72119
    David Misso
    Participant

    MERCI ! ! ! !

    J’ai juste inversé visible et hidden car c’est l’effet inverse que je cherchai mais je n’ai pas d”autre mots que MERCI ! ! !

    et allez, cela me fait vraiment plaisir ! MERCI !

    #72120
    bebarth
    Maître des clés

    bonjour,
    Tu peux également réduire l’écriture du script :
    var somme=0;
    for (var i=1; i<=11; i++) somme+=Number(this.getField("VERS_REG_"+i).value);
    event.value=somme;
    if (event.value==100) event.target.display=display.hidden;
    else event.target.display=display.visible;

    @+
    😎

    #72226
    David Misso
    Participant

    Sincèrement désolé de vous ennuyer à nouveau et un vendredi qui plus est…

    Je me trouve coincé avec les 2 méthodes pour plus de 14 cases…

    En effet le calcul fonctionne si je change le 11 en 14 dans la version simplifiée mais tous les nombres testés au delà bloquent. Et j’ai le même problème avec l’autre méthode.
    à partir de 15 ça n’en marche plus….

    Le nombre 15 a-til une définition particulière en JS ? j’ai essayé les virgules… tout pour ne pas passer au delà de 14 mais je sèche….

    HELP, s’il vous plait 😃

    #72227
    bebarth
    Maître des clés
    bonjour,

    Le nombre 15 a-til une définition particulière en JS ?

    En JavaScriptologie, je ne pense pas !

    As-tu un message d’erreur dans la console ? Peux-tu partager un fichier ?

    @+
    😎

    #72447
    David Misso
    Participant

    Bonjour,

    Désolé pour le retard dans ma réponse… j’étais en arrêt et peux à nouveau utiliser ma tête.

    En fait je ne sais pas pourquoi, peut-être est-ce la peur de mon acrobat de votre réponse mais le lendemain tout a fonctionné et je n’ai pas eu l’impression de faire diffèremment.

    Je dirai donc que le sujet est clos et fonctionne à merveille et cela uniquement grace à vous.

    donc MERCI un grand nombre de fois (plus de 15) 😀

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