Patch level : 12.0 no-patch
Files correlati : Commento : - Nuova versione Campo/Compass con gestione fasi di lavorazione git-svn-id: svn://10.65.10.50/branches/R_10_00@23411 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
09ca70d6f5
commit
f382581d05
@ -57,26 +57,30 @@ class TCampass_app : public TSkeleton_application
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
TToken_string tables;
|
TToken_string tables;
|
||||||
|
TString DSN, usr, psw;
|
||||||
const TString getFam(TString codArt) const {TString app; app << codArt[3] << codArt[4] << codArt[5]; return app; } // Restituisce la famiglia di un prodotto CODART[3,5]
|
const TString getFam(TString codArt) const {TString app; app << codArt[3] << codArt[4] << codArt[5]; return app; } // Restituisce la famiglia di un prodotto CODART[3,5]
|
||||||
const TString getGroup(TString codTab) const {TString app; app << codTab[1] << codTab[2] << codTab[3]; return app; } // Restituisce la famiglia di un prodotto CODART[3,5]
|
const TString getGroup(TString codTab) const {TString app; app << codTab[1] << codTab[2] << codTab[3]; return app; } // Restituisce la famiglia di un prodotto CODART[3,5]
|
||||||
const TString toEscape(TString val) const; // Prende una stringa e sistema i caratteri di escape
|
const TString toEscape(TString val) const; // Prende una stringa e sistema i caratteri di escape
|
||||||
const TString zeroFill(TString val) const; // Riempe di 0 se non ci sono 6 caratteri
|
const TString zeroFill(TString val) const; // Riempe di 0 se non ci sono 6 caratteri
|
||||||
|
bool setParameters(TString dsn, TString utente, TString password);
|
||||||
|
bool checkParameters(const TString& DSN, const TString& usr, const TString& psw) { TODBC_recordset connTest(""); return connTest.connect(DSN, usr, psw) ? setParameters(DSN, usr, psw) : false; }
|
||||||
//*****************************************************************
|
//*****************************************************************
|
||||||
// Funzioni per segnalare a Compass il trasferimento delle tabelle
|
// Funzioni per segnalare a Compass il trasferimento delle tabelle
|
||||||
TString startExport(const TString& DSN, const TString& usr, const TString& psw, TString prefixTables) const;
|
TString startExport(TString prefixTables) const;
|
||||||
void endExport(const TString& DSN, const TString& usr, const TString& psw, TString id) const;
|
void endExport(TString id) const;
|
||||||
//*****************************************************************
|
//*****************************************************************
|
||||||
bool emptyTables(const TString& DSN, const TString& usr, const TString& psw) const;
|
bool emptyTables(const TString& DSN, const TString& usr, const TString& psw) const;
|
||||||
TString esporta(const TString& DSN, const TString& usr, const TString& psw) const;
|
TString esporta(const TString& DSN, const TString& usr, const TString& psw) const;
|
||||||
// Funzioni di esportazione
|
// Funzioni di esportazione
|
||||||
bool a01a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const;
|
bool a01a(const TString id) const;
|
||||||
bool o01a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const;
|
bool o01a(const TString id) const;
|
||||||
bool o02a(const TString CodNum, const TString& DSN, const TString& usr, const TString& psw, const TString id) const;
|
bool o01e(const TString id) const;
|
||||||
bool o02c(const TString CodNum, const TString& DSN, const TString& usr, const TString& psw, const TString id) const;
|
bool o02a(const TString CodNum, const TString id) const;
|
||||||
bool o03a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const;
|
bool o02c(const TString CodNum, const TString id) const;
|
||||||
bool p01a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const;
|
bool o03a(const TString id) const;
|
||||||
bool p01b(const TString& DSN, const TString& usr, const TString& psw, const TString id) const;
|
bool p01a(const TString id) const;
|
||||||
bool p02a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const;
|
bool p01b(const TString id) const;
|
||||||
|
bool p02a(const TString id) const;
|
||||||
//bool o01b(const TString& DSN) const; Messa in pausa
|
//bool o01b(const TString& DSN) const; Messa in pausa
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -111,7 +115,20 @@ const TString TCampass_app::zeroFill(TString val) const
|
|||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
|
||||||
TString TCampass_app::startExport(const TString& DSN, const TString& usr, const TString& psw, TString prefixTables) const
|
bool TCampass_app::setParameters(TString dsn, TString utente, TString password)
|
||||||
|
{
|
||||||
|
// Salvo i parametri
|
||||||
|
ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "DSN", dsn);
|
||||||
|
ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "User", utente);
|
||||||
|
ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "Password", password);
|
||||||
|
DSN = dsn;
|
||||||
|
usr = utente;
|
||||||
|
psw = password;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TString TCampass_app::startExport(TString prefixTables) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
@ -129,7 +146,7 @@ TString TCampass_app::startExport(const TString& DSN, const TString& usr, const
|
|||||||
return idrunimp.as_string();
|
return idrunimp.as_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCampass_app::endExport(const TString& DSN, const TString& usr, const TString& psw, TString id) const
|
void TCampass_app::endExport(TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
sqlset.connect(DSN, usr, psw);
|
sqlset.connect(DSN, usr, psw);
|
||||||
@ -172,66 +189,72 @@ TString TCampass_app::esporta(const TString& DSN, const TString& usr, const TStr
|
|||||||
// O01B, quasi finito di implementarla, è stata messa in pausa
|
// O01B, quasi finito di implementarla, è stata messa in pausa
|
||||||
//if(!o01b(DSN)) return false;
|
//if(!o01b(DSN)) return false;
|
||||||
|
|
||||||
/*
|
|
||||||
// INIZIO A01
|
|
||||||
//TString a01; a01 << startExport(DSN, "A01");
|
|
||||||
|
|
||||||
// A01A, quasi finito di implementarla, è stata messa in pausa
|
|
||||||
//if(!a01a(DSN, a01)) return false; // A01A
|
|
||||||
|
|
||||||
//endExport(DSN, a01);
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Lo so potevo mettere DSN, usr e psw nella classe senza passarli sempre ma me ne sono reso conto dopo
|
|
||||||
|
|
||||||
TODBC_recordset sqlset("");
|
TODBC_recordset sqlset("");
|
||||||
if (!sqlset.connect(DSN, usr, psw))
|
if (!sqlset.connect(DSN, usr, psw))
|
||||||
return "Connessione fallita!";
|
return "Connessione fallita!";
|
||||||
|
|
||||||
|
// INIZIO A01
|
||||||
|
TString a01; a01 << startExport("A01");
|
||||||
|
|
||||||
|
if(!a01a(a01)) errors << "ERRORE TABELLA: A01A\n"; // O01A
|
||||||
|
|
||||||
|
endExport(a01);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// INIZIO O01
|
// INIZIO O01
|
||||||
TString o01; o01 << startExport(DSN, usr, psw, "O01");
|
TString o01; o01 << startExport("O01");
|
||||||
|
|
||||||
if(!o01a(DSN, usr, psw, o01)) errors << "ERRORE TABELLA: O01A\n"; // O01A
|
if(!o01a(o01)) errors << "ERRORE TABELLA: O01A\n"; // O01A
|
||||||
|
if(!o01e(o01)) errors << "ERRORE TABELLA: O01E\n"; // O01E
|
||||||
|
|
||||||
|
endExport(o01);
|
||||||
|
|
||||||
endExport(DSN, usr, psw, o01);
|
|
||||||
|
|
||||||
// INIZIO O02
|
// INIZIO O02
|
||||||
TString o02; o02 << startExport(DSN, usr, psw, "O02");
|
TString o02; o02 << startExport("O02");
|
||||||
|
|
||||||
if(!o02a("ORC", DSN, usr, psw, o02)) errors << "ERRORE TABELLA: O02A\n"; // O02A ORC
|
if(!o02a("ORC", o02)) errors << "ERRORE TABELLA: O02A\n"; // O02A ORC
|
||||||
if(!o02a("PRC", DSN, usr, psw, o02)) errors << "ERRORE TABELLA: O02A\n"; // O02A PRC
|
if(!o02a("PRC", o02)) errors << "ERRORE TABELLA: O02A\n"; // O02A PRC
|
||||||
if(!o02c("ORC", DSN, usr, psw, o02)) errors << "ERRORE TABELLA: O02C\n"; // O02C ORC
|
if(!o02c("ORC", o02)) errors << "ERRORE TABELLA: O02C\n"; // O02C ORC
|
||||||
if(!o02c("PRC", DSN, usr, psw, o02)) errors << "ERRORE TABELLA: O02C\n"; // O02C PRC
|
if(!o02c("PRC", o02)) errors << "ERRORE TABELLA: O02C\n"; // O02C PRC
|
||||||
|
|
||||||
endExport(DSN, usr, psw, o02);
|
endExport(o02);
|
||||||
|
|
||||||
// INIZIO O03
|
// INIZIO O03
|
||||||
TString o03; o03 << startExport(DSN, usr, psw, "O03");
|
TString o03; o03 << startExport("O03");
|
||||||
|
|
||||||
|
if(!o03a(o03)) errors << "ERRORE TABELLA: O03A\n"; // O03A
|
||||||
|
|
||||||
|
endExport(o03);
|
||||||
|
|
||||||
if(!o03a(DSN, usr, psw, o03)) errors << "ERRORE TABELLA: O03A\n"; // O03A
|
|
||||||
|
|
||||||
endExport(DSN, usr, psw, o03);
|
|
||||||
|
|
||||||
// INIZIO p01
|
// INIZIO p01
|
||||||
TString p01; p01 << startExport(DSN, usr, psw, "P01");
|
TString p01; p01 << startExport("P01");
|
||||||
|
|
||||||
|
if(!p01a(p01)) errors << "ERRORE TABELLA: P01A\n"; // P01A
|
||||||
|
if(!p01b(p01)) errors << "ERRORE TABELLA: P01B\n"; // P01B
|
||||||
|
|
||||||
|
endExport(p01);
|
||||||
|
|
||||||
if(!p01a(DSN, usr, psw, p01)) errors << "ERRORE TABELLA: P01A\n"; // P01A
|
|
||||||
if(!p01b(DSN, usr, psw, p01)) errors << "ERRORE TABELLA: P01B\n"; // P01B
|
|
||||||
|
|
||||||
endExport(DSN, usr, psw, p01);
|
|
||||||
|
|
||||||
// INIZIO p02
|
// INIZIO p02
|
||||||
TString p02; p02 << startExport(DSN, usr, psw, "P02");
|
TString p02; p02 << startExport("P02");
|
||||||
|
|
||||||
if(!p02a(DSN, usr, psw, p02)) errors << "ERRORE TABELLA: P02A\n"; // P02A
|
if(!p02a(p02)) errors << "ERRORE TABELLA: P02A\n"; // P02A
|
||||||
|
|
||||||
|
endExport(p02);
|
||||||
|
|
||||||
endExport(DSN, usr, psw, p02);
|
|
||||||
|
|
||||||
return errors;
|
return errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Non sono molto sicuro del suo funzionamento
|
// Non sono molto sicuro del suo funzionamento
|
||||||
bool TCampass_app::a01a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const
|
bool TCampass_app::a01a(const TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
@ -240,7 +263,7 @@ bool TCampass_app::a01a(const TString& DSN, const TString& usr, const TString& p
|
|||||||
TRelation rilprod(LF_RILPROD),rdoc(LF_RIGHEDOC);
|
TRelation rilprod(LF_RILPROD),rdoc(LF_RIGHEDOC);
|
||||||
int items;
|
int items;
|
||||||
TString msg("Esportazione tabella "); msg << "A01A";
|
TString msg("Esportazione tabella "); msg << "A01A";
|
||||||
TCursor curRilprod(&rilprod, "CODNUM = \"ORC\"");
|
TCursor curRilprod(&rilprod, "CODNUM = \"ORC\" && QTA >= 0");
|
||||||
|
|
||||||
items = curRilprod.items();
|
items = curRilprod.items();
|
||||||
TProgress_monitor p(items, msg);
|
TProgress_monitor p(items, msg);
|
||||||
@ -282,8 +305,8 @@ bool TCampass_app::a01a(const TString& DSN, const TString& usr, const TString& p
|
|||||||
TRectype rowRDoc = curRdoc.curr();
|
TRectype rowRDoc = curRdoc.curr();
|
||||||
// Dichiaro la stringa
|
// Dichiaro la stringa
|
||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
sqlQuery << "INSERT INTO A01A ( IKRUNIMP, FAZI, CPRD, NMOV, CMAC, QPFPRO, FSALDO ) \
|
sqlQuery << "INSERT INTO A01A ( IKRUNIMP, FAZI, CStr, CPRD, NMOV, CMAC, QPFPRO, FSALDO ) \
|
||||||
VALUES('" << id << "','U','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','1','" << rowRilprod.get("LINEA") << "','" << rowRilprod.get("QTA") << "','";
|
VALUES('" << id << "','U','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','1','" << rowRilprod.get("LINEA") << "','" << rowRilprod.get("QTA") << "','";
|
||||||
sqlQuery << (rowRilprod.get("CHIUSO") == "X" ? "1" : "0"); sqlQuery << "');";
|
sqlQuery << (rowRilprod.get("CHIUSO") == "X" ? "1" : "0"); sqlQuery << "');";
|
||||||
if(sqlset.exec(sqlQuery) != 1)
|
if(sqlset.exec(sqlQuery) != 1)
|
||||||
return false;
|
return false;
|
||||||
@ -292,7 +315,8 @@ bool TCampass_app::a01a(const TString& DSN, const TString& usr, const TString& p
|
|||||||
}
|
}
|
||||||
return sqlset.commit() == -1 ? false : true;
|
return sqlset.commit() == -1 ? false : true;
|
||||||
}
|
}
|
||||||
bool TCampass_app::o01a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const
|
|
||||||
|
bool TCampass_app::o01a(const TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
@ -369,7 +393,60 @@ bool TCampass_app::o01a(const TString& DSN, const TString& usr, const TString& p
|
|||||||
}
|
}
|
||||||
return sqlset.commit() == -1 ? false : true;
|
return sqlset.commit() == -1 ? false : true;
|
||||||
}
|
}
|
||||||
bool TCampass_app::o02a(const TString CodNum, const TString& DSN, const TString& usr, const TString& psw, const TString id) const
|
|
||||||
|
bool TCampass_app::o01e(const TString id) const
|
||||||
|
{
|
||||||
|
TODBC_recordset sqlset("", true);
|
||||||
|
// Controllo la connessione
|
||||||
|
if (!sqlset.connect(DSN, usr, psw))
|
||||||
|
return false;
|
||||||
|
TRelation doc(LF_DOC),rdoc(LF_RIGHEDOC);
|
||||||
|
int items;
|
||||||
|
TString msg("Esportazione tabella "); msg << "O01E";
|
||||||
|
// Creo il filtro per la chiave del cursore, da quel che ho capito le chiavi sono più veloci di un filtro (come è possibile?)
|
||||||
|
TRectype filtroRDoc(rdoc.curr()); filtroRDoc.put("CODNUM", "ORP1");
|
||||||
|
TCursor curRDoc(&rdoc, "", 1, &filtroRDoc, &filtroRDoc);
|
||||||
|
items = curRDoc.items();
|
||||||
|
TProgress_monitor p(items, msg);
|
||||||
|
// Adesso inserisco tutta la bella roba
|
||||||
|
for (curRDoc = 0; curRDoc.pos() < items && !p.is_cancelled(); ++curRDoc)
|
||||||
|
{
|
||||||
|
TRectype rowRDoc = curRDoc.curr();
|
||||||
|
|
||||||
|
// Vado a prendere la riga di riferimento
|
||||||
|
TRectype filtroFiltro(rdoc.curr());
|
||||||
|
if(rowRDoc.get("DACODNUM") == "ORC")
|
||||||
|
{
|
||||||
|
filtroFiltro.put("CODNUM", rowRDoc.get("DACODNUM"));
|
||||||
|
filtroFiltro.put("ANNO", rowRDoc.get("DAANNO"));
|
||||||
|
filtroFiltro.put("PROVV", rowRDoc.get("DAPROVV"));
|
||||||
|
filtroFiltro.put("NDOC", rowRDoc.get("DANDOC"));
|
||||||
|
filtroFiltro.put("NRIGA", rowRDoc.get("DAIDRIGA"));
|
||||||
|
TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro);
|
||||||
|
for (curFiltro = 0; curFiltro.pos() < curFiltro.items() && !p.is_cancelled(); ++curFiltro)
|
||||||
|
{
|
||||||
|
TRectype rowFiltro(curFiltro.curr());
|
||||||
|
// Dichiaro la stringa
|
||||||
|
TString sqlQuery;
|
||||||
|
TString codagg; codagg << rowFiltro.get("CODAGG1");
|
||||||
|
// Inserisco IIKRUNIMP, FAZI, CStr, CPRD, CART
|
||||||
|
sqlQuery << "INSERT INTO O01E ( IKRUNIMP, CPRD, CPARAM, CPARVAL ) \
|
||||||
|
VALUES('" << id << "','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','TONING','" << codagg.sub(0,5) << "');";
|
||||||
|
sqlQuery << "INSERT INTO O01E ( IKRUNIMP, CPRD, CPARAM, CPARVAL ) \
|
||||||
|
VALUES('" << id << "','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','CALING','" << codagg.sub(6) << "');";
|
||||||
|
codagg = rowFiltro.get("CODAGG2");
|
||||||
|
sqlQuery << "INSERT INTO O01E ( IKRUNIMP, CPRD, CPARAM, CPARVAL ) \
|
||||||
|
VALUES('" << id << "','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','TONUSC','" << codagg.sub(0,5) << "');";
|
||||||
|
sqlQuery << "INSERT INTO O01E ( IKRUNIMP, CPRD, CPARAM, CPARVAL ) \
|
||||||
|
VALUES('" << id << "','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','CALUSC','" << codagg.sub(6) << "');";
|
||||||
|
if(sqlset.exec(sqlQuery) != 1)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sqlset.commit() == -1 ? false : true;
|
||||||
|
}
|
||||||
|
bool TCampass_app::o02a(const TString CodNum, const TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
@ -422,7 +499,7 @@ bool TCampass_app::o02a(const TString CodNum, const TString& DSN, const TString&
|
|||||||
}
|
}
|
||||||
return sqlset.commit() == -1 ? false : true;
|
return sqlset.commit() == -1 ? false : true;
|
||||||
}
|
}
|
||||||
bool TCampass_app::o02c(const TString CodNum, const TString& DSN, const TString& usr, const TString& psw, const TString id) const
|
bool TCampass_app::o02c(const TString CodNum, const TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
@ -473,7 +550,7 @@ bool TCampass_app::o02c(const TString CodNum, const TString& DSN, const TString&
|
|||||||
}
|
}
|
||||||
return sqlset.commit() == -1 ? false : true;
|
return sqlset.commit() == -1 ? false : true;
|
||||||
}
|
}
|
||||||
bool TCampass_app::o03a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const
|
bool TCampass_app::o03a(const TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
@ -507,7 +584,7 @@ bool TCampass_app::o03a(const TString& DSN, const TString& usr, const TString& p
|
|||||||
}
|
}
|
||||||
return sqlset.commit() == -1 ? false : true;
|
return sqlset.commit() == -1 ? false : true;
|
||||||
}
|
}
|
||||||
bool TCampass_app::p01a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const
|
bool TCampass_app::p01a(const TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
@ -610,18 +687,24 @@ bool TCampass_app::p01a(const TString& DSN, const TString& usr, const TString& p
|
|||||||
}
|
}
|
||||||
return sqlset.commit() == -1 ? false : true;
|
return sqlset.commit() == -1 ? false : true;
|
||||||
}
|
}
|
||||||
bool TCampass_app::p01b(const TString& DSN, const TString& usr, const TString& psw, const TString id) const
|
bool TCampass_app::p01b(const TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
if (!sqlset.connect(DSN, usr, psw))
|
if (!sqlset.connect(DSN, usr, psw))
|
||||||
return false;
|
return false;
|
||||||
TRelation anamag(LF_ANAMAG);
|
TRelation anamag(LF_ANAMAG), tab(LF_TAB);
|
||||||
int items;
|
int items, itemsTab;
|
||||||
TString msg("Esportazione tabella "); msg << "P01B";
|
TString msg("Esportazione tabella "); msg << "P01B";
|
||||||
TCursor curAna(&anamag, "USER3 != \"\"");
|
// Anamag
|
||||||
|
TCursor curAna(&anamag);
|
||||||
items = curAna.items();
|
items = curAna.items();
|
||||||
|
// Tab
|
||||||
|
|
||||||
|
|
||||||
TProgress_monitor p(items, msg);
|
TProgress_monitor p(items, msg);
|
||||||
|
|
||||||
|
|
||||||
// Adesso inserisco tutta la bella roba
|
// Adesso inserisco tutta la bella roba
|
||||||
for (curAna = 0; curAna.pos() < items && !p.is_cancelled(); ++curAna)
|
for (curAna = 0; curAna.pos() < items && !p.is_cancelled(); ++curAna)
|
||||||
{
|
{
|
||||||
@ -636,15 +719,39 @@ bool TCampass_app::p01b(const TString& DSN, const TString& usr, const TString& p
|
|||||||
// Dichiaro la stringa
|
// Dichiaro la stringa
|
||||||
TString sqlQuery;
|
TString sqlQuery;
|
||||||
|
|
||||||
|
if(rowAna.get("USER3") != "")
|
||||||
|
{
|
||||||
// Inserisco Tutto
|
// Inserisco Tutto
|
||||||
sqlQuery << "INSERT INTO P01B ( IKRUNIMP, CStr, CART, CPARAM, CPARVAL ) \
|
sqlQuery << "INSERT INTO P01B ( IKRUNIMP, CStr, CART, CPARAM, CPARVAL ) \
|
||||||
VALUES('" << id << "','DBS','" << rowAna.get("CODART") << "','MISREA','" << rowAna.get("USER3") << "x"<< rowAna.get("USER4") << "');";
|
VALUES('" << id << "','DBS','" << toEscape(rowAna.get("CODART")) << "','MISREA','" << rowAna.get("USER3") << "x"<< rowAna.get("USER4") << "');";
|
||||||
if(sqlset.exec(sqlQuery) != 1)
|
}
|
||||||
|
|
||||||
|
TString anamagCod(rowAna.get("CODART")), filtroCodTab;
|
||||||
|
filtroCodTab << "3" << anamagCod.sub(6,12);
|
||||||
|
// Tab *******************************************************************************************************************************************************
|
||||||
|
// Filtri
|
||||||
|
TRectype filtroTab(tab.curr());
|
||||||
|
filtroTab.put("COD","GCA");
|
||||||
|
filtroTab.put("CODTAB",filtroCodTab);
|
||||||
|
// Cursore
|
||||||
|
TCursor curTab(&tab, "", 1, &filtroTab, &filtroTab);
|
||||||
|
// Items
|
||||||
|
itemsTab = curTab.items();
|
||||||
|
if (itemsTab > 0)
|
||||||
|
bool yeah = true;
|
||||||
|
for (curTab = 0; curTab.pos() < itemsTab && !p.is_cancelled(); ++curTab)
|
||||||
|
{
|
||||||
|
TRectype rowTab = curTab.curr();
|
||||||
|
sqlQuery << "INSERT INTO P01B ( IKRUNIMP, CStr, CART, CPARAM, CPARVAL ) \
|
||||||
|
VALUES('" << id << "','DBS','" << toEscape(rowAna.get("CODART")) << "','FORING','" << rowTab.get("S0") << "');";
|
||||||
|
}
|
||||||
|
if(sqlQuery != "" && sqlset.exec(sqlQuery) != 1)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sqlset.commit() == -1 ? false : true;
|
return sqlset.commit() == -1 ? false : true;
|
||||||
}
|
}
|
||||||
bool TCampass_app::p02a(const TString& DSN, const TString& usr, const TString& psw, const TString id) const
|
bool TCampass_app::p02a(const TString id) const
|
||||||
{
|
{
|
||||||
TODBC_recordset sqlset("", true);
|
TODBC_recordset sqlset("", true);
|
||||||
// Controllo la connessione
|
// Controllo la connessione
|
||||||
@ -685,67 +792,24 @@ bool TCampass_app::p02a(const TString& DSN, const TString& usr, const TString& p
|
|||||||
void TCampass_app::main_loop()
|
void TCampass_app::main_loop()
|
||||||
{
|
{
|
||||||
TCampass_msk m;
|
TCampass_msk m;
|
||||||
bool batch = false;
|
|
||||||
int mins = 1;
|
|
||||||
|
|
||||||
if (argc() > 2)
|
|
||||||
{
|
|
||||||
const TFixed_string a(argv(2));
|
|
||||||
|
|
||||||
batch = toupper(a[1]) == 'M';
|
|
||||||
mins = atoi(a.right(1));
|
|
||||||
if (mins <1)
|
|
||||||
mins = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (batch)
|
|
||||||
{
|
|
||||||
const WINDOW task =TASK_WIN;
|
|
||||||
WINDOW tray = xvt_trayicon_create(task, 10212, name()); // Washing machine
|
|
||||||
|
|
||||||
if (tray != NULL_WIN)
|
|
||||||
xvt_vobj_set_visible(task, FALSE);
|
|
||||||
xvt_timer_create(m.win(), mins * 60 * 1000L);
|
|
||||||
while (m.run() == K_ENTER)
|
while (m.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
const TString& DSN = m.get(F_DSN);
|
const TString& DSN = m.get(F_DSN);
|
||||||
const TString& usr = m.get(F_USR);
|
const TString& usr = m.get(F_USR);
|
||||||
const TString& psw = m.get(F_PWD);
|
const TString& psw = m.get(F_PWD);
|
||||||
// Non ho la più pallida idea di cosa siano ste robe
|
if(checkParameters(DSN, usr, psw))
|
||||||
xvt_vobj_set_visible(task, TRUE);
|
|
||||||
TString errors; errors << esporta(DSN, usr, psw);
|
|
||||||
if(errors == "")
|
|
||||||
{
|
{
|
||||||
message_box("Esportazione effettuata correttamente!");
|
|
||||||
// Salvo i parametri
|
|
||||||
ini_set_string(CONFIG_DITTA, "Campo_Compass", "DSN", DSN);
|
|
||||||
ini_set_string(CONFIG_DITTA, "Campo_Compass", "User", usr);
|
|
||||||
ini_set_string(CONFIG_DITTA, "Campo_Compass", "Password", psw);
|
|
||||||
}
|
|
||||||
else message_box(errors);
|
|
||||||
xvt_vobj_set_visible(task, FALSE);
|
|
||||||
}
|
|
||||||
xvt_trayicon_destroy(tray);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
while (m.run() == K_ENTER)
|
|
||||||
{
|
|
||||||
const TString& DSN = m.get(F_DSN);
|
|
||||||
const TString& usr = m.get(F_USR);
|
|
||||||
const TString& psw = m.get(F_PWD);
|
|
||||||
// Chiamo la funzione globale esporta
|
// Chiamo la funzione globale esporta
|
||||||
TString errors; errors << esporta(DSN, usr, psw);
|
TString errors; errors << esporta(DSN, usr, psw);
|
||||||
if(errors == "")
|
if(errors == "")
|
||||||
{
|
{
|
||||||
message_box("Esportazione effettuata correttamente!");
|
message_box("Esportazione effettuata correttamente!");
|
||||||
// Salvo i parametri
|
// Salvo i parametri
|
||||||
ini_set_string(CONFIG_DITTA, "Campo_Compass", "DSN", DSN);
|
|
||||||
ini_set_string(CONFIG_DITTA, "Campo_Compass", "User", usr);
|
|
||||||
ini_set_string(CONFIG_DITTA, "Campo_Compass", "Password", psw);
|
|
||||||
}
|
}
|
||||||
else message_box(errors);
|
else message_box(errors);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
message_box("Fallita connessione");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user