From 51ad4ae994566e67341c65d58405b352a037ba81 Mon Sep 17 00:00:00 2001 From: mtollari Date: Mon, 24 Oct 2016 16:05:49 +0000 Subject: [PATCH] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:=2012.?= =?UTF-8?q?0=20no-patch=20Files=20correlati=20=20=20=20=20:=20Commento=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20:=20Inizio=20sviluppo=20person?= =?UTF-8?q?alizzazione=20Campo/Compass=20-=20Caricamento=20tutte=20le=20ta?= =?UTF-8?q?belle=20tranne=20A01A=20(non=20sono=20sicuro=20funzioni=20al=20?= =?UTF-8?q?100%),=20le=20tabelle=20001B/C=20sono=20state=20momentaneamente?= =?UTF-8?q?=20sospese=20-=20Preparate=20funzioni=20per=20comunicare=20il?= =?UTF-8?q?=20trasferimento=20di=20dati=20a=20Compass=20-=20Aggiunta=20fun?= =?UTF-8?q?zione=20zeroFill=20per=20sistemare=20i=20codici=20pi=C3=B9=20co?= =?UTF-8?q?rti=20di=206=20caratteri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://10.65.10.50/branches/R_10_00@23385 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- src/ca/ca2600.cpp | 446 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 426 insertions(+), 20 deletions(-) diff --git a/src/ca/ca2600.cpp b/src/ca/ca2600.cpp index 8396d0592..a9ffbdb0a 100644 --- a/src/ca/ca2600.cpp +++ b/src/ca/ca2600.cpp @@ -98,14 +98,27 @@ class TCampass_app : public TSkeleton_application protected: TToken_string tables; 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 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 + //***************************************************************** + // Funzioni per segnalare a Compass il trasferimento delle tabelle + TString startExport(const TString& DSN, TString prefixTables) const; + void endExport(const TString& DSN, TString id) const; + //***************************************************************** bool create_table(const TString& DSN, TIsam_handle lf) const; bool emptyTables(const TString& DSN) const; bool esporta(const TString& DSN, const TDate& datef, const TDate& datet) const; // Funzioni di esportazione - bool o02a(const TString& DSN) const; - bool o03a(const TString& DSN) const; - bool p01a(const TString& DSN) const; + bool a01a(const TString& DSN, const TString id) const; + bool o01a(const TString& DSN, const TString id) const; + bool o02a(const TString& DSN, const TString id) const; + bool o02c(const TString& DSN, const TString id) const; + bool o03a(const TString& DSN, const TString id) const; + bool p01a(const TString& DSN, const TString id) const; + bool p01b(const TString& DSN, const TString id) const; + bool p02a(const TString& DSN, const TString id) const; + //bool o01b(const TString& DSN) const; Messa in pausa public: virtual void main_loop(); @@ -129,6 +142,44 @@ const TString TCampass_app::toEscape(TString val) const } return app; } + +const TString TCampass_app::zeroFill(TString val) const +{ + TString app; + if (6 - val.len() > 0) + app.fill('0', 6 - val.len()); + app << val; + return app; +} + +TString TCampass_app::startExport(const TString& DSN, TString prefixTables) const +{ + TODBC_recordset sqlset("", true); + // Controllo la connessione + if (!sqlset.connect(DSN)) + return ""; + + //Preparo la query + TString sqlQuery; sqlQuery << "INSERT INTO RunImp (CFLUSSO, DWINI) VALUES ('" << prefixTables << "',CURRENT_TIMESTAMP);"; + TString selectString; selectString << "SELECT TOP 1 IDRUNIMP FROM RunImp ORDER BY IDRUNIMP DESC"; + sqlset.exec(sqlQuery); + sqlset.commit(); + sqlset.exec(selectString); + sqlset.move_next(); + TVariant idrunimp = sqlset.get("IDRUNIMP"); + return idrunimp.as_string(); +} + +void TCampass_app::endExport(const TString& DSN, TString id) const +{ + TODBC_recordset sqlset("", true); + sqlset.connect(DSN); + //Preparo la query + TString sqlQuery; sqlQuery << "UPDATE RunImp SET DWEND = CURRENT_TIMESTAMP WHERE IDRUNIMP = '" << id << "'"; + sqlset.exec(sqlQuery); + sqlset.commit(); +} + bool TCampass_app::emptyTables(const TString& DSN) const { TODBC_recordset sqlset(""); @@ -155,18 +206,199 @@ bool TCampass_app::esporta(const TString& DSN, const TDate& datef, const TDate& // Innanzitutto svuoto le tabelle if(!emptyTables(DSN)) return false; - // Adesso inizio a riempirle - // O02A - if(!o02a(DSN)) return false; - // O03A - if(!o03a(DSN)) return false; - // P01A - if(!p01a(DSN)) return false; + // Adesso inizio a popolarle + + // O01B, quasi finito di implementarla, è stata messa in pausa + //if(!o01b(DSN)) return false; + + // INIZIO A01 + TString a01; a01 << startExport(DSN, "A01"); + + //if(!a01a(DSN, a01)) return false; // A01A + + endExport(DSN, a01); + + + // INIZIO O01 + TString o01; o01 << startExport(DSN, "O01"); + + //if(!o01a(DSN, o01)) return false; // O01A + + endExport(DSN, o01); + + // INIZIO O02 + TString o02; o02 << startExport(DSN, "O02"); + //if(!o02a(DSN, o02)) return false; // O02A + if(!o02c(DSN, o02)) return false; // O02C + + endExport(DSN, o02); + + // INIZIO O03 + TString o03; o03 << startExport(DSN, "O03"); + + //if(!o03a(DSN, o03)) return false; // O03A + + endExport(DSN, o03); + + // INIZIO p01 + TString p01; p01 << startExport(DSN, "P01"); + + //if(!p01a(DSN, p01)) return false; // P01A + //if(!p01b(DSN, p01)) return false; // P01B + + endExport(DSN, p01); + + // INIZIO p02 + TString p02; p02 << startExport(DSN, "P02"); + + //if(!p02a(DSN, p02)) return false; // P02A + + endExport(DSN, p02); return true; } -bool TCampass_app::o02a(const TString& DSN) const + +// Non sono molto sicuro del suo funzionamento +bool TCampass_app::a01a(const TString& DSN, const TString id) const +{ + TODBC_recordset sqlset("", true); + // Controllo la connessione + if (!sqlset.connect(DSN)) + return false; + TRelation rilprod(LF_RILPROD),rdoc(LF_RIGHEDOC); + int items; + TString msg("Esportazione tabella "); msg << "A01A"; + TCursor curRilprod(&rilprod, "CODNUM == \"ORC\""); + + items = curRilprod.items(); + TProgress_monitor p(items, msg); + // Adesso inserisco tutta la bella roba + for (curRilprod = 0; curRilprod.pos() < items && !p.is_cancelled(); ++curRilprod) + { + int num = curRilprod.pos(); + // Aggiorno il Progress Monitor + if (!p.add_status()) + break; + // Prendo la riga di RILPROD + TRectype rowRilprod = curRilprod.curr(); + + // Vado a prendere il documento di riferimento + TRectype filtroFiltro(rdoc.curr()); + filtroFiltro.put("CODNUM", "ORC"); // Passo direttamente questo senza richiederlo + filtroFiltro.put("ANNO", rowRilprod.get("ANNO")); + filtroFiltro.put("PROVV", rowRilprod.get("PROVV")); + filtroFiltro.put("NDOC", rowRilprod.get("NDOC")); + TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro); + if(curFiltro.items() > 0) + { + curFiltro = 0; + // Prendo la riga di Filtro + TRectype rowFiltro = curFiltro.curr(); + // Preparo la riga del documento + TRectype filtroRDoc(rdoc.curr()); + filtroRDoc.put("DAPROVV", rowFiltro.get("PROVV")); // Passo direttamente questo senza richiederlo + filtroRDoc.put("DAANNO", rowFiltro.get("ANNO")); + filtroRDoc.put("DACODNUM", "ORC"); + filtroRDoc.put("DANDOC", rowFiltro.get("NDOC")); + filtroRDoc.put("DAIDRIGA", rowFiltro.get("NRIGA")); + TString codartmag; codartmag << "CODARTMAG == \"" << rowRilprod.get("CODART") << "\""; + TCursor curRdoc(&rdoc, codartmag, 4, &filtroRDoc, &filtroRDoc); + if(curRdoc.items() == 1) + { + curRdoc = 0; + // Prendo la riga di RDOC + TRectype rowRDoc = curRdoc.curr(); + // Dichiaro la stringa + TString sqlQuery; + sqlQuery << "INSERT INTO A01A ( IKRUNIMP, FAZI, CPRD, NMOV, CMAC, QPFPRO, FSALDO ) \ + VALUES('" << id << "','U','" << rowRDoc.get("NDOC") << "." << rowRDoc.get("NRIGA") << "','1','" << rowRilprod.get("LINEA") << "','" << rowRilprod.get("QTA") << "','"; + sqlQuery << (rowRilprod.get("CHIUSO") == "-1" ? "1" : "0"); sqlQuery << "');"; + if(sqlset.exec(sqlQuery) != 1) + return false; + } + } + } + return sqlset.commit() == -1 ? false : true; +} +bool TCampass_app::o01a(const TString& DSN, const TString id) const +{ + TODBC_recordset sqlset("", true); + // Controllo la connessione + if (!sqlset.connect(DSN)) + return false; + TRelation doc(LF_DOC),rdoc(LF_RIGHEDOC); + int items; + TString msg("Esportazione tabella "); msg << "O01A"; + // 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) + { + int num = curRDoc.pos(); + // Aggiorno il Progress Monitor + if (!p.add_status()) + break; + // Prendo la riga del FILTRO + TRectype rowRDoc = curRDoc.curr(); + + // Vado a prendere il documento di riferimento + TRectype filtroDoc(doc.curr()); + filtroDoc.put(DOC_PROVV, rowRDoc.get("PROVV")); + filtroDoc.put(DOC_ANNO, rowRDoc.get("ANNO")); + filtroDoc.put(DOC_CODNUM, rowRDoc.get("CODNUM")); + filtroDoc.put(DOC_NDOC, rowRDoc.get("NDOC")); + TCursor curDoc(&doc, "", 1, &filtroDoc, &filtroDoc); + if(curDoc.items() > 0) + { + // Forzo a 0, sennò ci sono problemi di sporcizia + curDoc = 0; + TRectype rowDoc = (curDoc.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) + { + // Dichiaro la stringa + TString sqlQuery; + + // Inserisco IIKRUNIMP, FAZI, CStr, CPRD, CART + sqlQuery << "INSERT INTO O01A ( IKRUNIMP, FAZI, CStr, CPRD, CART, TIPORD, FLGSTA, CMAG, DPRICHI, DPRICHF, QPORD, XNOTE, CCLI ) \ + VALUES('" << id << "','U','DBS','" << rowDoc.get("NDOC") << "." << rowRDoc.get("NRIGA") << "','" << rowRDoc.get("CODARTMAG") << "','"; + + // Inserisco TIPORD + sqlQuery << (rowRDoc.get("DACODNUM") == "ORC" ? "R" : "P"); + // Inserisco FLGSTA, CMAG, DPRICHI, DPRICHF, QPORD, XNOTE, CCLI + sqlQuery << "','" << rowRDoc.get("RIGAEVASA") << "','" << rowRDoc.get("CODMAG") << "','" << rowDoc.get("DATADOC") << "','" << rowRDoc.get("DATACONS") + << "','" << rowRDoc.get("QTA") << "',"; + // Controllo che il campo DESCEST sia pieno + TString desc; desc << rowRDoc.get("DESCEST"); + if(desc.len() == 0) + sqlQuery << "NULL,"; + else + sqlQuery << "'" << desc << "',"; + sqlQuery << "'" << rowDoc.get("CODCF") << "');"; + + if(sqlset.exec(sqlQuery) != 1) + return false; + } + } + } + } + return sqlset.commit() == -1 ? false : true; +} +bool TCampass_app::o02a(const TString& DSN, const TString id) const { TODBC_recordset sqlset("", true); // Controllo la connessione @@ -194,11 +426,6 @@ bool TCampass_app::o02a(const TString& DSN) const // Vado a prendere il documento di riferimento TRectype filtroDoc(doc.curr()); - TString a,b,c,d; - a << rowRDoc.get("PROVV"); - b << rowRDoc.get("ANNO"); - c << rowRDoc.get("CODNUM"); - d << rowRDoc.get("NDOC"); filtroDoc.put(DOC_PROVV, rowRDoc.get("PROVV")); filtroDoc.put(DOC_ANNO, rowRDoc.get("ANNO")); filtroDoc.put(DOC_CODNUM, rowRDoc.get("CODNUM")); @@ -211,7 +438,7 @@ bool TCampass_app::o02a(const TString& DSN) const // Inserisco IKRUNIMP, FAZI, CStr, CMAG, CCLIH, CCLIR, CCLI sqlQuery << "INSERT INTO O02A ( IKRUNIMP, FAZI, CStr, CMAG, CCLIH, CCLIR, CCLI, FLGSTA, XRIFCLI, XNOTE, CART, QCORD, QCSPE, DCCONF ) \ - VALUES('1','U','DBS','" << rowRDoc.get("CODMAG") << "','" << rowRDoc.get("NDOC") << "','" << rowRDoc.get("NRIGA") << "','" << rowDoc.get("CODCF") << "','"; + VALUES('" << id << "','U','DBS','" << rowRDoc.get("CODMAG") << "','" << rowRDoc.get("NDOC") << "','" << rowRDoc.get("NRIGA") << "','" << rowDoc.get("CODCF") << "','"; // Inserisco FLGSTA sqlQuery << (rowRDoc.get("RIGAEVASA") == "X" ? "C" : "A"); // Inserisco XRIFCLI, XNOTE, CART, QCORD, QCSPE, DCCONF @@ -223,7 +450,57 @@ bool TCampass_app::o02a(const TString& DSN) const } return sqlset.commit() == -1 ? false : true; } -bool TCampass_app::o03a(const TString& DSN) const +bool TCampass_app::o02c(const TString& DSN, const TString id) const +{ + TODBC_recordset sqlset("", true); + // Controllo la connessione + if (!sqlset.connect(DSN)) + return false; + TRelation doc(LF_DOC),rdoc(LF_RIGHEDOC); + int items; + TString msg("Esportazione tabella "); msg << "O02C"; + // 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) + { + int num = curRDoc.pos(); + // Aggiorno il Progress Monitor + if (!p.add_status()) + break; + // Prendo la riga del FILTRO + 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) + { + // Dichiaro la stringa + TString sqlQuery; + + // Inserisco Tutto (yeeeeeeeeeeeeeee) + sqlQuery << "INSERT INTO O02C ( IKRUNIMP, CStr, CPRD, CCLIH, CCLIR, BVAL) \ + VALUES('" << id << "','DBS','" << zeroFill(rowRDoc.get("NDOC")) << "." << rowRDoc.get("NRIGA") << "','" << rowRDoc.get("DANDOC") << "','" << rowRDoc.get("DAIDRIGA") << "','1');"; + + if(sqlset.exec(sqlQuery) != 1) + return false; + } + } + } + return sqlset.commit() == -1 ? false : true; +} +bool TCampass_app::o03a(const TString& DSN, const TString id) const { TODBC_recordset sqlset("", true); // Controllo la connessione @@ -257,7 +534,7 @@ bool TCampass_app::o03a(const TString& DSN) const } return sqlset.commit() == -1 ? false : true; } -bool TCampass_app::p01a(const TString& DSN) const +bool TCampass_app::p01a(const TString& DSN, const TString id) const { TODBC_recordset sqlset("", true); // Controllo la connessione @@ -283,7 +560,7 @@ bool TCampass_app::p01a(const TString& DSN) const TRectype rowAna = curAna.curr(); // Inserisco IKRUNIMP,CART,RPART,CFAM sqlQuery << "INSERT INTO P01A (IKRUNIMP,CART,RART,CFAM,CTART,CUDMP,CUDMM,CUDMA,CUDMV,PCONVPMN,PCONVPMD,PCONVPVN,PCONVPVD,PCONVPAN,PCONVPAD,FOBS) \ - VALUES('1','" << toEscape(rowAna.get("CODART")) << "','" << toEscape(rowAna.get("DESCR")) << "','" << getFam(rowAna.get("CODART")) <<"','"; + VALUES('" << id << "','" << toEscape(rowAna.get("CODART")) << "','" << toEscape(rowAna.get("DESCR")) << "','" << getFam(rowAna.get("CODART")) <<"','"; /**************************************************************************** @@ -360,6 +637,77 @@ bool TCampass_app::p01a(const TString& DSN) const } return sqlset.commit() == -1 ? false : true; } +bool TCampass_app::p01b(const TString& DSN, const TString id) const +{ + TODBC_recordset sqlset("", true); + // Controllo la connessione + if (!sqlset.connect(DSN)) + return false; + TRelation anamag(LF_ANAMAG); + int items; + TString msg("Esportazione tabella "); msg << "P01B"; + TCursor curAna(&anamag, "USER3 != \"\""); + items = curAna.items(); + TProgress_monitor p(items, msg); + // Adesso inserisco tutta la bella roba + for (curAna = 0; curAna.pos() < items && !p.is_cancelled(); ++curAna) + { + int num = curAna.pos(); + // Aggiorno il Progress Monitor + if (!p.add_status()) + break; + + // Prendo la riga di TAB + TRectype rowAna = curAna.curr(); + + // Dichiaro la stringa + TString sqlQuery; + + // Inserisco Tutto + sqlQuery << "INSERT INTO P01B ( IKRUNIMP, CStr, CART, CPARAM, CPARVAL ) \ + VALUES('" << id << "','DBS','" << rowAna.get("CODART") << "','MISREA','" << rowAna.get("USER3") << "x"<< rowAna.get("USER4") << "');"; + if(sqlset.exec(sqlQuery) != 1) + return false; + } + return sqlset.commit() == -1 ? false : true; +} +bool TCampass_app::p02a(const TString& DSN, const TString id) const +{ + TODBC_recordset sqlset("", true); + // Controllo la connessione + if (!sqlset.connect(DSN)) + return false; + TRelation tab(LF_TAB); + int items; + TString msg("Esportazione tabella "); msg << "P02A"; + // Creo il filtro per la chiave del cursore, da quel che ho capito le chiavi sono più veloci di un filtro (come è possibile?) + TRectype filtroTab(tab.curr()); filtroTab.put("COD", "GCA"); filtroTab.put("CODTAB", "2"); + TCursor curTab(&tab, "", 1, &filtroTab, &filtroTab); + items = curTab.items(); + TProgress_monitor p(items, msg); + // Adesso inserisco tutta la bella roba + for (curTab = 0; curTab.pos() < items && !p.is_cancelled(); ++curTab) + { + int num = curTab.pos(); + // Aggiorno il Progress Monitor + if (!p.add_status()) + break; + + // Prendo la riga di TAB + TRectype rowTab = curTab.curr(); + + TString codTab; codTab << rowTab.get("CODTAB"); + // Dichiaro la stringa + TString sqlQuery; + + // Inserisco Tutto + sqlQuery << "INSERT INTO P02A (IKRUNIMP, FAZI, CStr, FGRP, NLIV0, RLIV0, CGRP0, RGRP0 ) \ + VALUES('" << id << "','U','DBS','0','0','0','" << getGroup(rowTab.get("CODTAB")) << "','" << rowTab.get("S0") << "');"; + if(sqlset.exec(sqlQuery) != 1) + return false; + } + return sqlset.commit() == -1 ? false : true; +} void TCampass_app::main_loop() { @@ -419,3 +767,61 @@ int ca2600(int argc, char* argv[]) app.run(argc, argv, TR("Collegamento Campo/Compass")); return 0; } + + + +/* +bool TCampass_app::o01b(const TString& DSN) const +{ + TODBC_recordset sqlset("", true); + // Controllo la connessione + if (!sqlset.connect(DSN)) + return false; + TRelation rdoc(LF_RIGHEDOC), rdist(LF_RDIST), tab(LF_TAB); + int items; + TString msg("Esportazione tabella "); msg << "O01B"; + // 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"); + TRectype filtroTab(rdoc.curr()); filtroTab.put("CODTAB", "LAV"); + TCursor curRDoc(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroRdoc, &filtroRdoc); + TCursor curTab(&tab, "", 1, &filtroTab, &filtroTab); + TCursor curDist(&rdist, "TIPO = \"L\""); + items = curRDoc.items(); + TProgress_monitor p(items, msg); + // Adesso inserisco tutta la bella roba + for (curRDoc = 0; curRDoc.pos() < items && !p.is_cancelled(); ++curRDoc) + { + int num = curRDoc.pos(); + // Aggiorno il Progress Monitor + if (!p.add_status()) + break; + + // Prendo la riga di RDOC + TRectype rowRDoc = curRDoc.curr(); + + // Verifico la presenza di un ordine cliente con i valori della riga attuale + TRectype filtroFiltro(rdoc.curr()); + filtroFiltro.put(RDOC_CODNUM, rowRDoc.get("DACODNUM")); + filtroFiltro.put(RDOC_ANNO, rowRDoc.get("DAANNO")); + filtroFiltro.put(RDOC_PROVV, rowRDoc.get("DAPROVV")); + filtroFiltro.put(RDOC_NDOC, rowRDoc.get("DANDOC")); + filtroFiltro.put(RDOC_NRIGA, rowRDoc.get("DAIDRIGA")); + TCursor curFiltro(&rdoc, "RIGAEVASA != \"X\"", 1, &filtroFiltro, &filtroFiltro); // Applico un FILTRO al FILTRO così da FILTRARE la tabella per lavorare sui dati FILTRATI che necessito siano FILTRATI + int itemFiltro = curFiltro.items(); + if(itemFiltro > 0) // Se non ci sono match non ha senso proseguire + { + // DA FINIRE, É STATA MESSA IN PAUSA + + // Inserisco IKRUNIMP, CStr + sqlQuery << "INSERT INTO O01B ( IKRUNIMP, CStr, CPRD, NFAS, RFAS, XNOTE, QPFFAS, CUDMF, XCONVFN, XCONVFD, BSCH, CMAC, EBASE, QBASE, XPINS, XPUTIL ) \ + VALUES('1','DBS','" << rowDoc.get("CODCF") << "','"; + + + if(sqlset.exec(sqlQuery) != 1) + return false; + } + } + return sqlset.commit() == -1 ? false : true; +} +*/ +