Accueil > > > CALCULS RAYNAUX V2
CALCULS RAYNAUX V2
Information sur la source
Description
c'est un script pour Indesign CS1 à CS4 offrant la possibilité d'effectuer des calculs dans un tableau. - Soit sur des cellules sélectionnées - Soit sur toutes les lignes du tableau -Soit sur toutes les colonnes Il a été testé sur Mac avec succès. Un petit descriptif est dans le zip.
Source
- //CALCULS RAYNAUX v2.0.js
- //InDesign CS3 JavaScript
- /*
- BCV Création Team 2009
- */
- //
-
- main();
-
- function main(){
- var myObjectList = new Array;
- if (app.documents.length != 0){
- if (app.selection.length != 0){
- for(var myCounter = 0;myCounter < app.selection.length; myCounter++){
- switch (app.selection[myCounter].constructor.name){
- case "Rectangle":
- case "Oval":
- case "Polygon":
- case "GraphicLine":
- case "TextFrame":
- myObjectList.push(app.selection[myCounter]);
- break;
- }
- }
- if (myObjectList.length == 0){
- NouvelleFenetre(myObjectList);
- }
- else{
- alert ("Vous devez sélectionner un groupe de valeurs et réessayer");
- }
- }
- else{
- alert ("Vous devez sélectionner un groupe de valeurs et réessayer");
- }
- }
- else{
- alert ("Vous devez ouvrir un document, sélectionner un groupe de valeurs et réessayer.");
- }
- }
-
- function NouvelleFenetre(){
- var Fenetre = app.dialogs.add({name:"CALCULS RAYNAUX v2.0"});
- var ListeDeroulantSens = ["les cellules selectionnées", "toutes les lignes", "toutes les colonnes"];
- var ListeDeroulantOperation = ["Addition", "Soustraction", "Multiplication","Division"];
- var ListeDeroulantOption = ["Ajouter au résultat :", "Soustraire au résultat :", "Multiplier le résultat par :" ,"Diviser le résultat par :","Appliquer un % au résultat :","Ajouter un % au résultat :","Soustraire un % au résultat :"];
- var ListeDeroulantDevise = ["¤","$","£","¥",""]
-
- with(Fenetre){
- with(dialogColumns.add()){
-
- var ChoixOperation = enablingGroups.add({staticLabel:"Opération :", checkedState:true});
- with (ChoixOperation){
- with(borderPanels.add()){
- with(dialogColumns.add()){
- var MenuDeroulantOperation = dropdowns.add({stringList:ListeDeroulantOperation, selectedIndex:0});
- }
- }
- }
-
- var ChoixSens = enablingGroups.add({staticLabel:"A effectuer sur :", checkedState:true});
- with (ChoixSens){
- with(borderPanels.add()){
- with(dialogColumns.add()){
- var MenuDeroulantSens = dropdowns.add({stringList:ListeDeroulantSens, selectedIndex:0});
- }
- }
- }
-
- var ChoixOption = enablingGroups.add({staticLabel:"Option :", checkedState:false});
- with (ChoixOption){
- with(borderPanels.add()){
- with(dialogColumns.add()){
- var MenuDeroulantOption = dropdowns.add({stringList:ListeDeroulantOption, selectedIndex:0});
- }
- with (dialogColumns.add()){
- var CaseValeurOption = realEditboxes.add();
- }
- }
- }
- var ChoixDevise = enablingGroups.add({staticLabel:"Devise :", checkedState:false});
- with (ChoixDevise){
- with(borderPanels.add()){
- with(dialogColumns.add()){
- var MenuDeroulantDevise = dropdowns.add({stringList:ListeDeroulantDevise, selectedIndex:0});
- }
- }
- }
- with(borderPanels.add()){
- with(dialogColumns.add()){
- var ChoixVide = checkboxControls.add({staticLabel:"Ignorer les résultats nuls", checkedState:false});
- }
- }
-
- }
- }
-
- var MesChoix = Fenetre.show();
- if (MesChoix == true){
- var Sens = MenuDeroulantSens.selectedIndex;
- var Operation = MenuDeroulantOperation.selectedIndex;
- var Option = MenuDeroulantOption.selectedIndex;
- var ValeurOption = CaseValeurOption.editValue;
- var ValidationOption = ChoixOption.checkedState;
- var ValidationDevise = ChoixDevise.checkedState;
- var OptionDevise = MenuDeroulantDevise.selectedIndex;
- var ValidationVide = ChoixVide.checkedState;
- Fenetre.destroy();
- Calcul(Sens,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide);
- }
- else{
- Fenetre.destroy();
- }
- }
-
-
- function Calcul(Sens,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide){
- var Cellule = app.selection[0];
-
- var Tableau = Cellule.parent;
- if (Tableau.constructor.name == "Cell"){
- Cellule = Cellule.parent;
- Tableau = Tableau.parent;
- var NbreCellule = app.selection[0].length;
- }
- var NbreLignes = Tableau.rows.length;
- var NbreColonnes = Tableau.columns.length;
- var NomCellule = Cellule.name;
- var Ligne = NomCellule.split(":")[1];
- var Colonne = NomCellule.split(":")[0];
- var Dernier = -1;
- var Premier = 0;
-
- if (Sens == 0){
- if (NbreCellule == 0){
- app.select(Tableau.columns[Number(Colonne)].cells.itemByRange(Number(Ligne),Number(Ligne)));
- }
- TotalCellules(app.selection[0].cells,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide);
- }
- else{
-
- if (Sens == 1){
- for (var j =0; NbreColonnes >= j+1 ; j ++){
- app.select(Tableau.rows[Number(j)].cells.itemByRange(Number(Premier),Dernier));
- TotalCellules(app.selection[0].cells,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide);
- }
- }
- else{
- for (var j =0; NbreLignes >= j+1 ; j ++){
- app.select(Tableau.columns[Number(j)].cells.itemByRange(Number(Premier),Dernier));
- TotalCellules(app.selection[0].cells,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide);
- }
- }
- }
- }
-
-
- function TotalCellules(cells,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide){
-
- for (var k = 1; cells.length > k+1; k++){
- if (cells[k].texts[0].contents == "0" && Operation==3){
- if (!confirm("ATTENTION : division par 0 !\n Voulez-vous continuer ?")){
- return;
- }
- }
- }
- if (ValidationOption == true && ValeurOption == 0 && (Option == 2 || Option == 3 || Option ==4)){
- if (!confirm("ATTENTION : Vous n'avez pas donné de valeur à l'option\n Vous risquez une multiplication ou pire, une division par 0 !\n\n Voulez-vous continuer ?")){
- return;
- }
- }
- if (cells[-1].texts[0].contents != ""){
- if (!confirm("Ecraser le contenu de la dernière cellule ?")){
- return;
- }
- }
- var Total = ParseVirgule(cells[0].texts[0].contents);
- for (var j = 1; cells.length > j+1; j++){
- try{
- if (Operation==0) { Total += ParseVirgule(cells[j].texts[0].contents); }
- if (Operation==1) { Total = Total - (ParseVirgule(cells[j].texts[0].contents)); }
- if (Operation==2) { Total = Total * (ParseVirgule(cells[j].texts[0].contents)); }
- if (Operation==3) { Total = Total / (ParseVirgule(cells[j].texts[0].contents)); }
- }
- catch (e) {}
- }
- if (ValidationOption == true){
- if (Option == 0) {Total_edit=Total + ValeurOption;}
- if (Option == 1) {Total_edit=Total - ValeurOption;}
- if (Option == 2) {Total_edit=Total * ValeurOption;}
- if (Option == 3) {Total_edit=Total / ValeurOption;}
- if (Option == 4) {Total_edit=(Total * ValeurOption)/100; }
- if (Option == 5) {Total_edit=Total + ((Total * ValeurOption)/100); }
- if (Option == 6) {Total_edit=Total - ((Total * ValeurOption)/100); }
- }
- else{Total_edit=Total;}
- //["¤","$","£","¥",""]
- if (ValidationDevise == true){
- if (OptionDevise == 0) {Devise =" ¤";}
- if (OptionDevise == 1) {Devise =" $";}
- if (OptionDevise == 2) {Devise =" £";}
- if (OptionDevise == 3) {Devise =" ¥";}
- if (OptionDevise == 4) {Devise =" ";}
- }
- else{Devise="";}
- var text = Total_edit.toString();
- var MaReg = new RegExp("[.]","");
- var Resultat = text.replace(MaReg,",");
- if (ValidationVide == 1 && Resultat == 0){
- var Resultat = "";
- }
- cells[-1].texts[0].contents = Resultat+Devise;
- }
-
-
- function ParseVirgule(Nombre){
- Nombre=Nombre.split("");
- for (var i=Nombre.length-1;i>=0;i--){
- if(isNaN(Nombre[i])){
- if (Nombre[i]==","){
- Nombre [i]=".";
- }
-
- if (Nombre[i]!="."){
- Nombre.splice(i,1);
- }
- }
- }
- Nombre=Nombre.join("");
- if(Nombre!=""){
- return parseFloat(Nombre);
- }
- return 0;
- }
-
-
- function IsInArray(item,array){
- for(var i=0;i<array.length;i++){
- if(array[i]==item){
- return true
- }
- }
- return false;
- }
//CALCULS RAYNAUX v2.0.js
//InDesign CS3 JavaScript
/*
BCV Création Team 2009
*/
//
main();
function main(){
var myObjectList = new Array;
if (app.documents.length != 0){
if (app.selection.length != 0){
for(var myCounter = 0;myCounter < app.selection.length; myCounter++){
switch (app.selection[myCounter].constructor.name){
case "Rectangle":
case "Oval":
case "Polygon":
case "GraphicLine":
case "TextFrame":
myObjectList.push(app.selection[myCounter]);
break;
}
}
if (myObjectList.length == 0){
NouvelleFenetre(myObjectList);
}
else{
alert ("Vous devez sélectionner un groupe de valeurs et réessayer");
}
}
else{
alert ("Vous devez sélectionner un groupe de valeurs et réessayer");
}
}
else{
alert ("Vous devez ouvrir un document, sélectionner un groupe de valeurs et réessayer.");
}
}
function NouvelleFenetre(){
var Fenetre = app.dialogs.add({name:"CALCULS RAYNAUX v2.0"});
var ListeDeroulantSens = ["les cellules selectionnées", "toutes les lignes", "toutes les colonnes"];
var ListeDeroulantOperation = ["Addition", "Soustraction", "Multiplication","Division"];
var ListeDeroulantOption = ["Ajouter au résultat :", "Soustraire au résultat :", "Multiplier le résultat par :" ,"Diviser le résultat par :","Appliquer un % au résultat :","Ajouter un % au résultat :","Soustraire un % au résultat :"];
var ListeDeroulantDevise = ["¤","$","£","¥",""]
with(Fenetre){
with(dialogColumns.add()){
var ChoixOperation = enablingGroups.add({staticLabel:"Opération :", checkedState:true});
with (ChoixOperation){
with(borderPanels.add()){
with(dialogColumns.add()){
var MenuDeroulantOperation = dropdowns.add({stringList:ListeDeroulantOperation, selectedIndex:0});
}
}
}
var ChoixSens = enablingGroups.add({staticLabel:"A effectuer sur :", checkedState:true});
with (ChoixSens){
with(borderPanels.add()){
with(dialogColumns.add()){
var MenuDeroulantSens = dropdowns.add({stringList:ListeDeroulantSens, selectedIndex:0});
}
}
}
var ChoixOption = enablingGroups.add({staticLabel:"Option :", checkedState:false});
with (ChoixOption){
with(borderPanels.add()){
with(dialogColumns.add()){
var MenuDeroulantOption = dropdowns.add({stringList:ListeDeroulantOption, selectedIndex:0});
}
with (dialogColumns.add()){
var CaseValeurOption = realEditboxes.add();
}
}
}
var ChoixDevise = enablingGroups.add({staticLabel:"Devise :", checkedState:false});
with (ChoixDevise){
with(borderPanels.add()){
with(dialogColumns.add()){
var MenuDeroulantDevise = dropdowns.add({stringList:ListeDeroulantDevise, selectedIndex:0});
}
}
}
with(borderPanels.add()){
with(dialogColumns.add()){
var ChoixVide = checkboxControls.add({staticLabel:"Ignorer les résultats nuls", checkedState:false});
}
}
}
}
var MesChoix = Fenetre.show();
if (MesChoix == true){
var Sens = MenuDeroulantSens.selectedIndex;
var Operation = MenuDeroulantOperation.selectedIndex;
var Option = MenuDeroulantOption.selectedIndex;
var ValeurOption = CaseValeurOption.editValue;
var ValidationOption = ChoixOption.checkedState;
var ValidationDevise = ChoixDevise.checkedState;
var OptionDevise = MenuDeroulantDevise.selectedIndex;
var ValidationVide = ChoixVide.checkedState;
Fenetre.destroy();
Calcul(Sens,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide);
}
else{
Fenetre.destroy();
}
}
function Calcul(Sens,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide){
var Cellule = app.selection[0];
var Tableau = Cellule.parent;
if (Tableau.constructor.name == "Cell"){
Cellule = Cellule.parent;
Tableau = Tableau.parent;
var NbreCellule = app.selection[0].length;
}
var NbreLignes = Tableau.rows.length;
var NbreColonnes = Tableau.columns.length;
var NomCellule = Cellule.name;
var Ligne = NomCellule.split(":")[1];
var Colonne = NomCellule.split(":")[0];
var Dernier = -1;
var Premier = 0;
if (Sens == 0){
if (NbreCellule == 0){
app.select(Tableau.columns[Number(Colonne)].cells.itemByRange(Number(Ligne),Number(Ligne)));
}
TotalCellules(app.selection[0].cells,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide);
}
else{
if (Sens == 1){
for (var j =0; NbreColonnes >= j+1 ; j ++){
app.select(Tableau.rows[Number(j)].cells.itemByRange(Number(Premier),Dernier));
TotalCellules(app.selection[0].cells,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide);
}
}
else{
for (var j =0; NbreLignes >= j+1 ; j ++){
app.select(Tableau.columns[Number(j)].cells.itemByRange(Number(Premier),Dernier));
TotalCellules(app.selection[0].cells,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide);
}
}
}
}
function TotalCellules(cells,Operation,Option,ValeurOption,ValidationOption,ValidationDevise,OptionDevise,ValidationVide){
for (var k = 1; cells.length > k+1; k++){
if (cells[k].texts[0].contents == "0" && Operation==3){
if (!confirm("ATTENTION : division par 0 !\n Voulez-vous continuer ?")){
return;
}
}
}
if (ValidationOption == true && ValeurOption == 0 && (Option == 2 || Option == 3 || Option ==4)){
if (!confirm("ATTENTION : Vous n'avez pas donné de valeur à l'option\n Vous risquez une multiplication ou pire, une division par 0 !\n\n Voulez-vous continuer ?")){
return;
}
}
if (cells[-1].texts[0].contents != ""){
if (!confirm("Ecraser le contenu de la dernière cellule ?")){
return;
}
}
var Total = ParseVirgule(cells[0].texts[0].contents);
for (var j = 1; cells.length > j+1; j++){
try{
if (Operation==0) { Total += ParseVirgule(cells[j].texts[0].contents); }
if (Operation==1) { Total = Total - (ParseVirgule(cells[j].texts[0].contents)); }
if (Operation==2) { Total = Total * (ParseVirgule(cells[j].texts[0].contents)); }
if (Operation==3) { Total = Total / (ParseVirgule(cells[j].texts[0].contents)); }
}
catch (e) {}
}
if (ValidationOption == true){
if (Option == 0) {Total_edit=Total + ValeurOption;}
if (Option == 1) {Total_edit=Total - ValeurOption;}
if (Option == 2) {Total_edit=Total * ValeurOption;}
if (Option == 3) {Total_edit=Total / ValeurOption;}
if (Option == 4) {Total_edit=(Total * ValeurOption)/100; }
if (Option == 5) {Total_edit=Total + ((Total * ValeurOption)/100); }
if (Option == 6) {Total_edit=Total - ((Total * ValeurOption)/100); }
}
else{Total_edit=Total;}
//["¤","$","£","¥",""]
if (ValidationDevise == true){
if (OptionDevise == 0) {Devise =" ¤";}
if (OptionDevise == 1) {Devise =" $";}
if (OptionDevise == 2) {Devise =" £";}
if (OptionDevise == 3) {Devise =" ¥";}
if (OptionDevise == 4) {Devise =" ";}
}
else{Devise="";}
var text = Total_edit.toString();
var MaReg = new RegExp("[.]","");
var Resultat = text.replace(MaReg,",");
if (ValidationVide == 1 && Resultat == 0){
var Resultat = "";
}
cells[-1].texts[0].contents = Resultat+Devise;
}
function ParseVirgule(Nombre){
Nombre=Nombre.split("");
for (var i=Nombre.length-1;i>=0;i--){
if(isNaN(Nombre[i])){
if (Nombre[i]==","){
Nombre [i]=".";
}
if (Nombre[i]!="."){
Nombre.splice(i,1);
}
}
}
Nombre=Nombre.join("");
if(Nombre!=""){
return parseFloat(Nombre);
}
return 0;
}
function IsInArray(item,array){
for(var i=0;i<array.length;i++){
if(array[i]==item){
return true
}
}
return false;
}
Conclusion
Une petite chose bien utile(je crois), merci de me rapporter les (éventuels) bugs, et de me dire si tout fonctionne sur PC. ET si vous avez des suggestions pour enrichir "la chose " ...
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Calculs javascript [ par nikeman13 ]
Bonjour ! J'aimerais mettre sur mon site un petit système de calculs . Voila ce que je veux faire : Quantité d'objet 1 voulu [____] Quantité d'objet 2
Redimensionnement de tableaux sous javascript/netscape [ par Blasteur ]
Bonjour à tous!Je souhaite redimensionner dynamiquement un tableau (du nom de 'CESSION') grâce à une fonction javascript.Le problème c'est que le code
javascript, RTE et tableaux [ par mondokwondo ]
Bonjour a tous! voila je suis tres novice en javascript mais je reprend en ce moment un RTE (rich text editor) orienté WYSIWYG et seul un probleme ent
Bug dans les calculs javascript? [ par fr64 ]
Bonjour,J'essaie de faire le calcul suivant en javascript (par exemple dans la console javascript de Firefox):1*8.86+2*15.31Le résultat est surpr
y'a il un lien entre php et javascript? [ par rachidphp93 ]
bonjour, je voudrai faire tout les calculs et les contrôles avec javascript, sauf que : quand j'interroge une base de donnee je suis obligé
Erreur T_Var dans ma fonction javascript [ par raven44 ]
Bonjour à tous,Je n'arrive pas à me débarasser de cette erreur T_var dans mon script : Que signifie t'elle ? le but de ce script des de
du php dans javascript [ par nougitch ]
Bonjour à tous, J'aimerais connaître les règles d'insertion de variables PHP dans une fonction JAVASCRIPT.En faisant ceci, cela ne
comment introduire du php dans javascript [ par rachidphp93 ]
bonjour tout le monde;je voudrais interoger une bd; j'appel une fonction javascript et dans la fonction apres des insctruction en javascript,
question help meee [ par termifr ]
bonjour voila sur une de mes pages je met une box ma question plutot simple il y a t'il un equivalen
utiliser un script dans un autre script [ par xav20 ]
bonjour a tous, je suis un nouveau webmaster, je recherche un moyen de faire marcher un javascript dans un autre... je m'explique :je voudrai rendre i
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
FERMER LA PAGEFERMER LA PAGE par bydouille
Cliquez pour lire la suite par bydouille
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|