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 #45143BobardMembre
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.
@+ -
CréateurSujet
-
AuteurRéponses
-
2 mai 2015 à 21:30 #58851MerlinMaî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
6 mai 2015 à 12:29 #58852BobardMembreBjr
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 #58853alexParticipantBonjour,
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 #58854BobardMembreJ’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 #58855MerlinMaî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 #58856BobardMembreMarche pas !! :Euuuh:
7 mai 2015 à 16:38 #58857alexParticipantDé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 #58858BobardMembreEn 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 #58859alexParticipantBonjour,
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 #58860BobardMembreMerci Alex pour ces formules…je regarde ça et vous tiens au courant !!
@+5 janvier 2016 à 18:21 #58861BobardMembreBonjour 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 #58862alexParticipantBonjour 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 #58863BobardMembreok merci je vais regarder ça !!
@+7 janvier 2016 à 12:38 #58864BobardMembreBjr,
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 #58865MerlinMaî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 #58866BobardMembreen 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 #58867MerlinMaî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 #58868BobardMembreBjr,
à 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 #58869BobardMembreBjr 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 #58870MerlinMaî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 #58871BobardMembreBjr,
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 #58872MerlinMaî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 #58873BobardMembreça donnerai quoi en JavaScript ?
12 janvier 2016 à 14:01 #58874MerlinMaî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 #58875BobardMembreça fonctionne nickel, merci pour tous, t’es un chef !!
@+12 janvier 2016 à 15:07 #58876BobardMembreJ’allais oublier, peut-on via un JavaScript transformer un nombre en toutes lettres ?
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.