abracadabraPDF › Forums › PDF – Général › Tableau de conversion › Répondre à : Tableau de conversion
bonjour,
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);
}
@+
😎
