Donnez vie à vos documents numériques !
 

Multiplier la valeur d’un champ par un chiffre

abracadabraPDF Forums PDF – Général Multiplier la valeur d’un champ par un chiffre

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45143
    Bobard
    Membre

    Bonjour.

    Supposons que j’ai 2 champs au format nombre : Texte1 et Texte2.
    Comment créer un script pour que je puisse avoir Texte2 = Texte1 * 0.66 ?

    Merci par avance.
    @+

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

    Bonjour.

    En fait tu chauffes et tu brûles, la réponse est dans ta question*, le tout est de savoir la mettre en forme correctement.

    La réponse finale est là, qui semble avoir été faite pour toi, même pas besoin de script: http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/notation-simplifiee-astuces/

    :Smiley15:

    * C’est presque la formule a utiliser en Notation simplifiée dans l’onglet Calcul : Texte1 * 0.66

    #58852
    Bobard
    Membre

    Bjr
    merci pour ses précisions !!
    par ailleurs, en partant de ce script du champ “Texte10” >>> event.target.value = this.getField(“Texte13”).value*0.66
    comment obtenir une valeur 0 dans le champ “Texte10” quand la case à cocher “Case2” n’est pas cocher par une croix ? (ci-joint un exemple)
    Merci d’avance
    @+

    #58853
    alex
    Participant

    Bonjour,
    En conservant votre manière de faire voici le script de calcul du champ “Texte10”:
    if(this.getField(“Case2”).isBoxChecked(0))
    {
    event.target.value = 0;
    }
    else
    {
    event.target.value = this.getField(“Texte13”).value*0.66
    }

    #58854
    Bobard
    Membre

    J’appelle ça du bon boulot merci !!
    par ailleurs, en étant un peu pragmatique serait-il possible d’afficher la valeur 0 dans le “Texte10” quand les “case1” et “case2” ne sont pas cochées ?

    @+

    #58855
    Merlin
    Maître des clés

    C’est simple : il faut mettre “0” (zéro) comme Valeur par défaut pour ce champ.
    Ca se passe dans les Propriétés du champ : Options

    :Smiley15:

    #58856
    Bobard
    Membre

    Marche pas !!  :Euuuh:

    #58857
    alex
    Participant

    Désolé, mais une petite analyse s’impose avant de scripter le calcul du résultat:
    Case 1 et case 2 cochées simultanément: on fait quoi ?
    Case 1 cochée et case 2 non cochée: on fait quoi ?
    Case 1 non cochée et case 2 cochée: valeur à 0
    Case 1 non cochée et case 2 non cochée: valeur à 0
    Ensuite, quel est l’état initial de notre affaire (valeurs par défaut à 0 ou vide comme proposé par Merlin, cases non cochées ?).

    #58858
    Bobard
    Membre

    En fait, l’idéal serait :
    -que les champs “Texte9.1.0”, “Texte10” et “Texte13” n’affichent rien quand les “Case1” et “Case2” ne sont pas cochées !!
    -que le champ “Texte9.1.0” affiche une valeur quand “Case1” est cochée
    -que les champs “Texte10” et “Texte13” affichent une valeur quand “Case2” est cochée
    -que le champ “Texte9.1.0” n’affiche rien quand “Case2” est cochée
    -que les champs “Texte10” et “Texte13” n’affichent rien quand “Case1” est cochée

    j’espère que cela est clair ?
    merci d’avance
    @+

    #58859
    alex
    Participant

    Bonjour,
    Voilà un formulaire provisoire. Un seul script de document à étudier (lancé par le calcul du total). Je pense qu’on ne doit pas pouvoir cocher simultanément les deux cases.
    Attention au formats numériques des cellules de saisie.
    Pour les calculs il faut vérifier.
    Bon week-end

    #58860
    Bobard
    Membre

    Merci Alex pour ces formules…je regarde ça et vous tiens au courant !!
    @+

    #58861
    Bobard
    Membre

    Bonjour Alex et bonne année,
    ayant délaisser quelque temps ce sujet je reviens vers toi pour que tu me donne des précisions sur le formulaire que tu m’as crée !!
    en effet, je n’arrive pas a voir les scripts dans les champs “Texte9.1.0”, “Texte13” et “Texte10” ??
    @+

    #58862
    alex
    Participant

    Bonjour et bonne année.

    Un seul script de document à étudier: il est lancé par le script de calcul unique associé au seul champ “Texte.9.0”. Ce script calcul() est un script de document (Outils>Scripts JavaScript du document).

    Je pense qu’on ne doit pas pouvoir cocher simultanément les deux cases.
    Attention au formats numériques des cellules de saisie. Pour les calculs il faut vérifier.

    #58863
    Bobard
    Membre

    ok merci je vais regarder ça !!
    @+

    #58864
    Bobard
    Membre

    Bjr,
    Ayant supprimer le champ “Texte9.1.0” pour des raisons pratiques, j’aimerai savoir comment multiplier le champ “Texte9.0” avec “Texte11” en modifiant le script suivant:
    //Script
    this.event.value=this.getField(“Texte9.1.0”).value;
    this.event.target.display=display.hidden;
    if(this.getField(“Case1”).isBoxChecked(0))
    {
    this.event.target.display=display.visible;
    }

    ce script s’intègre dans le champ “Texte9.1.0bis”
    merci d’avance
    @+

    #58865
    Merlin
    Maître des clés

    Ayant supprimer le champ “Texte9.1.0” pour des raisons pratiques

    Du coup ça n’est pas vraiment pratique parce-que ça fausse tous les scripts…  :tutut:
    Au lieu de supprimer un champ faisant partie d’une série il est souvent plus simple de le masquer (invisible à l’écran), de le mettre en “lecture seule” et de lui attribuer zéro comme valeur par défaut.
    :soleil:

    #58866
    Bobard
    Membre

    en faite, j’ai simplifié tous le formulaire pour plus de compréhension vis-a-vis des membres qui vont l’utiliser !! (ci-joint)

    #58867
    Merlin
    Maître des clés

    Ton document affiche une date fantaisiste, ne calcule pas, et la Console JavaScript renvoie des erreurs sans arrêt.
    Ci-joint une version qui calcule… sans JavaScript.

    J’ai aussi corrigé l’ordre de tabulation, l’ordre de calcul, les formats… et quelques fautes d’orthographe.
    :Smiley15:

    #58868
    Bobard
    Membre

    Bjr,

    à première vu ça m’a l’air nickel… j’approfondis ce week-end je te dis !!
    merci encore pour tout l’enchanteur !!  :jerisjaune:
    @+

    #58869
    Bobard
    Membre

    Bjr Merlin,
    je reviens vers toi comme convenu !!
    tes scripts son nickel cependant, il y a quelques petits détails que j’aimerai te soumettre
    en effet, dans le champ “Texte16” la valeur 0 est toujours présente même sans valeur en champ “Texte08” ?
    d’autre part, comment arrondir sans virgule les valeurs des champs “Texte13, 14 et 15”
    @+

    #58870
    Merlin
    Maître des clés

    Pour ne pas avoir de zéro en attente de calcul il faut ajouter ce script (en fin) de script de calcul dans le champ concerné :

    if (event.value == “0”)
    {event.value = “”;}

    Pour ne pas avoir de décimales après la virgule, et donc obtenir un arrondi, il faut aller dans l’onglet Format : Nombre et sélectionner : Nombre de décimaux = zéro.

    #58871
    Bobard
    Membre

    Bjr,
    en rajoutant ton bout de script je perds le calcul avec “Texte08” ?
    d’autre part, dans les champs “Texte14 et 15”, sans les décimales, je n’est plus le symbole “€” ?
    @+

    #58872
    Merlin
    Maître des clés

    en rajoutant ton bout de script je perds le calcul avec “Texte08” ?

    Oui, dans ce cas il faut faire le calcul + la validation tout en JavaScript.

    d’autre part, dans les champs “Texte14 et 15”, sans les décimales, je n’ai plus le symbole “€” ?

    Je n’arrive pas à reproduire ce problème…

    #58873
    Bobard
    Membre

    ça donnerai quoi en JavaScript ?

    #58874
    Merlin
    Maître des clés

    Les champs concernés ne sont pas numérotés de façon consécutive, donc on ne peut pas faire de boucle et il faut les additionner un par un :

    event.target.value = (this.getField(“Texte08.0”).value + this.getField(“Texte08.1”).value + this.getField(“Texte08.2”).value + this.getField(“Texte08.14.0.1”).value);  /* Etc. */
    if (event.value == “0”)
    {event.value = “”;}

    #58875
    Bobard
    Membre

    ça fonctionne nickel, merci pour tous, t’es un chef !!
    @+

    #58876
    Bobard
    Membre

    J’allais oublier, peut-on via un JavaScript transformer un nombre en toutes lettres ?

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