From ee4d80f5198f88dc6f1f3b37c2ac470de120f88b Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 17 Jul 2008 11:22:03 +0000 Subject: [PATCH] Patch level :10.0 90 Files correlati :sc2.exe Ricompilazione Demo : [ ] Commento : 0000853: ultima colonna stampa scadenzario Descrizione il cliente Presscolor/sig.Vito segnala che l'ultima colonna della stampa scadenzario (sc2.exe -1) visualizza delle cifre strane tipo 62 ,00. Allego esempio visto che l'errore viene trascinato sul txt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0000854: stampa scadenzario Descrizione il cliente prescolor nella persona del simpaticissimo sig. Vito richiede nella stampa dello scadenzario (sc2.exe -1) che a suo dire gli spazi tra le colonne sono troppi, visto che non siamo piĆ¹ in lire ma in euro potremmo ridurli e sfruttare quel che avanza per separare la tipologia di pagamento rimessa diretta e bonifico git-svn-id: svn://10.65.10.50/trunk@16881 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- sc/sc2200.cpp | 94 +++++++++++++++++++++++++++++---------------------- 1 file changed, 54 insertions(+), 40 deletions(-) diff --git a/sc/sc2200.cpp b/sc/sc2200.cpp index 586e21104..d6597b794 100755 --- a/sc/sc2200.cpp +++ b/sc/sc2200.cpp @@ -24,9 +24,10 @@ struct _LinearTotal : public TObject // Oggetto base per gli elementi di tlg, t _ip, // Importo pagato _rd, // Rimesse dirette _ri, // Ri.ba/Tratte + _bo, // Bonifici _al; // Altri virtual TObject* dup() const { return new _LinearTotal(*this); } - _LinearTotal() {_is = 0.0; _ip = 0.0; _rd = 0.0; _ri = 0.0; _al = 0.0; } + _LinearTotal() {_is = 0.0; _ip = 0.0; _rd = 0.0; _ri = 0.0; _bo = 0.0; _al = 0.0; } }; enum tipo_st {nessuno=0, tutti=1, clienti=2, fornitori=3, altri=4}; @@ -47,8 +48,8 @@ class TStampaScadenzario : public TPrintapp TString _last_ban, _desc_ban; // Banca correntemente in corso di raggruppamento TPString *_descrizione,*_ragsoc,*_des_conto; // Descrizione (da LF_PARTITE), ragione sociale (da LF_CLIFO) // Descrizione conto (da LF_PCON) - TString _imp_scad,_imp_pag,_rimdir,_riba,_altri, // Valori calcolati in preprocess_page: rimesse dirette, Ri.ba e altri - _cur_gr_s, _cur_co_s, _cur_codcf_s; // _imp_scad e _imp_pag vengono anch'essi calcolati in preprocess_page. + TString _imp_scad,_imp_pag,_rimdir,_riba,_altri,_bonifico, // Valori calcolati in preprocess_page: rimesse dirette, Ri.ba e altri + _cur_gr_s, _cur_co_s, _cur_codcf_s; // _imp_scad e _imp_pag vengono anch'essi calcolati in preprocess_page. TDate _datai, _dataf, _datas, // Data inizio, fine e stampa _cur_data; // Data di scadenza riferita al record corrente long _cur_codcf; // Cli/Fo riferito al record corrente @@ -204,7 +205,7 @@ HIDDEN void print_real(TString& dest, const real& num, const char* val) { const TCurrency cur(num, val); dest = cur.string(TRUE); - dest.right_just(18); + dest.right_just(15); } bool TStampaScadenzario::filter_func(const TRelation *r) @@ -297,6 +298,9 @@ void TStampaScadenzario::check_add_key_to_tl(tipo_pe p, int t) case 3: xtotal._ri += _w_imp_res; break; + case 9: + xtotal._bo += _w_imp_res; + break; default: xtotal._al += _w_imp_res; break; @@ -638,9 +642,10 @@ bool TStampaScadenzario::preprocess_page(int file, int counter) _annopart.format("%d",annop); _annopart.ltrim(2); - _rimdir=""; - _riba=""; - _altri=""; + _rimdir = ""; + _riba = ""; + _bonifico = ""; + _altri = ""; _imp_pag = ""; const bool print_in_valuta = _stvaluta && is_true_value(_codval); @@ -660,25 +665,28 @@ bool TStampaScadenzario::preprocess_page(int file, int counter) case 3: print_real(_riba, _w_imp_res, print_in_valuta ? _codval : EMPTY_STRING); break; - default: // Altri + case 9: // Bonifici + print_real(_bonifico, _w_imp_res, print_in_valuta ? _codval : EMPTY_STRING); + break; + default: // Altri print_real(_altri, _w_imp_res, print_in_valuta ? _codval : EMPTY_STRING); break; } } //if (file == LF_SCADENZE && !_end_printed)... - if (file==LF_CLIFO) + if (file == LF_CLIFO) { TString80 xxx(current_cursor()->curr(LF_CLIFO).get(CLI_RAGSOC)); *_ragsoc = xxx.strip_double_spaces(); } - if (file ==LF_PCON) + if (file == LF_PCON) *_des_conto = current_cursor()->curr(LF_PCON).get(PCN_DESCR); // Se l'ordinamento principale e' per data scadenza stampa il totale del giorno e del mese if (_ordata && !_end_printed) if ((file == LF_SCADENZE && _tipost == tutti) || (file == LF_PCON && _tipost == altri) || - (file ==LF_CLIFO && (_tipost == clienti || _tipost == fornitori))) + (file == LF_CLIFO && (_tipost == clienti || _tipost == fornitori))) { bool date_changed = false; if (_cur_data.ok()) @@ -1180,8 +1188,8 @@ void TStampaScadenzario::print_header() set_header(soh++, (const char *) rw); set_header(soh++,FR("@28gRif.@38gData@47gData@77gCd/Tp@91g%s"),(const char*)s1); set_header(soh++,FR("Codice@9gRagione sociale@28gpartita@38gscadenza@47gRegistr." - "@56gDescrizione@77gPag.@86gRata@91g%s@97gVal." - "@106gImp. in sca.@125gImp. pagati@144gRimesse dir.@163gRi.ba./Tratte@189gAltri@195gBlocc."), (const char*)s2); + "@56gDescrizione@77gPag.@86gRata@91g%s@96gVal." + "@103gImp. in sca.@119gImp. pagati@135gRimesse dir.@151gRi.ba./Tratte@171gBonifici@190gAltri@197gBlc"), (const char*)s2); set_header(soh++,FR("@28gData e Nr doc. @46gProt. IVA")); set_header(soh++,(const char *)rw); break; @@ -1207,9 +1215,8 @@ void TStampaScadenzario::print_header() set_header(soh++, (const char *) rw); set_header(soh++,FR("@33gRif.@43gData@53gData@82gCd/Tp")); set_header(soh++,FR("Gr. Co. So.@16gDescrizione@33gpartita@43gscadenza@53gRegistr." - "@61gDescrizione@82gPag.@89gRata@97gVal." - "@106gImp. in sca.@125gImp. pagati@144gRimesse dir.@163gRi.ba./Tratte@189gAltri@195gBlocc.")); - + "@61gDescrizione@82gPag.@89gRata@96gVal." + "@103gImp. in sca.@119gImp. pagati@135gRimesse dir.@151gRi.ba./Tratte@171gBonifici@190gAltri@197gBlc")); set_header(soh++,FR("@36gData e Nr doc. @54gProt. IVA")); set_header(soh++,(const char *)rw); @@ -1238,13 +1245,14 @@ void TStampaScadenzario::set_page_clifo(int nriga) set_row(nriga,"@86g@4n",FLD(LF_SCADENZE,SCAD_NRATA)); if (_tipost == fornitori) set_row(nriga,"@91g@5pn",FLD(LF_SCADENZE,SCAD_CODABIPR,"@@@@@")); - set_row(nriga,"@97g#t", &_codval); - set_row(nriga,"@101g#18t",&_imp_scad); - set_row(nriga,"@120g#18t",&_imp_pag); - set_row(nriga,"@139g#18t",&_rimdir); // rimesse dirette - set_row(nriga,"@158g#18t",&_riba); // Ri.ba. / tratte - set_row(nriga,"@177g#18t",&_altri); // Altri tipi di pagamento - set_row(nriga,"@197g@1s",FLD(LF_SCADENZE,SCAD_BLOCCATA)); + set_row(nriga,"@96g#t", &_codval); + set_row(nriga,"@100g#15t",&_imp_scad); + set_row(nriga,"@116g#15t",&_imp_pag); + set_row(nriga,"@132g#15t",&_rimdir); // rimesse dirette + set_row(nriga,"@148g#15t",&_riba); // Ri.ba. / tratte + set_row(nriga,"@164g#15t",&_bonifico); // Bonifico + set_row(nriga,"@180g#15t",&_altri); // Altri tipi di pagamento + set_row(nriga,"@198g@1s",FLD(LF_SCADENZE,SCAD_BLOCCATA)); nriga++; set_row(nriga,"@31g#t",&_datadoc); set_row(nriga,"@40g#t",&_numdoc); @@ -1264,13 +1272,14 @@ void TStampaScadenzario::set_page_pcon(int nriga) set_row(nriga,"@61g#a",_descrizione); set_row(nriga,"@82g@4,rs/@1n@89g@4n",FLD(LF_SCADENZE,SCAD_CODPAG),FLD(LF_SCADENZE,SCAD_TIPOPAG), FLD(LF_SCADENZE,SCAD_NRATA)); - set_row(nriga,"@97g#t", &_codval); - set_row(nriga,"@101g#18t",&_imp_scad); - set_row(nriga,"@120g#18t",&_imp_pag); - set_row(nriga,"@139g#18t",&_rimdir); // rimesse dirette - set_row(nriga,"@158g#18t",&_riba); // Ri.ba. / tratte - set_row(nriga,"@177g#18t",&_altri); // Altri tipi di pagamento - set_row(nriga,"@197g@1s",FLD(LF_SCADENZE,SCAD_BLOCCATA)); + set_row(nriga,"@96g#t", &_codval); + set_row(nriga,"@100g#15t",&_imp_scad); + set_row(nriga,"@116g#15t",&_imp_pag); + set_row(nriga,"@132g#15t",&_rimdir); // rimesse dirette + set_row(nriga,"@148g#15t",&_riba); // Ri.ba. / tratte + set_row(nriga,"@164g#15t",&_bonifico); // Bonifico + set_row(nriga,"@180g#15t",&_altri); // Altri tipi di pagamento + set_row(nriga,"@198g@1s",FLD(LF_SCADENZE,SCAD_BLOCCATA)); nriga++; set_row(nriga,"@36g#t@45g#t@54g#-5t",&_datadoc,&_numdoc,&_protiva); } @@ -1303,7 +1312,7 @@ void TStampaScadenzario::print_rows_riepilogo(int& nriga, bool type, TAssoc_arra t.get_keys(as); as.sort(); - for (int i=0; i < items; i++) + for (int i = 0; i < items; i++) { const TString& k = as.row(i); real& v = (real&)t[k]; @@ -1371,7 +1380,7 @@ void TStampaScadenzario::print_riepilogo(int &nriga, bool type) const int items = totali.items(); TString val, value; - for (int i=0; i < items; i++) + for (int i = 0; i < items; i++) { val = as.row(i); const bool stampa_in_valuta = _stvaluta && is_true_value(val); @@ -1420,14 +1429,14 @@ void TStampaScadenzario::print_rows_totali(int &nriga, tipo_pe p) as.sort(); TString k, value; - for (int i=0; i < items; i++) + for (int i = 0; i < items; i++) { k = as.row(i); // Chiave di ordinamento(valuta) const bool stampa_in_valuta = _stvaluta && is_true_value(k); _LinearTotal& v = (_LinearTotal&)xassoc[k]; if (is_true_value(k)) - set_row(nriga,"@97g%3s",(const char*)k); + set_row(nriga,"@96g%3s",(const char*)k); if (!stampa_in_valuta) k.cut(0); @@ -1435,28 +1444,33 @@ void TStampaScadenzario::print_rows_totali(int &nriga, tipo_pe p) print_real(value, v._is, k); if (v._is != ZERO) - set_row(nriga,"@101g%18s",(const char*) value); + set_row(nriga,"@100g%15s",(const char*) value); print_real(value, v._ip, k); if (v._ip != ZERO) - set_row(nriga,"@120g%18s",(const char*) value); + set_row(nriga,"@116g%15s",(const char*) value); print_real(value, v._rd, k); if (v._rd != ZERO) - set_row(nriga,"@139g%18s",(const char*) value); + set_row(nriga,"@132g%15s",(const char*) value); print_real(value, v._ri, k); if (v._ri != ZERO) - set_row(nriga,"@158g%18s",(const char*) value); + set_row(nriga,"@148g%15s",(const char*) value); + + print_real(value, v._bo, k); + + if (v._bo != ZERO) + set_row(nriga,"@164g%15s",(const char*) value); print_real(value, v._al, k); if (v._al != ZERO) - set_row(nriga,"@177g%18s",(const char*) value); - + set_row(nriga,"@180g%15s",(const char*) value); + set_row(++nriga,""); } set_row(++nriga,"");