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
| /** ===>>> 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");
// Insertion dans la table 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
}
}
}
}
}
} |
Partager