abracadabraPDF › Forums › PDF – Général › Tableau de conversion
- Ce sujet contient 33 réponses, 3 participants et a été mis à jour pour la dernière fois par
homer, le il y a 2 jours et 16 heures.
-
CréateurSujet
-
5 avril 2026 à 20:00 #76510
-
CréateurSujet
-
AuteurRéponses
-
7 avril 2026 à 14:17 #76512
MerlinMaître des clésBonjour
Dès l’ouverture et à chaque clic la Console renvoie cette erreur :
TypeError: this.getField(...) is null
4:Document-Level:InitListesTraduction : il y a un nom de champ « null » (introuvable) à la ligne 4 du script « InitListe »
À l’évidence ça vient du fait que dans le script il y a un point séparateur dans les noms de champs et que dans le document il n’y a pas de champs avec point séparateur.
L’utilisation de la Console est importante, je te recommande la lecture de cet article :
Attachments:
You must be logged in to view attached files.9 avril 2026 à 17:11 #76515homer
ParticipantBonjour,
Voila tout ce que j’ai su faire la je bloque, j’ai vu l’article mais la je nage, il y a que quelle que convertion qui fonction,
Pouvez vous voir, j’ai meme essayé de trouver avec les ia !
Bonne journée
Cordialement
Attachments:
You must be logged in to view attached files.13 avril 2026 à 15:50 #76517
MerlinMaître des clésBonjour
Ton document est une usine à gaz dans laquelle il est difficile de deviner qui fait quoi et d’où viennent les erreurs. C’est d’autant plus difficile quand on n’en est pas l’auteur.
Il y a toujours une erreur qui revient sans cesse quoi qu’on fasse :
GeneralError: Operation failed.
Field.setItems:28:AcroForm:Valeuractuelleconv0:Calculate==> Sauf rare exception c’est toujours une mauvaise idée de mettre des scripts de calcul dans des listes déroulantes, de plus dans celle-ci (Valeuractuelleconv0) et sa voisine il y a aussi un script « souris relâchée » qui ne fonctionne pas non plus, et dont je comprend pas l’utilité puisque que s’il fonctionnait il devrait remplir cette liste avec les items qu’elle contient déjà…
Je crois que tu devrais supprimer le tableau du bas et en refaire un neuf à partir du tableau central (Poids, LBS, Miles…) qui lui semble bien fonctionner.
Par ailleurs ce tableau du bas a une ergonomie fantaisiste et sa logique est impénétrable : pourquoi reporter les unités saisies dans les listes dans ces deux immenses champs ? Quelle en est l’utilité ?
Ce sont des complications inutiles et je crois que ça fonctionnerait bien mieux sans. Comme le tableau du milieu.
L’intérêt des listes déroulantes c’est qu’elles peuvent avoir deux valeurs :
- la valeur d’affichage (ce que voit l’utilisateur),
- la valeur d’exportation, qui peut être utilisée dans un calcul par exemple.
Dans le cas d’un tableau de conversion ça permettrait d’utiliser une seule formule de calcul, qui serait alimentée par le champ (texte) contenant la quantité à convertir et par la valeur d’exportation de la liste déroulante.
Exemple.
L’intitulé « KM vers Miles » serait la valeur d’affichage, et « 1.609 » serait la valeur d’exportaion.
L’intitulé « Miles vers KM » serait la valeur d’affichage, et « 0.621 » serait la valeur d’exportaion.
Etc.
Ensuite le script multiplierait la quantité saisie par la valeur d’exportation en appliquant toujour la même formule de calcul, seules les valeurs utilisées changeraient.
Avantages :
- une seule liste déroulante
- pas besoin de script
Voit comment est fait l’exemple « Conversions-exemple.pdf » ci-joint :
- la liste contient des valeurs d’affichage (item) et des valeurs d’exportation,
- le champ « Résultat » utilise un simple calcul « produit »,
- pour que le calcul fonctionne en temps réel il est important de cocher l’option « Sélectionner la valeur immédiatement » (en anglais sur ma capture d’écran).
Quand tu auras déjà ça qui fonctionnera on pourra utiliser une autre liste déroulante ou bien un calcul plus complexe pour les unités qu’on ne peut pas convertir avec une simple multiplication, comme les températures par exemples.
Attachments:
You must be logged in to view attached files.14 avril 2026 à 17:22 #76520
bebarthMaître des clésbonjour,
Ton document est une usine à gaz dans laquelle il est difficile de deviner qui fait quoi et d’où viennent les erreurs. C’est d’autant plus difficile quand on n’en est pas l’auteur.
Pareil !!!
Je pense que ce serait plus compréhensible de faire des listes mères/filles où on pourrait choisir les unités à convertir.@+
😎14 avril 2026 à 17:23 #76521
bebarthMaître des clésbonjour,
Ton document est une usine à gaz dans laquelle il est difficile de deviner qui fait quoi et d’où viennent les erreurs. C’est d’autant plus difficile quand on n’en est pas l’auteur.
Pareil !!!
Je pense que ce serait plus compréhensible de faire des listes mères/filles où on pourrait choisir les unités à convertir.@+
😎14 avril 2026 à 17:38 #76522homer
ParticipantBonjour,
Merci e vos messages, j’essai de le retravailler et de faire pour qu’il soit plus simple, j’ai voulu faire cette page car par moment je suis formateur quand je ne suis pas dessinateur industriel, vu que par moment je suis tombé sur des personnes ne savaient pas faire de simple conversion
Cordialement
14 avril 2026 à 20:00 #76523homer
ParticipantRe,
J’ai revu l’ensemble du tableau, voila maintenant ce que j’ai
Bonne soirée
Condialement
Attachments:
You must be logged in to view attached files.15 avril 2026 à 18:20 #76525
MerlinMaître des clésBonjour
Il y a toujours ce script en action « souris relâchée » qui déclenche cette erreur :
TypeError: this.getItemAt is not a function
4:Field:Mouse UpJe ne comprend toujours pas son utilité parce que:
- s’il fonctionnait il remplirait la liste déroulante avec les items qu’elle contient déjà
- le reste fonctionne quand même, donc il ne sert à rien d’autre qu’à afficher la Console
Voir capture 1
Par ailleurs je crois qu’avant de s’occuper des scripts il faudrait revoir l’ergonomie de ce tableau.
D’abord les intitulés : remplacer « mètre » par « distance », « valeur désirée » par « valeur convertie », etc.
Et surtout revoir la cohérence des listes car là il permet de convertir des choux en carottes, par exemple dans la capture 2 on peut convertir des CM2 en décimètres.
Ce qui n’a aucun sens.
Attachments:
You must be logged in to view attached files.15 avril 2026 à 18:29 #76528homer
ParticipantBonjour,
Oui je comprends mais si on reste bien dans la bonne bonne unité cela fonctionne,
je comprends que convertir des M en M² cela n’est pas possible,
Sinon comment ce que vous me dite :
Il y a toujours ce script en action « souris relâchée » qui déclenche cette erreur :
TypeError: this.getItemAt is not a function
4:Field:Mouse Upla pour moi cela est trop dur a comprendre, et a enlever cela, et comment voyez vous cela de votre point de vu ?
Merci a vous pour vos remarque et votre temps que et a vous Merlin et Bebarth qui prenez du temps a me repondre
Cordialement
15 avril 2026 à 22:19 #76529
bebarthMaître des clésBonjour,
j’essaie de re faire un exemple de listes mères/filles rapidement.@+
😎16 avril 2026 à 17:04 #76530
bebarthMaître des clésbonjour,
Voici un exemple de convertisseurs basé sur des menus déroulants mère/filles. J’espère ne pas avoir fait d’erreurs de conversion…
Si ça t’intéresse je te laisse l’adapter à tes besoins. Si tu as besoin d’un coup de main je pourrais t’aider (si tu n’es pas trop pressé).// Script de document : Tableau des unités par famille
var lesUnites={
"Distance": [
["nanomètre (nm)","nm"],
["micromètre (µm)","µm"],
["millimètre (mm)","mm"],
["centimètre (cm)","cm"],
["décimètre (dm)","dm"],
["mètre (m)","m"],
["décamètre (dam)","dam"],
["hectomètre (hm)","hm"],
["kilomètre (km)","km"],
["pouce (in)","in"],
["pied (ft)","ft"],
["yard (yd)","yd"],
["mile (mi)","mi"]
],
"Poids": [
["milligramme (mg)","g"],
["centigramme (cg)","cg"],
["décigramme (dg)","dg"],
["gramme (g)","g"],
["décagramme (dag)","dag"],
["hectogramme (hg)","hg"],
["kilogramme (kg)","kg"],
["quintal (q)","q"],
["tonne (t)","t"],
//
["once (oz)","oz"],
["livre (lb)","lb"]
],
"Surface": [
["millimètre carré (mm^2)","mm2"],
["centimètre carré (cm^2)","cm2"],
["décimètre carré (dm^2)","dm2"],
["mètre carré (m^2)","m2"],
["kilomètre carré (km^2)","km2"],
["centiare (ca)","ca"],
["are (a)","a"],
["hectare (ha)","ha"],
//
["square inch (in2)","yd2"],
["square foot (ft2)","ft2"],
["square yard (yd2)","yd2"],
],
"Volume": [
["millilitre (ml)","ml"],
["centilitre (cl)","cl"],
["décilitre (dl)","dl"],
["litre (l)","l"],
["décalitre (dal)","l"],
["hectolitre (hl)","l"],
//
["millimètre cube (mm^3)","mm3"],
["centimètre cube (cm^3)","cm3"],
["décimètre cube (dm^3)","dm3"],
["mètre cube (m^3)","m3"],
//
["pinte US (US fl)","pt_us"],
["gallon US (gal)","gal_us"],
["once liquide US (fl oz)","floz_us"]
]
};// Script de touches personnalisé du champ Mère "typeUnite"
if (!event.willCommit) {
this.getField("uniteInitiale").clearItems();
this.getField("uniteConvertie").clearItems();
if (event.changeEx!=0) {
this.getField("uniteInitiale").setItems(lesUnites[event.changeEx]);
this.getField("uniteConvertie").setItems(lesUnites[event.changeEx]);
switch (event.changeEx) {
case "Distance":var uniteBase="m"; break;
case "Poids":var uniteBase="kg"; break;
case "Surface":var uniteBase="m2"; break;
case "Volume":var uniteBase="l"; break;
}
this.getField("uniteInitiale").value=uniteBase;
this.getField("uniteConvertie").value=uniteBase;
}
}// Script de calcul du champ "valeurConvertie"
var typeUnite=this.getField("typeUnite").value;
var uniteInitiale=this.getField("uniteInitiale").value;
var uniteConvertie=this.getField("uniteConvertie").value;
var valeurInitiale=this.getField("valeurInitiale").value;
if (valeurInitiale=="" || typeUnite=="" || uniteInitiale=="" || uniteConvertie=="") {
event.value="";
} else {
valeurInitiale=Number(valeurInitiale);
// 1 - Conversion vers l'unité de base
// 2 - Conversion à partir de l'unité de base
switch (typeUnite) {
case "Distance":
// Unité de base -> mètre
switch (uniteInitiale) {
case "nm": var base=valeurInitiale/1000000000; break;
case "µm": var base=valeurInitiale/1000000; break;
case "mm": var base=valeurInitiale/1000; break;
case "cm": var base=valeurInitiale/100; break;
case "dm": var base=valeurInitiale/10; break;
case "m": var base=valeurInitiale; break;
case "dam": var base=valeurInitiale*10; break;
case "hm": var base=valeurInitiale*100; break;
case "km": var base=valeurInitiale*1000; break;
//
case "in": var base=valeurInitiale*0.0254; break;
case "ft": var base=valeurInitiale*(0.0254*12); break;
case "yd": var base=valeurInitiale*(0.0254*12*3); break;
case "mi": var base=valeurInitiale*(0.0254*12*3*1760); break;
}
switch (uniteConvertie) {
case "nm": var resultat=base*1000000000; break;
case "µm": var resultat=base*1000000; break;
case "mm": var resultat=base*1000; break;
case "cm": var resultat=base*100; break;
case "dm": var resultat=base*10; break;
case "m": var resultat=base; break;
case "dam": var resultat=base/10; break;
case "hm": var resultat=base/100; break;
case "km": var resultat=base/1000; break;
//
case "in": var resultat=base/0.0254; break;
case "ft": var resultat=base/(0.0254*12); break;
case "yd": var resultat=base/(0.0254*12*3); break;
case "mi": var resultat=base/(0.0254*12*3*1760); break;
}
break;
case "Poids":
// Unité de base -> kilogramme
switch (uniteInitiale) {
case "mg": var base=valeurInitiale/1000000; break;
case "cg": var base=valeurInitiale/100000; break;
case "dg": var base=valeurInitiale/10000; break;
case "g": var base=valeurInitiale/1000; break;
case "dag": var base=valeurInitiale/100; break;
case "hg": var base=valeurInitiale/10; break;
case "kg": var base=valeurInitiale; break;
case "q": var base=valeurInitiale*100; break;
case "t": var base=valeurInitiale*1000; break;
//
case "oz": var base=valeurInitiale*(0.45359237/16); break;
case "lb": var base=valeurInitiale*0.45359237; break;
}
switch (uniteConvertie) {
case "mg": var resultat=base*1000000; break;
case "cg": var resultat=base*100000; break;
case "dg": var resultat=base*10000; break;
case "g": var resultat=base*1000; break;
case "dag": var resultat=base*100; break;
case "hg": var resultat=base*10; break;
case "kg": var resultat=base; break;
case "q": var resultat=base/100; break;
case "t": var resultat=base/1000; break;
//
case "oz": var resultat=base/(0.45359237/16); break;
case "lb": var resultat=base/0.45359237; break;
}
break;
case "Surface":
// Unité de base -> mètre carré
switch (uniteInitiale) {
case "mm2": var base=valeurInitiale/1000000; break;
case "cm2": var base=valeurInitiale/10000; break;
case "dm2": var base=valeurInitiale/100; break;
case "m2": var base=valeurInitiale; break;
case "km2": var base=valeurInitiale*1000000; break;
case "ca": var base=valeurInitiale; break;
case "a": var base=valeurInitiale*10000; break;
//
case "in2": var base=valeurInitiale*(0.0254*0.0254); break;
case "ft2": var base=valeurInitiale*((0.0254*12)*(0.0254*12)); break;
case "yd2": var base=valeurInitiale*((0.0254*12*3)*(0.0254*12*3)); break;
}
switch (uniteConvertie) {
case "mm2": var resultat=base*1000000; break;
case "cm2": var resultat=base*10000; break;
case "dm2": var resultat=base*100; break;
case "m2": var resultat=base; break;
case "km2": var resultat=base/1000000; break;
case "ca": var resultat=base; break;
case "a": var resultat=base/10000; break;
//
case "in2": var resultat=base/(0.0254*0.0254); break;
case "ft2": var resultat=base/((0.0254*12)*(0.0254*12)); break;
case "yd2": var resultat=base/((0.0254*12*3)*(0.0254*12*3)); break;
}
break;
case "Volume":
// Unité de base -> litre
switch (uniteInitiale) {
case "ml": var base=valeurInitiale/1000; break;
case "cl": var base=valeurInitiale/100; break;
case "dl": var base=valeurInitiale/10; break;
case "l": var base=valeurInitiale; break;
case "dal": var base=valeurInitiale*10; break;
case "hl": var base=valeurInitiale*100; break;
//
case "mm3": var base=valeurInitiale/1000000; break;
case "cm3": var base=valeurInitiale/1000; break;
case "dm3": var base=valeurInitiale; break;
case "m3": var base=valeurInitiale*1000; break;
//
case "pt_us": var base=valeurInitiale*(3.785411784/8); break;
case "gal_us": var base=valeurInitiale*3.785411784; break;
case "floz_us": var base=valeurInitiale*(3.785411784/128); break;
}
switch (uniteConvertie) {
case "ml": var resultat=base*1000; break;
case "cl": var resultat=base*100; break;
case "dl": var resultat=base*10; break;
case "l": var resultat=base; break;
case "dal": var resultat=base/10; break;
case "hl": var resultat=base/100; break;
//
case "mm3": var resultat=base*1000000; break;
case "cm3": var resultat=base*1000; break;
case "dm3": var resultat=base; break;
case "m3": var resultat=base/1000; break;
//
case "pt_us": var resultat=base/(3.785411784/8); break;
case "gal_us": var resultat=base/3.785411784; break;
case "floz_us": var resultat=base/(3.785411784/128); break;
}
break;
}
if (isNaN(resultat)) event.value="";
else event.value=util.printf("%.6f",resultat).replace(/\.?0+$/,"");
}// Script de touches personnalisé du champ "valeurInitiale"
if(!event.willCommit) {
if (event.change==",") event.change="."
var aTester=event.value.split("");
aTester.splice(event.selStart, event.selEnd-event.selStart, event.change);
var testeChaine=aTester.join("");
event.rc=/^([1-9]\d*([.]?\d+)?)|([0]([.]\d*)?)$/.test(testeChaine);
} else {
event.rc=event.value=="" || /^([1-9]\d*([.]\d+)?)|([0][.]\d+)$/.test(event.value);
}@+
😎Attachments:
You must be logged in to view attached files.16 avril 2026 à 18:11 #76532homer
ParticipantBonjour,
ce qui est fais est une tuerie !!!!! mais je ne comprends pas j’ai effacé les unité anglais ou americaine autant dans le script et menu deroualnt, mais apres une nouvelle ouverture elle réapparaisse !!!!
La je ne comprend plus rien ?
Merci beaucoup en tout cas !!!
Cordialment
16 avril 2026 à 18:15 #76533homer
Participantet meme dans le menu deroulant si je veux supprimer ou modifier il n’accept pas !
je ne peux pa refaire la meme structure que j’ai fais dans mon tableau, on dirait qu’il est verouillé
J’ai essayé de placer celui la
case « Temps »:
// Unité de base -> seconde
switch (uniteInitiale) {
case « siècle »: var base=valeurInitiale*3155760000; break;
case « décennie »: var base=valeurInitiale*315576000; break;
case « an »: var base=valeurInitiale*31557600; break;
case « mois »: var base=valeurInitiale*2629800; break;
case « semaine »: var base=valeurInitiale*604800; break;
case « jour »: var base=valeurInitiale*86400; break;
case « h »: var base=valeurInitiale*3600; break;
case « min »: var base=valeurInitiale*60; break;
case « s »: var base=valeurInitiale; break;
case « ms »: var base=valeurInitiale/1000; break;
}
switch (uniteConvertie) {
case « siècle »: var resultat=base/3155760000; break;
case « décennie »: var resultat=base/315576000; break;
case « an »: var resultat=base/31557600; break;
case « mois »: var resultat=base/2629800; break;
case « semaine »: var resultat=base/604800; break;
case « jour »: var resultat=base/86400; break;
case « h »: var resultat=base/3600; break;
case « min »: var resultat=base/60; break;
case « s »: var resultat=base; break;
case « ms »: var resultat=base*1000; break;
}Et de d’enlever les unité hors france par exemple auatnt dans les menu et scriptmais rien ne marche !!!
var type = this.getField(« typeUnite »).value;
var valeurInitiale = this.getField(« valeurInitiale »).value;
var uniteInitiale = this.getField(« uniteInitiale »).value;
var uniteConvertie = this.getField(« uniteConvertie »).value;
var base = 0;
var resultat = 0;if (valeurInitiale !== « ») {
switch (type) {
case « Longueur »:
// Unité de base -> mètre
switch (uniteInitiale) {
case « nm »: var base=valeurInitiale/1000000000; break;
case « µm »: var base=valeurInitiale/1000000; break;
case « mm »: var base=valeurInitiale/1000; break;
case « cm »: var base=valeurInitiale/100; break;
case « dm »: var base=valeurInitiale/10; break;
case « m »: var base=valeurInitiale; break;
case « dam »: var base=valeurInitiale*10; break;
case « hm »: var base=valeurInitiale*100; break;
case « km »: var base=valeurInitiale*1000; break;
}
switch (uniteConvertie) {
case « nm »: var resultat=base*1000000000; break;
case « µm »: var resultat=base*1000000; break;
case « mm »: var resultat=base*1000; break;
case « cm »: var resultat=base*100; break;
case « dm »: var resultat=base*10; break;
case « m »: var resultat=base; break;
case « dam »: var resultat=base/10; break;
case « hm »: var resultat=base/100; break;
case « km »: var resultat=base/1000; break;
}
break;case « Volume »:
// Unité de base -> litre
switch (uniteInitiale) {
case « ml »: var base=valeurInitiale/1000; break;
case « cl »: var base=valeurInitiale/100; break;
case « dl »: var base=valeurInitiale/10; break;
case « l »: var base=valeurInitiale; break;
case « dal »: var base=valeurInitiale*10; break;
case « hl »: var base=valeurInitiale*100; break;
case « mm3 »: var base=valeurInitiale/1000000; break;
case « cm3 »: var base=valeurInitiale/1000; break;
case « dm3 »: var base=valeurInitiale; break;
case « m3 »: var base=valeurInitiale*1000; break;
}
switch (uniteConvertie) {
case « ml »: var resultat=base*1000; break;
case « cl »: var resultat=base*100; break;
case « dl »: var resultat=base*10; break;
case « l »: var resultat=base; break;
case « dal »: var resultat=base/10; break;
case « hl »: var resultat=base/100; break;
case « mm3 »: var resultat=base*1000000; break;
case « cm3 »: var resultat=base*1000; break;
case « dm3 »: var resultat=base; break;
case « m3 »: var resultat=base/1000; break;
}
break;case « Temps »:
// Unité de base -> seconde
switch (uniteInitiale) {
case « siècle »: var base=valeurInitiale*3155760000; break;
case « décennie »: var base=valeurInitiale*315576000; break;
case « an »: var base=valeurInitiale*31557600; break;
case « mois »: var base=valeurInitiale*2629800; break;
case « semaine »: var base=valeurInitiale*604800; break;
case « jour »: var base=valeurInitiale*86400; break;
case « h »: var base=valeurInitiale*3600; break;
case « min »: var base=valeurInitiale*60; break;
case « s »: var base=valeurInitiale; break;
case « ms »: var base=valeurInitiale/1000; break;
}
switch (uniteConvertie) {
case « siècle »: var resultat=base/3155760000; break;
case « décennie »: var resultat=base/315576000; break;
case « an »: var resultat=base/31557600; break;
case « mois »: var resultat=base/2629800; break;
case « semaine »: var resultat=base/604800; break;
case « jour »: var resultat=base/86400; break;
case « h »: var resultat=base/3600; break;
case « min »: var resultat=base/60; break;
case « s »: var resultat=base; break;
case « ms »: var resultat=base*1000; break;
}
break;
}
event.value = resultat;
} else {
event.value = « »;
}cordialement
-
Cette réponse a été modifiée le il y a 1 semaine par
homer.
-
Cette réponse a été modifiée le il y a 1 semaine par
homer.
Attachments:
You must be logged in to view attached files.16 avril 2026 à 19:35 #76537
bebarthMaître des clésTout est dans les scripts.
J’ai retirés les unités anglo-saxonnes.
je te laisse étudier les différences des scripts.// Script de document : Tableau des unités par famille
var lesUnites={
"Distance": [
["nanomètre (nm)","nm"],
["micromètre (µm)","µm"],
["millimètre (mm)","mm"],
["centimètre (cm)","cm"],
["décimètre (dm)","dm"],
["mètre (m)","m"],
["décamètre (dam)","dam"],
["hectomètre (hm)","hm"],
["kilomètre (km)","km"],
],
"Poids": [
["milligramme (mg)","g"],
["centigramme (cg)","cg"],
["décigramme (dg)","dg"],
["gramme (g)","g"],
["décagramme (dag)","dag"],
["hectogramme (hg)","hg"],
["kilogramme (kg)","kg"],
["quintal (q)","q"],
["tonne (t)","t"],
],
"Surface": [
["millimètre carré (mm^2)","mm2"],
["centimètre carré (cm^2)","cm2"],
["décimètre carré (dm^2)","dm2"],
["mètre carré (m^2)","m2"],
["kilomètre carré (km^2)","km2"],
["centiare (ca)","ca"],
["are (a)","a"],
["hectare (ha)","ha"],
],
"Volume": [
["millilitre (ml)","ml"],
["centilitre (cl)","cl"],
["décilitre (dl)","dl"],
["litre (l)","l"],
["décalitre (dal)","l"],
["hectolitre (hl)","l"],
//
["millimètre cube (mm^3)","mm3"],
["centimètre cube (cm^3)","cm3"],
["décimètre cube (dm^3)","dm3"],
["mètre cube (m^3)","m3"],
]
};// Script de touches personnalisé du champ Mère "typeUnite"
if (!event.willCommit) {
this.getField("uniteInitiale").clearItems();
this.getField("uniteConvertie").clearItems();
if (event.changeEx!=0) {
this.getField("uniteInitiale").setItems(lesUnites[event.changeEx]);
this.getField("uniteConvertie").setItems(lesUnites[event.changeEx]);
switch (event.changeEx) {
case "Distance":var uniteBase="m"; break;
case "Poids":var uniteBase="kg"; break;
case "Surface":var uniteBase="m2"; break;
case "Volume":var uniteBase="l"; break;
}
this.getField("uniteInitiale").value=uniteBase;
this.getField("uniteConvertie").value=uniteBase;
}
}// Script de calcul du champ "valeurConvertie"
var typeUnite=this.getField("typeUnite").value;
var uniteInitiale=this.getField("uniteInitiale").value;
var uniteConvertie=this.getField("uniteConvertie").value;
var valeurInitiale=this.getField("valeurInitiale").value;
if (valeurInitiale=="" || typeUnite=="" || uniteInitiale=="" || uniteConvertie=="") {
event.value="";
} else {
valeurInitiale=Number(valeurInitiale);
// 1 - Conversion vers l'unité de base
// 2 - Conversion à partir de l'unité de base
switch (typeUnite) {
case "Distance":
// Unité de base -> mètre
switch (uniteInitiale) {
case "nm": var base=valeurInitiale/1000000000; break;
case "µm": var base=valeurInitiale/1000000; break;
case "mm": var base=valeurInitiale/1000; break;
case "cm": var base=valeurInitiale/100; break;
case "dm": var base=valeurInitiale/10; break;
case "m": var base=valeurInitiale; break;
case "dam": var base=valeurInitiale*10; break;
case "hm": var base=valeurInitiale*100; break;
case "km": var base=valeurInitiale*1000; break;
}
switch (uniteConvertie) {
case "nm": var resultat=base*1000000000; break;
case "µm": var resultat=base*1000000; break;
case "mm": var resultat=base*1000; break;
case "cm": var resultat=base*100; break;
case "dm": var resultat=base*10; break;
case "m": var resultat=base; break;
case "dam": var resultat=base/10; break;
case "hm": var resultat=base/100; break;
case "km": var resultat=base/1000; break;
}
break;
case "Poids":
// Unité de base -> kilogramme
switch (uniteInitiale) {
case "mg": var base=valeurInitiale/1000000; break;
case "cg": var base=valeurInitiale/100000; break;
case "dg": var base=valeurInitiale/10000; break;
case "g": var base=valeurInitiale/1000; break;
case "dag": var base=valeurInitiale/100; break;
case "hg": var base=valeurInitiale/10; break;
case "kg": var base=valeurInitiale; break;
case "q": var base=valeurInitiale*100; break;
case "t": var base=valeurInitiale*1000; break;
}
switch (uniteConvertie) {
case "mg": var resultat=base*1000000; break;
case "cg": var resultat=base*100000; break;
case "dg": var resultat=base*10000; break;
case "g": var resultat=base*1000; break;
case "dag": var resultat=base*100; break;
case "hg": var resultat=base*10; break;
case "kg": var resultat=base; break;
case "q": var resultat=base/100; break;
case "t": var resultat=base/1000; break;
}
break;
case "Surface":
// Unité de base -> mètre carré
switch (uniteInitiale) {
case "mm2": var base=valeurInitiale/1000000; break;
case "cm2": var base=valeurInitiale/10000; break;
case "dm2": var base=valeurInitiale/100; break;
case "m2": var base=valeurInitiale; break;
case "km2": var base=valeurInitiale*1000000; break;
case "ca": var base=valeurInitiale; break;
case "a": var base=valeurInitiale*10000; break;
}
switch (uniteConvertie) {
case "mm2": var resultat=base*1000000; break;
case "cm2": var resultat=base*10000; break;
case "dm2": var resultat=base*100; break;
case "m2": var resultat=base; break;
case "km2": var resultat=base/1000000; break;
case "ca": var resultat=base; break;
case "a": var resultat=base/10000; break;
}
break;
case "Volume":
// Unité de base -> litre
switch (uniteInitiale) {
case "ml": var base=valeurInitiale/1000; break;
case "cl": var base=valeurInitiale/100; break;
case "dl": var base=valeurInitiale/10; break;
case "l": var base=valeurInitiale; break;
case "dal": var base=valeurInitiale*10; break;
case "hl": var base=valeurInitiale*100; break;
//
case "mm3": var base=valeurInitiale/1000000; break;
case "cm3": var base=valeurInitiale/1000; break;
case "dm3": var base=valeurInitiale; break;
case "m3": var base=valeurInitiale*1000; break;
}
switch (uniteConvertie) {
case "ml": var resultat=base*1000; break;
case "cl": var resultat=base*100; break;
case "dl": var resultat=base*10; break;
case "l": var resultat=base; break;
case "dal": var resultat=base/10; break;
case "hl": var resultat=base/100; break;
//
case "mm3": var resultat=base*1000000; break;
case "cm3": var resultat=base*1000; break;
case "dm3": var resultat=base; break;
case "m3": var resultat=base/1000; break;
}
break;
}
if (isNaN(resultat)) event.value="";
else event.value=util.printf("%.6f",resultat).replace(/\.?0+$/,"");
}// Script de touches personnalisé du champ "valeurInitiale"
if(!event.willCommit) {
if (event.change==",") event.change="."
var aTester=event.value.split("");
aTester.splice(event.selStart, event.selEnd-event.selStart, event.change);
var testeChaine=aTester.join("");
event.rc=/^([1-9]\d*([.]?\d+)?)|([0]([.]\d*)?)$/.test(testeChaine);
} else {
event.rc=event.value=="" || /^([1-9]\d*([.]\d+)?)|([0][.]\d+)$/.test(event.value);
}@+
😎Attachments:
You must be logged in to view attached files.16 avril 2026 à 20:29 #76539homer
ParticipantRe je suis oblige de recommencer a zero ou est mon erreur ??
Merci
Cordialement
Attachments:
You must be logged in to view attached files.17 avril 2026 à 05:27 #76541homer
ParticipantBonjour
Merci beaucoup, mais pourquoi le type de conversion que je viens e mettre » temps » ne fonctionne pas ???
Bonne journée
Attachments:
You must be logged in to view attached files.17 avril 2026 à 12:53 #76543
bebarthMaître des clésbonjour,
J’essaie de regarder ce weekend !@+
😎18 avril 2026 à 09:43 #76544homer
ParticipantBonjour,
J’ai encore essayé ce matin avec ce que je voudrais faire comme conversion, mais cela ne va pas sur plusieurs point1 – Aucun tableau deroulant se sauvegarde ! cela est du a quoi
2 – Les calculs ne se font pas !
La je ne comprens pas pourquoi ?? meme en reprenant le pdf corrigé en enlevant les unités anglo-saxonnes.Bonne journée et week end
Cordialement
Attachments:
You must be logged in to view attached files.18 avril 2026 à 13:25 #76546
bebarthMaître des clésbonjour,
Pour rajouter une famille d’unités, il faut faire 4 modifications. Ici on va rajouter un convertisseur de températures.1) On joute MANUELLEMENT « Température » comme élément du menu déroulant « mère » -> typeUnite.
2) Dans le script de document, on ajoute à l’objet « lesUnites » les différentes unités à convertir :
...
"Température": [
["Celcius (°C)","°C"],
["Fahrenheit (°F)","°F"],
["Kelvin (°K)","°K"],
],
...3) On ajoute au script de touches personnalisé du champ Mère « typeUnite » la valeur par défaut lorsque l’on sélectionne « Tempétature ».
...
case "Température":var uniteBase="°C"; break;
...4) Et enfin ou ajoute les différent calculs de conversions selon les unités.
Dans un premier temps on convertit l’unité sélectionnée vers l’unité de base, puis ce résultat vers l’unité à convertir :
...
case "Température":
// Unité de base -> Celcius
switch (uniteInitiale) {
case "°C": var base=valeurInitiale; break;
case "°F": var base=(valeurInitiale-32)*5/9; break;
case "°K": var base=valeurInitiale-273.15; break;
}
switch (uniteConvertie) {
case "°C": var resultat=base; break;
case "°F": var resultat=(base*9/5)+32; break;
case "°K": var resultat=base+273.15; break;
}
break;
...J’espère que cela est plus clair pour toi.
@+
😎Attachments:
You must be logged in to view attached files.18 avril 2026 à 16:09 #76548homer
Participantre,
J’arrete pas de refaire la lis a chaque fois elle s’efface !! Pourquoi ??
Cordialement
18 avril 2026 à 16:12 #76549
bebarthMaître des clésQuelle liste ??? Le menu déroulant « typeUnite » ?
@+
😎18 avril 2026 à 16:14 #76550homer
Participantde
uniteInitiale et uniteConvertieOui les menu deroulant s’efface apres que je change par exemple de litre a distance
-
Cette réponse a été modifiée le il y a 5 jours et 19 heures par
homer.
18 avril 2026 à 16:17 #76552
bebarthMaître des clésComme je te l’ai expliqué dans ce post (#post-76546) :
ces menus déroulants se remplissent via le script et non manuellement. Je t’invite donc à lire ce post en entier !@+
😎18 avril 2026 à 16:23 #76553homer
Participantje l’ai lu plusieurs fois, mais dans le menu deroulant alors il faut mettre un script dans l’onglet calcul ou action ??
Dans l’onglet calcul de « valeurconvertie » les script que je rajoute font bien le travail de convertion en tout cas
-
Cette réponse a été modifiée le il y a 5 jours et 18 heures par
homer.
18 avril 2026 à 16:42 #76555
bebarthMaître des clésLe 1) c’est l’onglet « Options » du menu déroulant « typeUnite ».
Le 2) est en script de document.
Le 3) est en script de touches personnalisé du menu déroulant « typeUnite ».
Le 4) est en script de calcul du champ « valeurConvertie ».
@+
😎18 avril 2026 à 17:42 #76556homer
Participantje deviens dingue je fais la procedure, quand j’en crée une et que les valeur se convertisent ca va
ensuite je ferme le pdf sur le type de convertion que je viens de créer et que je la réouvre elle est la et je peux l’utiliser, mais si j’ai le malheur de revenir sur un autre type de convertion, je dois fermer le pdf sur la derniere que je viens de créer pour l’utiliser et je dois effacer et recreer un type de convertion pour l’utiliser
Je dois creer sans fin ! voici mon pdf
Attachments:
You must be logged in to view attached files.18 avril 2026 à 17:48 #76558homer
Participantavec le dernier pdf envoyé on voit bien menu deroulant angle est la a l’ouverture, si on passe a un autre menu et que l’on revient dessus les enfants disparaissent !
19 avril 2026 à 11:24 #76559homer
ParticipantBonjour,
Voila impec, j’y aipassé la nuit pour le réussir !! en tout cas un grand merci !!!,
Bon dimanche et bonne semaine !!!Cordialement
Attachments:
You must be logged in to view attached files.19 avril 2026 à 18:08 #76561
MerlinMaître des clésTu devrais peut être limiter le champ de résultat à deux décimales…
19 avril 2026 à 19:15 #76562
bebarthMaître des clésbonjour,
Voila impec,
Es-tu certain que ça fonctionne bien, parce que lorsque je change la valeur à convertir il n’y a plus rien !!!
Tu devrais peut être limiter le champ de résultat à deux décimales…
Si on indique 2 décimales dans le cas de l’exemple, le résulta va donner 0 !
Il serait donc préférable d’afficher un résultat en « notation scientifique » (comme on appelle ça) si le résultat à 2 décimales. Dans mon script on modifie la fin du script :
...
else {
valeuaAffichee=util.printf("%.3f",resultat).replace(/\.?0+$/,"");
if (valeuaAffichee!=0) event.value=valeuaAffichee;
else event.value=resultat.toExponential(2);
}
}@+
😎Attachments:
You must be logged in to view attached files.19 avril 2026 à 19:44 #76564homer
ParticipantOui, j’ai par du pousser plusieurs chiffre derriere la virgule sinon j’avais 0
Je remets la page
Apres n’hesitez pas a me corriger ! c’est vous les betes du script ! lol
En tout cas encore merci !!
Attachments:
You must be logged in to view attached files.20 avril 2026 à 11:17 #76566
bebarthMaître des clésbonjour,
Ce ne doit pas être de bon fichier…@+
😎21 avril 2026 à 18:58 #76567 -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
