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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|