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
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|