twentyseven
Messages postés3Date d'inscriptionjeudi 17 octobre 2002StatutMembreDernière intervention13 août 2004
-
10 août 2004 à 19:14
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
13 août 2004 à 13:20
Bonjour,
Je souhaite effectuer des claculs (+, *, % ...) sur des formulaires représentant des devis, factures...
Le nombre de calculs étant important, je désirerais intégrer un "moteur de calcul" à mes formulaires qui gère la complexité et le stockage des formules (expressions circulaires, validité des opérateurs...).
Existe-t-il un script javascript qui remplisse cette fonction ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 août 2004 à 11:40
Bonjour,
un début de réponse, frapper une expesssion
dans la zone de saisie (10*25)/12 par exemple
on peut utiliser Math.acos(valeur), Math.ceil(nombre) ...
on fait tout avec eval.
la zone peut être une concaténation des zones.
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
twentyseven
Messages postés3Date d'inscriptionjeudi 17 octobre 2002StatutMembreDernière intervention13 août 2004 13 août 2004 à 08:34
Tout à fait, le but est d'effectuer des calculs automatiques.
Pour aller plus loin, je parlais de moteur qui contrôlerait la cohérence des calcul effectués. Par exemple le calcul suivant doit être rendu impossible :
val3 = val2 + val1
val1 = val 4 + val 3
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 13 août 2004 à 12:55
euh, je n'ai pas été très clair dans mon
exemple, alors on refait :
<HTML>
<HEAD>
<script type="text/javascript">
function calc()
{ resultat.value=eval(formule.value); }
</script>
<TITLE></TITLE>
</HEAD>
formule
résultat
</HTML>
dans "formule" on met ( par exemple )
(Number(t1.value)+Number(t2.value))*Number(t3.value)
il faudra bien entendu autant de formules,résultats
que nécessaire et appeller cal() en lui passant
le nom de la zone formule et resultat.
il restera ( et ce n'est pas une mince affaire )
à contrôler dans l'ensemble des formules que
le calcul suivant doit être rendu impossible :
val3 = val2 + val1
val1 = val 4 + val 3
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 13 août 2004 à 13:20
coucou747 n'a pas compris mon exemple
ce n'est pas une simple addition,
mais une formule qui utilise le
contenu de 3 zones ( enfin ici, on peut en ajouter )
et on peut mettre + - * / Math.cos Math.ceil ( ) ....
comme opérateurs.
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]