diff --git a/cg/cg3200.cpp b/cg/cg3200.cpp index 2046dacc4..d228b27d8 100755 --- a/cg/cg3200.cpp +++ b/cg/cg3200.cpp @@ -59,7 +59,7 @@ class CG3200_application : public TPrintapp TString _ragsoc,_indulc,_civulc,_capulc,_com,_prov,_comulc; long _codice_ditta,_s_prec; TString _tipodoc,_codcaus,_descrcaus,_descrdociva,_regiva; - char _lettivd; + TString16 _lettivd; int _sezivd; TString _descrizione,_sezione,_numdoc,_descrizionemov,_numrivd; TString _dataregs, _datadocs,_gruppocontr,_contocontr,_sottocontocontr; @@ -82,6 +82,7 @@ protected: virtual void user_destroy(); virtual bool set_print(int m); + virtual bool preprocess_print(int file, int counter); virtual bool preprocess_page (int,int); virtual print_action postprocess_page (int,int); virtual void preprocess_header(); @@ -114,7 +115,7 @@ public: void ricerca_dati_ditta(); void conto(); - CG3200_application(); + CG3200_application() {} }; HIDDEN CG3200_application * app() { return (CG3200_application*) MainApp(); } @@ -164,19 +165,19 @@ bool CG3200_application::almeno_un_record() long record,sottoc; int gruppo,conto; TDate datareg, datacomp; - TLocalisamfile* rmov = &(current_cursor()->file(LF_RMOV)); + TLocalisamfile& rmov = current_cursor()->file(LF_RMOV); if (current_cursor()->is_first_match(LF_RMOV)) { - record = rmov->recno(); - rmov->zero(); - rmov->put(RMV_GRUPPO, _gruppo); - rmov->put(RMV_CONTO, _conto); - rmov->put(RMV_SOTTOCONTO, _sottoc); - for (rmov->read(); !rmov->eof() ;rmov->next()) + record = rmov.recno(); + rmov.zero(); + rmov.put(RMV_GRUPPO, _gruppo); + rmov.put(RMV_CONTO, _conto); + rmov.put(RMV_SOTTOCONTO, _sottoc); + for (rmov.read(); !rmov.eof() ;rmov.next()) { - int annoes = rmov->get_int (RMV_ANNOES); - long numreg = rmov->get_long(RMV_NUMREG); + int annoes = rmov.get_int (RMV_ANNOES); + long numreg = rmov.get_long(RMV_NUMREG); _mov->setkey(1); _mov->curr().zero(); @@ -187,14 +188,14 @@ bool CG3200_application::almeno_un_record() datacomp = (_mov->curr().get(MOV_DATACOMP)); if (_annomsk == 0) - datareg = rmov->get_date(RMV_DATAREG); + datareg = rmov.get_date(RMV_DATAREG); else if (_annomsk != 0) datareg = datacomp; - gruppo = rmov->get_int(RMV_GRUPPO); - conto = rmov->get_int(RMV_CONTO); - sottoc = rmov->get_long(RMV_SOTTOCONTO); + gruppo = rmov.get_int(RMV_GRUPPO); + conto = rmov.get_int(RMV_CONTO); + sottoc = rmov.get_long(RMV_SOTTOCONTO); if ((gruppo != _gruppo)||(conto != _conto)||(sottoc != _sottoc)) break; else @@ -204,7 +205,7 @@ bool CG3200_application::almeno_un_record() break; } } - rmov->readat(record); + rmov.readat(record); } return trovato; } @@ -310,7 +311,7 @@ bool CG3200_application::data_fine(TMask_field& f, KEY k) void CG3200_application::saldi_zero() { - TLocalisamfile* rmov = &(current_cursor()->file(LF_RMOV)); + TLocalisamfile& rmov = current_cursor()->file(LF_RMOV); real saldo_dare, saldo_avere; long record; @@ -318,25 +319,28 @@ void CG3200_application::saldi_zero() if (current_cursor()->is_first_match(LF_RMOV)) { - record = rmov->recno(); + record = rmov.recno(); - while (!rmov->eof()) + while (!rmov.eof()) { - rmov->read(); - char sezione = rmov->curr().get(RMV_SEZIONE)[0]; - real importo = rmov->curr().get_real(RMV_IMPORTO); - int gruppo = atoi(rmov->get(RMV_GRUPPO)); - int conto = atoi(rmov->get(RMV_CONTO)); - long sottoc = atol(rmov->get(RMV_SOTTOCONTO)); + rmov.read(); + char sezione = rmov.curr().get(RMV_SEZIONE)[0]; + real importo = rmov.curr().get_real(RMV_IMPORTO); + int gruppo = atoi(rmov.get(RMV_GRUPPO)); + int conto = atoi(rmov.get(RMV_CONTO)); + long sottoc = atol(rmov.get(RMV_SOTTOCONTO)); if ((gruppo == _gruppo)&&(conto == _conto)&&(sottoc == _sottoc)) + { if (sezione == 'D') saldo_dare += importo; else if (sezione == 'A') saldo_avere += importo; - rmov->next(); + } + else break; + rmov.next(); } - rmov->readat(record); + rmov.readat(record); } _totale_saldo = saldo_dare - saldo_avere; } @@ -345,11 +349,12 @@ void CG3200_application::fai_stampa132() { set_row (1,"@0g#t", &_dataregs); if (_stampanum == 1) - set_row (1,"@11g#7d", &_numreg); - else if (_stampanum == 2) - { - set_row (1,"@11g#7d", &_numgio); - } + set_row (1,"@11g$[r]#7d$[n]", &_numreg); + else + if (_stampanum == 2) + { + set_row (1,"@11g#7d", &_numgio); + } set_row (1,"@19g#t", &_datadocs); set_row (1,"@30g#7t", &_numdoc); set_row (1,"@38g#3t", &_codcaus); @@ -361,7 +366,7 @@ void CG3200_application::fai_stampa132() void CG3200_application::fai_stampa198() { - TLocalisamfile* rmov; + TLocalisamfile & rmov = current_cursor()->file(LF_RMOV); long rec; TDate datasucc; TString datasuccstring,dataregrmovstring; @@ -393,19 +398,18 @@ void CG3200_application::fai_stampa198() //Gestire la stampa di saldo_progressivi nella postprocess_page di RMOV - rmov = &(current_cursor()->file(LF_RMOV)); - rec = rmov->recno(); - rmov->next(); - gruppof = rmov->get_int(RMV_GRUPPO); - contof = rmov->get_int(RMV_CONTO); - sottocf = rmov->get_int(RMV_SOTTOCONTO); - datasucc = rmov->get_date(RMV_DATAREG); + rec = rmov.recno(); + rmov.next(); + gruppof = rmov.get_int(RMV_GRUPPO); + contof = rmov.get_int(RMV_CONTO); + sottocf = rmov.get_int(RMV_SOTTOCONTO); + datasucc = rmov.get_date(RMV_DATAREG); datasuccstring=datasucc.string(); - if (((gruppof!=_gruppo)||(contof!=_conto)||(sottocf!=_sottoc))||(rmov->eof())) + if (((gruppof!=_gruppo)||(contof!=_conto)||(sottocf!=_sottoc))||(rmov.eof())) datasucc = (""); if (datasucc != _dataregrmov) set_row (1,"@136g#t", &_saldo_progressivi_str); - rmov->readat(rec); + rmov.readat(rec); } void CG3200_application::stampa_totali132() @@ -461,7 +465,6 @@ void CG3200_application::stampa_totali198() bool CG3200_application::preprocess_page(int file, int counter) { - TLocalisamfile* rmov; long record; TString provvis = ""; int annoes; @@ -541,24 +544,24 @@ bool CG3200_application::preprocess_page(int file, int counter) case LF_RMOV: { // Ricerca la contropartita di quel movimento + TLocalisamfile& rmov = current_cursor()->file(LF_RMOV); _numreg = atol (current_cursor()->curr(LF_RMOV).get(RMV_NUMREG)); int rcontr = atoi(current_cursor()->curr(LF_RMOV).get(RMV_RCONTR)); - rmov = &(current_cursor()->file(LF_RMOV)); - record = rmov->recno(); - rmov->setkey(1); - rmov->curr().zero(); - rmov->curr().put(RMV_NUMREG,_numreg); - rmov->curr().put(RMV_NUMRIG,rcontr); - rmov->read(); - if (rmov->bad()) - rmov->curr().zero(); - _gruppocontr = rmov->curr().get(RMV_GRUPPO); - _contocontr = rmov->curr().get(RMV_CONTO); - _sottocontocontr = rmov->curr().get(RMV_SOTTOCONTO); - rmov->setkey(2); - rmov->readat(record); + record = rmov.recno(); + rmov.setkey(1); + rmov.curr().zero(); + rmov.curr().put(RMV_NUMREG,_numreg); + rmov.curr().put(RMV_NUMRIG,rcontr); + rmov.read(); + if (rmov.bad()) + rmov.curr().zero(); + _gruppocontr = rmov.curr().get(RMV_GRUPPO); + _contocontr = rmov.curr().get(RMV_CONTO); + _sottocontocontr = rmov.curr().get(RMV_SOTTOCONTO); + rmov.setkey(2); + rmov.readat(record); // Stampa solo quelli che hanno anno esercizio uguale a quello specificato // nella maschera. Se non viene specificato li stampa tutti @@ -849,8 +852,12 @@ void CG3200_application::ricerca_regiva() _tipo = atoi(_tabreg->curr().get("I0")); } -CG3200_application::CG3200_application() -{ +bool CG3200_application::preprocess_print(int file, int counter) +{ + _g_prec = 0; + _c_prec = 0; + _s_prec = 0; + return TRUE; } bool CG3200_application::set_print(int) @@ -899,10 +906,6 @@ bool CG3200_application::set_print(int) _anno_precedente = _anno_corrente - 1; - _g_prec = 0; - _c_prec = 0; - _s_prec = 0; - // Scelta del formato e del numero di mastrini per pagina 1 o 2 if (nummast == 1) @@ -1154,25 +1157,24 @@ void CG3200_application::calcola_progressivi_al() long record,sottoc,annoes; int gruppo,conto; TDate datareg, datacomp; - TLocalisamfile* rmov; + TLocalisamfile & rmov = current_cursor()->file(LF_RMOV); char sezione; real importo; TDate data; - rmov = &(current_cursor()->file(LF_RMOV)); - record = rmov->recno(); - rmov->zero(); - rmov->put(RMV_GRUPPO, _gruppo); - rmov->put(RMV_CONTO, _conto); - rmov->put(RMV_SOTTOCONTO, _sottoc); - for (rmov->read();!rmov->eof() ;rmov->next()) + record = rmov.recno(); + rmov.zero(); + rmov.put(RMV_GRUPPO, _gruppo); + rmov.put(RMV_CONTO, _conto); + rmov.put(RMV_SOTTOCONTO, _sottoc); + for (rmov.read();!rmov.eof() ;rmov.next()) { - annoes = rmov->get_int (RMV_ANNOES); - datareg = rmov->get_date(RMV_DATAREG); - sezione = rmov->get (RMV_SEZIONE)[0]; - importo = rmov->get_real(RMV_IMPORTO); - long numreg = rmov->get_long(RMV_NUMREG); + annoes = rmov.get_int (RMV_ANNOES); + datareg = rmov.get_date(RMV_DATAREG); + sezione = rmov.get (RMV_SEZIONE)[0]; + importo = rmov.get_real(RMV_IMPORTO); + long numreg = rmov.get_long(RMV_NUMREG); _mov->setkey(1); _mov->curr().zero(); @@ -1184,7 +1186,7 @@ void CG3200_application::calcola_progressivi_al() if (_annomsk == 0) { - datareg = rmov->get_date(RMV_DATAREG); + datareg = rmov.get_date(RMV_DATAREG); data = _inizioEs; } else @@ -1194,9 +1196,9 @@ void CG3200_application::calcola_progressivi_al() data = _data_inizioese; } - gruppo = rmov->get_int(RMV_GRUPPO); - conto = rmov->get_int(RMV_CONTO); - sottoc = rmov->get_long(RMV_SOTTOCONTO); + gruppo = rmov.get_int(RMV_GRUPPO); + conto = rmov.get_int(RMV_CONTO); + sottoc = rmov.get_long(RMV_SOTTOCONTO); if ((gruppo != _gruppo)||(conto != _conto)||(sottoc != _sottoc)) break; else if (((annoes==_annomsk)||(_annomsk == 0))&&(datareg >= data)&&(datareg < _data_ini)) //Legge movimenti con data < data iniziale @@ -1205,7 +1207,7 @@ void CG3200_application::calcola_progressivi_al() else if (sezione == 'A') _totale_prima_avere += importo; } - rmov->readat(record); + rmov.readat(record); } void CG3200_application::calcola_progressivi() @@ -1423,14 +1425,14 @@ void CG3200_application::ricerca_clifo() pconti.read(); //_sezivd = pconti.get_char(PCN_SEZIVD); _sezivd = pconti.get_int(PCN_SEZIVD); - _lettivd = pconti.get_char(PCN_LETTIVD); + _lettivd = pconti.get(PCN_LETTIVD); numrivd = pconti.get_int(PCN_NUMRIVD); _numrivd = itor(numrivd); _numivd = pconti.get_int(PCN_NUMIVD); _tabivd->curr().zero(); //dep.format ("%c%c%04d%2d",_sezivd,_lettivd,numrivd,_numivd); - dep.format ("%d%c%04d%2d",_sezivd,_lettivd,numrivd,_numivd); + dep.format ("%d%s%04d%2d", _sezivd, (const char *) _lettivd,numrivd,_numivd); _tabivd->curr().put("CODTAB", (const char*) dep); _tabivd->read(); if (_tabivd->bad()) @@ -1440,9 +1442,8 @@ void CG3200_application::ricerca_clifo() set_header(3,"@27g%-30s",(const char*) descrizione_gruppo()); set_header(3,"@59g%-30s",(const char*) descrizione_conto()); set_header(3, "@91g%-30s",(const char*) ragsoc); - //set_header(4, "@1gClasse@8g%1s",(const char*) _lettivd); - set_header(4, "@1gClasse@8g%c",(const char*) _lettivd); - set_header(4, "@10g%8s",(const char*) _numrivd); + set_header(4, "@1gClasse@8g%s", (const char*) _lettivd); + set_header(4, "@10g%-8s", (const char*) _numrivd); if (_numivd != 0) set_header(4, "@19g%2d", _numivd); set_header(4,"@23g%-50s",(const char*) descriz); @@ -1494,7 +1495,7 @@ void CG3200_application::ricerca_gruppo() pconti.read(); //_sezivd = pconti.get_char(PCN_SEZIVD); _sezivd = pconti.get_int(PCN_SEZIVD); - _lettivd = pconti.get_char(PCN_LETTIVD); + _lettivd = pconti.get(PCN_LETTIVD); numrivd = pconti.get_int(PCN_NUMRIVD); _numrivd = itor(numrivd); _numivd = pconti.get_int(PCN_NUMIVD); @@ -1502,7 +1503,7 @@ void CG3200_application::ricerca_gruppo() _tabivd->zero(); //dep.format ("%c%c%04d%2d",_sezivd,_lettivd, numrivd,_numivd); - dep.format ("%d%c%04d%2d",_sezivd,_lettivd, numrivd,_numivd); + dep.format ("%d%s%04d%2d",_sezivd,(const char *) _lettivd, numrivd,_numivd); _tabivd->put("CODTAB", (const char*) dep); _tabivd->read(); if (_tabivd->bad()) @@ -1513,9 +1514,8 @@ void CG3200_application::ricerca_gruppo() set_header(3,"@59g%-30s",(const char*) descrizione_conto()); set_header(3,"@91g%-30s",(const char*) descr); - //set_header(4, "@0gClasse@12g%1s",(const char*) _lettivd); - set_header(4, "@0gClasse@12g%c", _lettivd); - set_header(4, "@14g%8s",(const char*) _numrivd); + set_header(4, "@0gClasse@12g%s",(const char*) _lettivd); + set_header(4, "@14g%-8s",(const char*) _numrivd); if (_numivd != 0) set_header(4, "@23g%d", _numivd); set_header(4,"@27g%-50s",(const char*) descriz); @@ -1618,8 +1618,3 @@ int cg3200(int argc, char* argv[]) return 0; } - - - - -