abracadabraPDF › Forums › PDF – Général › Multiplier la valeur d’un champ par un chiffre
- Ce sujet est vide.
-
CréateurSujet
-
2 mai 2015 à 16:05 #45143
Bobard
MembreBonjour.
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.
@+ -
CréateurSujet
-
AuteurRéponses
-
2 mai 2015 à 21:30 #58851
Merlin
Maître des clésBonjour.
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
6 mai 2015 à 12:29 #58852Bobard
MembreBjr
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
@+7 mai 2015 à 07:36 #58853alex
ParticipantBonjour,
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
}7 mai 2015 à 15:22 #58854Bobard
MembreJ’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 ?@+
7 mai 2015 à 15:45 #58855Merlin
Maître des clésC’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:
7 mai 2015 à 16:11 #58856Bobard
MembreMarche pas !! :Euuuh:
7 mai 2015 à 16:38 #58857alex
ParticipantDé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 ?).7 mai 2015 à 17:03 #58858Bobard
MembreEn 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éej’espère que cela est clair ?
merci d’avance
@+13 mai 2015 à 11:24 #58859alex
ParticipantBonjour,
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-end19 mai 2015 à 14:45 #58860Bobard
MembreMerci Alex pour ces formules…je regarde ça et vous tiens au courant !!
@+5 janvier 2016 à 18:21 #58861Bobard
MembreBonjour 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” ??
@+7 janvier 2016 à 08:41 #58862alex
ParticipantBonjour 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.7 janvier 2016 à 10:50 #58863Bobard
Membreok merci je vais regarder ça !!
@+7 janvier 2016 à 12:38 #58864Bobard
MembreBjr,
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
@+7 janvier 2016 à 13:46 #58865Merlin
Maître des clésAyant 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:7 janvier 2016 à 14:26 #58866Bobard
Membreen faite, j’ai simplifié tous le formulaire pour plus de compréhension vis-a-vis des membres qui vont l’utiliser !! (ci-joint)
7 janvier 2016 à 15:32 #58867Merlin
Maître des clésTon 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:8 janvier 2016 à 11:02 #58868Bobard
MembreBjr,
à première vu ça m’a l’air nickel… j’approfondis ce week-end je te dis !!
merci encore pour tout l’enchanteur !! :jerisjaune:
@+11 janvier 2016 à 13:38 #58869Bobard
MembreBjr 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”
@+12 janvier 2016 à 10:56 #58870Merlin
Maître des clésPour 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.
12 janvier 2016 à 12:01 #58871Bobard
MembreBjr,
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 “€” ?
@+12 janvier 2016 à 12:10 #58872Merlin
Maître des clésen 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…
12 janvier 2016 à 13:08 #58873Bobard
Membreça donnerai quoi en JavaScript ?
12 janvier 2016 à 14:01 #58874Merlin
Maître des clésLes 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 = “”;}12 janvier 2016 à 14:56 #58875Bobard
Membreça fonctionne nickel, merci pour tous, t’es un chef !!
@+12 janvier 2016 à 15:07 #58876Bobard
MembreJ’allais oublier, peut-on via un JavaScript transformer un nombre en toutes lettres ?
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.