1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
| /** ===>>> Fonction de Calcul de la Valeur du Ratio **/
private void mCalculer_actionPerformed(ActionEvent e) {
String Modele = mModeleDesc.getText();
String Date_debut = mDateDebut.getText();
String Date_Fin = mDateFin.getText();
String Requete_Insert = RequeteInsert_Data_Ratio;
String Values = "";
Vector V_Error = new Vector();
/** Initialisation de table des Erreurs **/
InitTableRatiosErronés();
mModelRatioErronés.chargerVector(V_Error, vRatioErronesCols,vRatioErroneClasses);
if( !Modele.equals("") && !Date_debut.equals("") && !Date_Fin.equals("") ) {
/** Controle Des valeurs de dates **/
ControleDate(Date_debut, Date_Fin);
int Begin_Date = Integer.parseInt(Date_debut.split("/")[2]);
int End_Date = Integer.parseInt(Date_Fin.split("/")[2]);
/** Test Sur l'existance d'au moins un Ratio **/
if( mTableRatioTraitement.getRowCount() >= 1 ){
/** ==>> Parcour de la Table des Ratios **/
for( int i = 0; i < mTableRatioTraitement.getRowCount(); i++ ){
if( mTableRatioTraitement.getValueAt(i,0) != null ) {
boolean Choix = (Boolean)mTableRatioTraitement.getValueAt(i,0);
/** Test sur la selection d'un Ratio et l'existance d'une Societe **/
if( Choix == true && mTableSocieteTraitement.getRowCount() > 0 ){
String Code_Ratio = mTableRatioTraitement.getValueAt(i,1).toString();
/** ==>> Parcour de la Table Societe **/
for( int j = 0; j < mTableSocieteTraitement.getRowCount(); j++){
if( mTableSocieteTraitement.getValueAt(j,0) != null && (Boolean)mTableSocieteTraitement.getValueAt(j,0) == true){
String Societe = mTableSocieteTraitement.getValueAt(j,1).toString();
String Formule_Ratio = GetFormule_Ratio(Code_Ratio,Modele);
int k = 0;
goTo_While : while((Begin_Date + k) <= End_Date ) { //===>>> Marge des Dates : Insertion pour les differentes dates
int exist = IsTrouve_Ratio_Societe(Modele,Societe,Code_Ratio,Integer.toString((Begin_Date + k)));
/** ==>>> le Ratio n'est pas Calculé pour la societe **/
if( exist == 0 ) {
Pattern pattern = Pattern.compile("("+Symbols+")|("+numbers+")|("+strings+")");
Matcher matcher = pattern.matcher(Formule_Ratio);
String Evaluer_Formule = "";
String Date_Ratio = String.valueOf(Begin_Date + k);
double Valeur_Ratio = 0;
/** ===>>> Parcour de la Formule **/
while ( matcher.find() ) {
String Element = matcher.group();
String test_element = Element.trim().substring(0,1);
if( test_element.equals(":") ){
String val = GetValeur_Compte(Element.split(":")[1],Modele,Societe,Date_Ratio);
if ( val.equals("") ) {
Evaluer_Formule += "0.00";
} else {
Evaluer_Formule += val;
}
} else {
Evaluer_Formule += Element;
}
}
/** Bibliothèque du Calcul **/
Jep jep = new Jep();
try {
Requete_Insert = RequeteInsert_Data_Ratio;
Values = "";
jep.parse(Evaluer_Formule);
String valeur = jep.evaluate().toString();
/** ===>>> Cas Erreur de calcul **/
if( valeur.trim().equals("Infinity") || valeur.trim().equals("NaN") ){
Vector v = new Vector();
v.add(Code_Ratio);v.add(Societe);v.add(valeur);v.add("31/12/" +(Begin_Date + k));
V_Error.add(v);
k++;
continue goTo_While;
} else {
Valeur_Ratio = Double.parseDouble(valeur);
Values = " VALUES ("+Modele+",'"+Code_Ratio.trim()+"','"+Societe.trim()+"',TO_DATE('31/12/"+Date_Ratio.trim()+"','dd/mm/yyyy') ,"+Valeur_Ratio+")";
Requete_Insert += Values;
// System.out.print("\n Requete_Insert " + Requete_Insert + "\n\n");
boolean ok = mDBaccess.execute_req_insert_update_con_commit(Requete_Insert);
// System.out.print("\n okokokok " + ok + "\n\n");
}
}catch(JepException ex){
System.out.print( ex.toString() + "*****" + ex.getMessage() );
}
k++;
} else {
k++;
}
}// fin while
}
}
}
}
}
}
/** Remplissage de la table Errors **/
mModelRatioErronés.chargerVector(V_Error,vRatioErronesCols,vRatioErroneClasses);
mCommun14.formatTableRows(mTableRatioErronés);
mTableRatioErronés.getColumnModel().getColumn(0).setPreferredWidth(250);
mTableRatioErronés.getColumnModel().getColumn(1).setPreferredWidth(250);
mTableRatioErronés.getColumnModel().getColumn(2).setPreferredWidth(200);
mTableRatioErronés.getColumnModel().getColumn(3).setPreferredWidth(200);
} else {
JOptionPane.showMessageDialog(this,"789");
JOptionPane.showMessageDialog(this," Veuilliez Remplir Les Paramètres ","Avertissement",0);
}
} |
Partager