- Ce sujet est vide.
-
Sujet
-
Bonjour,
J’ai un autre problème de conversion qui ressemble a celui de BSA. Comme dit précédemment, le formulaire a été créé par mon département (http://abracadabrapdf.net/forum/index.php/topic,2110.0.html).
Il y a deux champs (plutôt 3 champs) pour la grandeur. La grandeur peut être soit entrée en cm ou en pieds ET pouces. Par contre je veux qu’il y ait une conversion automatique de cm en pieds et pouces lorque la grandeur est entrée en cm; et si la grandeur a été entrée en pied et pouces, qu’il y ait une conversion de la grandeur en cm.
Tout ceci est basé sur la conversion du poids de kg en lbs et vice versa. Pour cette conversion, j’ai utilisé ce script que j’ai trouvé et qui fonctionne à merveille:
(function () {
var f_source = getField(“lbs”);
var result;if (event.source && event.source === f_source) {
result = +f_source.value / 2.2;
event.value = result == 0 ? “” : util.printf(“%.0f”, result);
}})();
et vice-versa
Par la suite, j’ai voulu refaire le même coup pour la grandeur avec un succès modéré. Pour la conversion de cm en pieds et pouces, j’ai utilisé ceci pour le champ des pieds:
(function () {
var f_source = getField(“cm”);
var result;if (event.source && event.source === f_source) {
result = Math.floor((+f_source.value / 2.54) / 12);
event.value = result == 0 ? “” : util.printf(“%.0f”, result);
}})();
et cela pour le champ des pouces:
(function () {
var f_source = getField(“cm”);
var result;if (event.source && event.source === f_source) {
result = (((+f_source.value / 2.54) / 12) – (this.getField(“Feet”).value)) * 12;
event.value = result == 0 ? “” : util.printf(“%.0f”, result);
}})();
Il y a cependant un hic pour la conversion de 182cm. Avec le script ci-haut, cela donne 5 pieds et 12 pouces… ce qui n’est pas la présentation adéquate, car cela devrait donner 6 pieds.
Comment puis-je corrige cette anomalie?J’ai également un léger problème avec la conversion de pieds et pouces en cm. Je ne savais pas comment réunir les 2 valeurs et j’ai essayé plusieurs façon et je suis arrivé avec ce script que j’ai utilisé dans le champ de cm:
(function () {
var f_source = getField(“Inches”);
var result;if (event.source && event.source === getField(“Inches”) && getField(“Feet”)) {
result = Math.ceil((getField(“Inches”).value) + (getField(“Feet”).value * 12)) * 2.54 ;
event.value = result == 0 ? “” : util.printf(“%.0f”, result);}
})();
Le problème survient lorsque j’efface la valeur de pouces en premier et que par la suite j’efface la valeur des pieds, la valeur dans le champ des cm ne s’en va pas. Je comprends que le script est basé sur le champ des pouces plutôt que le champ des pieds. Y a-t-il une façon de faire disparaitre les cm lorsqu’il n’y a plus de valeur dans les pieds et pouces? Je suis conscient que ce n’est vraiment pas la façon la plus élégante et je serais très reconnaissant si une modification au script rendait le formulaire plus fluide.
Cela a l’air très compliqué avec les codes et c’est pourquoi j’ai attaché le formulaire :jerisjaune:.
[attachment deleted by admin]
- Vous devez être connecté pour répondre à ce sujet.