Stampa EC: corretta gestione riporti
git-svn-id: svn://10.65.10.50/trunk@2279 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									fb74dc3723
								
							
						
					
					
						commit
						82fccf970c
					
				
							
								
								
									
										192
									
								
								sc/sc2100.cpp
									
									
									
									
									
								
							
							
						
						
									
										192
									
								
								sc/sc2100.cpp
									
									
									
									
									
								
							| @ -35,9 +35,12 @@ class TEC_form : public TForm | ||||
|   TDate _dlo, _dls, _dir;      // Data limite operazione, scaduto e inizio rischio
 | ||||
|   int _giorni_rischio;         // Numero giorni rischio nella maschera di selezione
 | ||||
|   bool _in_valuta;             // Il form e' in valuta
 | ||||
|   int _footer_used;            // Numero di righe per ogni valuta del footer
 | ||||
|   word _num_rip;               // Numero di righe usate per i riporti
 | ||||
| 
 | ||||
| protected: | ||||
|   void stampa_testata(TPrinter& p); | ||||
|   void stampa_riporti(TPrinter& p); | ||||
| 
 | ||||
|   static void ec_header_handler(TPrinter& p); | ||||
|   static void ec_footer_handler(TPrinter& p); | ||||
|    | ||||
| @ -54,9 +57,10 @@ public: | ||||
|   bool in_valuta() const { return _in_valuta; } | ||||
|   const TString& describe(short id, char sez = 'B') const; | ||||
|    | ||||
|   void azzera_totali(); | ||||
|   bool print_game(const TPartita& game); | ||||
| 
 | ||||
|   TEC_form(const TEC_mask& m);       | ||||
|   TEC_form(const TEC_mask& m, bool gesval);       | ||||
|   virtual ~TEC_form(); | ||||
| };     | ||||
| 
 | ||||
| @ -81,7 +85,7 @@ class TEC_row : public TSortable | ||||
|   TString  _num_doc;             // Numero documento
 | ||||
|   long     _num_prot;            // Protocollo IVA
 | ||||
|   TImporto _importo;             // Importo in valuta
 | ||||
|   TImporto _importo_lire;        // Importo in lire
 | ||||
|   real     _importo_lire;        // Importo in lire
 | ||||
|   real     _scaduto;             // Importo scaduto
 | ||||
|   real     _esposto;             // Importo esposto
 | ||||
|   bool     _salvo_buon_fine;     // Importo esposto salvo buon fine
 | ||||
| @ -99,12 +103,14 @@ public: | ||||
|   void reset_causale() { _causale.cut(0); _descrizione.cut(0); } | ||||
|   void descrizione(const char* s) { _descrizione = s; } | ||||
|   void importo(const TImporto& i) { _importo = i; } | ||||
|   void importo_lire(const real& i) { _importo_lire = i; } | ||||
|   void scaduto(const real& s) { _scaduto = s; } | ||||
|   void esposto(const real& e) { _esposto = e; } | ||||
|   void salvo_buon_fine(bool sbf) { _salvo_buon_fine = sbf; } | ||||
|    | ||||
|   const TDate& data() const { return _data; } | ||||
|   const TImporto& importo() const { return _importo; } | ||||
|   const TImporto& importo() const { return _importo; }  | ||||
|   const real& importo_lire() const { return _importo_lire; } | ||||
|   real scaduto() const { return _scaduto; } | ||||
|   real esposto() const { return _esposto; } | ||||
|   const TValuta& valuta() const { return _valuta; }  | ||||
| @ -233,6 +239,9 @@ void TEC_row::print_on(TPrint_section& body) | ||||
|   TForm_item& esposto = body.find_field(PEC_ESPOSTO); | ||||
|   set_imp(esposto, _esposto, valuta); | ||||
|    | ||||
|   TForm_item& lire = body.find_field(PEC_IMPLIRE); | ||||
|   lire.set(_importo_lire.string()); | ||||
| 
 | ||||
|   TForm_item& sbf = body.find_field(PEC_SBF); | ||||
|   sbf.set(_salvo_buon_fine ? "*" : " "); | ||||
|    | ||||
| @ -393,6 +402,7 @@ TEC_row& TEC_array::new_row(const TRiga_partite& row, const TDate& data, | ||||
| void TEC_array::add_row(const TRiga_partite& row) | ||||
| { | ||||
|   const bool in_valuta = form().in_valuta() && row.in_valuta(); | ||||
|   const char sezione = row.get_char(PART_TIPOCF) == 'C' ? 'D' : 'A'; | ||||
|    | ||||
|   if (row.is_fattura()) | ||||
|   { | ||||
| @ -408,6 +418,12 @@ void TEC_array::add_row(const TRiga_partite& row) | ||||
|           const real s = calcola_scaduto(rata, in_valuta); | ||||
|           rec.scaduto(s); | ||||
|         }   | ||||
|         if (in_valuta)      | ||||
|         { | ||||
|           TImporto il = rata.importo(FALSE); | ||||
|           il.normalize(sezione); | ||||
|           rec.importo_lire(il.valore()); | ||||
|         }   | ||||
|       }   | ||||
|     } | ||||
|   } | ||||
| @ -416,7 +432,7 @@ void TEC_array::add_row(const TRiga_partite& row) | ||||
|     const TDate data(row.get(PART_DATAPAG)); | ||||
|     if (data <= form().data_limite_operazione()) | ||||
|     {   | ||||
|       const TImporto imp(row.importo(in_valuta, 0x1));   // Importo pulito (senza abbuoni ecc.)
 | ||||
|       const TImporto imp(row.importo(in_valuta, 0x1));   // Importo pulito senza nient'altro
 | ||||
|       TEC_row& riga = new_row(row, data, imp, 1); | ||||
|        | ||||
|       const int tipo_pag = row.get_int(PART_TIPOPAG); | ||||
| @ -452,15 +468,34 @@ void TEC_array::add_row(const TRiga_partite& row) | ||||
|       const TImporto abbuoni(row.importo(in_valuta, 0x2)); | ||||
|       if (!abbuoni.is_zero()) | ||||
|       { | ||||
|         TEC_row& r = new_row(row, data, abbuoni, 2); | ||||
|         r.descrizione(form().describe(302)); | ||||
|         TEC_row& rec = new_row(row, data, abbuoni, 2); | ||||
|         rec.descrizione(form().describe(302)); | ||||
|         if (in_valuta) | ||||
|         { | ||||
|           TImporto il(row.importo(FALSE, 0x2)); | ||||
|           il.normalize(sezione); | ||||
|           rec.importo_lire(il.valore()); | ||||
|         } | ||||
|       }   | ||||
|        | ||||
|       const TImporto diffcam(row.importo(in_valuta, 0x4)); | ||||
|       if (!diffcam.is_zero()) | ||||
|       { | ||||
|         TEC_row& r = new_row(row, data, diffcam, 3); | ||||
|         r.descrizione(form().describe(303)); | ||||
|         TEC_row& rec = new_row(row, data, diffcam, 3); | ||||
|         rec.descrizione(form().describe(303)); | ||||
|         if (in_valuta) | ||||
|         { | ||||
|           TImporto il(row.importo(FALSE, 0x4)); | ||||
|           il.normalize(sezione); | ||||
|           rec.importo_lire(il.valore()); | ||||
|         } | ||||
|       }   | ||||
|        | ||||
|       const TImporto ritenute(row.importo(in_valuta, 0x8)); | ||||
|       if (!ritenute.is_zero()) | ||||
|       { | ||||
|         TEC_row& r = new_row(row, data, ritenute, 4); | ||||
|         r.descrizione(form().describe(304)); | ||||
|       }   | ||||
|     }   | ||||
|   } | ||||
| @ -495,14 +530,28 @@ TEC_array::TEC_array(const TPartita& game, const TEC_form* f) | ||||
| // Form speciale per estratti conto
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| void TEC_form::ec_header_handler(TPrinter& pr) | ||||
| void TEC_form::stampa_testata(TPrinter& pr) | ||||
| { | ||||
|   TPrint_section& head = _form->section('H'); | ||||
|   head.reset(); | ||||
|   pr.resetheader(); | ||||
| 
 | ||||
|   TPrint_section& head = section('H'); | ||||
|    | ||||
|   TForm_item& pagina = head.find_field(PEC_PAGINA); | ||||
|   TString16 pg; pg << int(pr.getcurrentpage()); | ||||
|   pagina.set(pg); | ||||
|    | ||||
|   head.update();  | ||||
|   for (word j = 0; j < head.height(); j++) | ||||
| 
 | ||||
|   const word r = head.height()-1; | ||||
|   TPrintrow& head_row = head.row(r-1); | ||||
|    | ||||
|   TPrint_section& body = section('B');   | ||||
|   for (int f = body.fields()-1; f >= 0;  f--) | ||||
|   { | ||||
|     // Leggi lo special e stampalo
 | ||||
|     TForm_item& fi = body.field(f); | ||||
|     head_row.put(fi.key(), offset_x() + fi.x()); | ||||
|   } | ||||
| 
 | ||||
|   for (word j = 0; j <= r; j++) | ||||
|     pr.setheaderline(j, head.row(j)); | ||||
| } | ||||
| 
 | ||||
| @ -517,37 +566,34 @@ static int tot_compare(const void* o1, const void* o2) | ||||
|   return stricmp(h1->key(), h2->key()); | ||||
| } | ||||
| 
 | ||||
| void TEC_form::ec_footer_handler(TPrinter& pr) | ||||
| void TEC_form::stampa_riporti(TPrinter& pr) | ||||
| { | ||||
|   TPrint_section& foot = _form->section('F'); | ||||
|   pr.resetfooter(); | ||||
|    | ||||
|   const word MAXTOT = 16; | ||||
|   THash_object* tot[MAXTOT]; | ||||
|    | ||||
|   // I totali sono in un assoc array disordinato per cui li copio in un array e li ordino
 | ||||
|   // alfabeticamente in base al loro codice valuta
 | ||||
|   TTotalizer& totali = _form->totali(); | ||||
|   totali.restart(); | ||||
|   TTotalizer& arr = totali(); | ||||
|   arr.restart(); | ||||
|    | ||||
|   word numtot = 0; | ||||
|   for (THash_object* obj = totali.get_hashobj();  | ||||
|        numtot < MAXTOT && obj != NULL;  | ||||
|        obj = totali.get_hashobj()) | ||||
|     tot[numtot++] = obj; | ||||
|   qsort(tot, numtot, sizeof(THash_object*), tot_compare); | ||||
|   _num_rip = 0; | ||||
|   for (THash_object* obj = arr.get_hashobj();  | ||||
|        _num_rip < MAXTOT && obj != NULL;  | ||||
|        obj = arr.get_hashobj()) | ||||
|     tot[_num_rip++] = obj; | ||||
|   qsort(tot, _num_rip, sizeof(THash_object*), tot_compare); | ||||
|                      | ||||
|                      | ||||
|   const word maxtot = section('F').height(); | ||||
|   if (_num_rip > maxtot) | ||||
|     _num_rip = maxtot; | ||||
|    | ||||
|   const word maxtot = foot.height() / _form->_footer_used; | ||||
|   if (numtot > maxtot) | ||||
|     numtot = maxtot; | ||||
|    | ||||
|   const TString& riporto = _form->describe(301, 'F'); | ||||
|   const TString& riporto = describe(301, 'F'); | ||||
|    | ||||
|   TString desc(80); | ||||
|   TPrint_section& body = _form->section('B'); | ||||
|   for (word j = 0; j < numtot; j++) | ||||
|   TPrint_section& body = section('B'); | ||||
|   for (word j = 0; j < _num_rip; j++) | ||||
|   {                                 | ||||
|     const word line = j * _form->_footer_used; | ||||
|     const TString& key = tot[j]->key(); | ||||
|     TTotal& t = (TTotal&)(tot[j]->obj()); | ||||
|      | ||||
| @ -557,13 +603,30 @@ void TEC_form::ec_footer_handler(TPrinter& pr) | ||||
|     TEC_row rip(desc, t.importo().normalize()); | ||||
|     rip.scaduto(t.scaduto()); | ||||
|     rip.esposto(t.esposto()); | ||||
|     rip.importo_lire(t.importo_lire()); | ||||
|     rip.print_on(body); | ||||
|      | ||||
|     for (int fl = 0; fl < _form->_footer_used; fl++) | ||||
|       pr.setfooterline(line, body.row(fl)); | ||||
|     pr.setfooterline(j, body.row(0)); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| void TEC_form::ec_header_handler(TPrinter& pr) | ||||
| { | ||||
|   pr.resetheader(); | ||||
|   _form->stampa_testata(pr); | ||||
| } | ||||
| 
 | ||||
| void TEC_form::ec_footer_handler(TPrinter& pr) | ||||
| {                     | ||||
|   pr.resetfooter(); | ||||
|   if (_form->page(pr) > 0)            // Normal page
 | ||||
|     _form->stampa_riporti(pr); | ||||
| }  | ||||
| 
 | ||||
| void TEC_form::azzera_totali() | ||||
| {      | ||||
|    totali().destroy();        | ||||
|   _num_rip = 0; | ||||
| }      | ||||
| 
 | ||||
| bool TEC_form::print_game(const TPartita& game) | ||||
| { | ||||
| @ -577,7 +640,7 @@ bool TEC_form::print_game(const TPartita& game) | ||||
|   TPrint_section& body = section('B'); | ||||
|    | ||||
|   TImporto saldo; | ||||
|   real scaduto, esposto; | ||||
|   real scaduto, esposto, implire; | ||||
|    | ||||
|   // Stampa le righe di partita
 | ||||
|    | ||||
| @ -589,7 +652,15 @@ bool TEC_form::print_game(const TPartita& game) | ||||
|     TEC_row& riga = righe.row(r); | ||||
|      | ||||
|     if (pr.rows_left() < body.height()) | ||||
|     { | ||||
|       pr.formfeed(); | ||||
|       for (word nr = 0; nr < _num_rip; nr++) | ||||
|       { | ||||
|         TPrintrow* fl = pr.getfooterline(nr); | ||||
|         CHECKD(fl, "Manca la riga di riporto ", nr); | ||||
|         pr.print(*fl); | ||||
|       } | ||||
|     }   | ||||
|      | ||||
|     const int ri = riga.riga(); | ||||
|     const int ra = riga.rata(); | ||||
| @ -601,11 +672,13 @@ bool TEC_form::print_game(const TPartita& game) | ||||
|     riga.print_on(body); | ||||
|     pr.print(body.row(0)); | ||||
|      | ||||
|     totali().add(riga.importo(), riga.scaduto(), riga.esposto(), riga.valuta().codice()); | ||||
|     totali().add(riga.importo(), riga.scaduto(), riga.esposto(),  | ||||
|                  riga.importo_lire(), riga.valuta().codice()); | ||||
|      | ||||
|     saldo += riga.importo(); | ||||
|     scaduto += riga.scaduto(); | ||||
|     esposto += riga.esposto(); | ||||
|     implire += riga.importo_lire(); | ||||
|     ok = TRUE; | ||||
|   } | ||||
|    | ||||
| @ -616,6 +689,7 @@ bool TEC_form::print_game(const TPartita& game) | ||||
|     TEC_row sld(describe(301), saldo); | ||||
|     sld.scaduto(scaduto); | ||||
|     sld.esposto(esposto); | ||||
|     sld.importo_lire(implire); | ||||
|     sld.print_on(body); | ||||
|     pr.print(body.row(0)); | ||||
|      | ||||
| @ -632,15 +706,15 @@ const TString& TEC_form::describe(short id, char sez) const | ||||
|   return fi.prompt(); | ||||
| } | ||||
| 
 | ||||
| TEC_form::TEC_form(const TEC_mask& m) | ||||
| TEC_form::TEC_form(const TEC_mask& m, bool gesval) | ||||
|         : TForm(BASE_EC_PROFILE, m.get_prof_code()),  | ||||
|           _in_valuta(FALSE), _footer_used(1), | ||||
|           _in_valuta(FALSE), _num_rip(0), | ||||
|           _causali(LF_CAUSALI, CAU_CODCAUS, CAU_DESCR) | ||||
| {  | ||||
|   _form = this;                  | ||||
|    | ||||
|   TForm_item& imp_lire = find_field('B', odd_page, PEC_IMPLIRE); | ||||
|   _in_valuta = imp_lire.shown();     // Il profilo e' in valuta se c'e' la colonna importo in lire
 | ||||
|   _in_valuta = gesval && imp_lire.shown();     // Il profilo e' in valuta se c'e' la colonna importo in lire
 | ||||
|    | ||||
|   _lingua = m.get_prof_lang();       // Lingua profilo
 | ||||
| 
 | ||||
| @ -651,22 +725,25 @@ TEC_form::TEC_form(const TEC_mask& m) | ||||
|   _dls = m.get(F_DATALIMSC); | ||||
|   _giorni_rischio = m.get_int(F_GIORISCH);  | ||||
|   _dir = _dls; _dir -= _giorni_rischio; | ||||
|     | ||||
|    | ||||
|   TPrinter& pr = printer(); | ||||
|    | ||||
|   pr.setheaderhandler(ec_header_handler); | ||||
|   TPrint_section& head = section('H'); | ||||
|   pr.headerlen(section('H').height()); | ||||
| 
 | ||||
|    | ||||
|   TForm_item& luogo_invio = head.find_field(PEC_LUOGOIN); | ||||
|   luogo_invio.set(m.get(F_LUOGOSEND)); | ||||
|    | ||||
|   TForm_item& data_invio = head.find_field(PEC_DATAIN); | ||||
|   data_invio.set(m.get(F_DATASEND)); | ||||
|    | ||||
|   TForm_item& testo_memo = head.find_field(PEC_MEMO); | ||||
|   testo_memo.set("Per favore pagatemi che sono alla frutta!"); | ||||
|     | ||||
|   pr.setfooterhandler(ec_footer_handler); | ||||
|   const TPrint_section& foot = section('F'); | ||||
|   pr.footerlen(foot.height()); | ||||
|    | ||||
|   for (int i = foot.fields()-1; i >= 0; i--) | ||||
|   { | ||||
|     TForm_item& fi = foot.field(i); | ||||
|     if (fi.y() > _footer_used) | ||||
|       _footer_used = fi.y(); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| TEC_form::~TEC_form() | ||||
| @ -766,8 +843,8 @@ bool TStampaEC_application::print_ec() | ||||
|    | ||||
|   if (!ok)   // Cliente analfabeta
 | ||||
|     return FALSE; | ||||
|      | ||||
|   f.totali().destroy();       // Azzera totali di fine pagina
 | ||||
|    | ||||
|   f.azzera_totali();          // Azzera totali di fine pagina
 | ||||
|    | ||||
|   // Filtra solo le partite del cliente selezionato
 | ||||
|   TLocalisamfile& partite = _file[LF_PARTITE]; | ||||
| @ -816,7 +893,10 @@ bool TStampaEC_application::print_ec() | ||||
|       one_printed = TRUE; | ||||
|      | ||||
|     partite.put(PART_NRIGA, 9999); | ||||
|   } | ||||
|   }  | ||||
|    | ||||
|   if (one_printed) | ||||
|     form().set_last_page(TRUE); | ||||
|    | ||||
|   return TRUE;   | ||||
| }  | ||||
| @ -859,7 +939,7 @@ bool TStampaEC_application::menu(MENU_TAG) | ||||
|   TEC_mask& m = mask(); | ||||
|   while (m.run() != K_QUIT) | ||||
|   { | ||||
|     _form = new TEC_form(m);  | ||||
|     _form = new TEC_form(m, _gesval);  | ||||
| 
 | ||||
|     print_selected(); | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										110
									
								
								sc/sc2102.cpp
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								sc/sc2102.cpp
									
									
									
									
									
								
							| @ -1,54 +1,56 @@ | ||||
| 
 | ||||
| #include "sc2102.h" | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // Totalizzatore
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| TTotal::TTotal(const TImporto& imp, const real& sca, const real& esp) | ||||
|       : _importo(imp), _scaduto(sca), _esposto(esp) | ||||
| { }       | ||||
| 
 | ||||
| void TTotalizer::add(const TImporto& imp, const real& sca, | ||||
|                      const real& esp, const TString& val) | ||||
| {               | ||||
|   TString16 codice(val); | ||||
|   if (codice == "LIT") | ||||
|     codice.cut(0); | ||||
|     | ||||
|   TObject* obj = objptr(codice); | ||||
|   if (obj != NULL) | ||||
|   { | ||||
|     TTotal& tot = (TTotal&)*obj; | ||||
|     tot.importo() += imp; | ||||
|     tot.scaduto() += sca; | ||||
|     tot.esposto() += esp; | ||||
|   } | ||||
|   else | ||||
|   {                      | ||||
|     obj = new TTotal(imp, sca, esp); | ||||
|     TAssoc_array::add(codice, obj); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // TFilearray
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| void TFile_array::open(int logicnum, ...)   | ||||
| {   | ||||
|   va_list marker; | ||||
|   va_start(marker, logicnum); | ||||
|   while (logicnum > 0) | ||||
|   { | ||||
|     CHECKD(_file.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum); | ||||
|     _file.add(new TLocalisamfile(logicnum), logicnum); | ||||
|     logicnum = va_arg(marker, int); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| void TFile_array::close() | ||||
| { | ||||
|   _file.destroy(); | ||||
| } | ||||
| 
 | ||||
| #include "sc2102.h" | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // Totalizzatore
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| TTotal::TTotal(const TImporto& imp, const real& sca,  | ||||
|                const real& esp, const real& lit) | ||||
|       : _importo(imp), _scaduto(sca), _esposto(esp), _importo_lire(lit) | ||||
| { }       | ||||
| 
 | ||||
| void TTotalizer::add(const TImporto& imp, const real& sca, | ||||
|                      const real& esp, const real& lit, const TString& val) | ||||
| {               | ||||
|   TString16 codice(val); | ||||
|   if (codice == "LIT") | ||||
|     codice.cut(0); | ||||
|     | ||||
|   TObject* obj = objptr(codice); | ||||
|   if (obj != NULL) | ||||
|   { | ||||
|     TTotal& tot = (TTotal&)*obj; | ||||
|     tot.importo() += imp; | ||||
|     tot.scaduto() += sca; | ||||
|     tot.esposto() += esp; | ||||
|     tot.importo_lire() += lit; | ||||
|   } | ||||
|   else | ||||
|   {                      | ||||
|     obj = new TTotal(imp, sca, esp, lit); | ||||
|     TAssoc_array::add(codice, obj); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // TFilearray
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| void TFile_array::open(int logicnum, ...)   | ||||
| {   | ||||
|   va_list marker; | ||||
|   va_start(marker, logicnum); | ||||
|   while (logicnum > 0) | ||||
|   { | ||||
|     CHECKD(_file.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum); | ||||
|     _file.add(new TLocalisamfile(logicnum), logicnum); | ||||
|     logicnum = va_arg(marker, int); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| void TFile_array::close() | ||||
| { | ||||
|   _file.destroy(); | ||||
| } | ||||
|  | ||||
							
								
								
									
										134
									
								
								sc/sc2102.h
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								sc/sc2102.h
									
									
									
									
									
								
							| @ -1,65 +1,69 @@ | ||||
| 
 | ||||
| #ifndef __SC2102_H | ||||
| #define __SC2102_H | ||||
|                      | ||||
| #include <stdarg.h> | ||||
|                      | ||||
| #include <utility.h> | ||||
| #include <array.h> | ||||
| #include <strings.h> | ||||
| #include <real.h> | ||||
| #include <isam.h> | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // Totalizzatore
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| class TTotal : public TObject | ||||
| { | ||||
|   TImporto _importo; | ||||
|   real _scaduto; | ||||
|   real _esposto; | ||||
|    | ||||
| public: | ||||
|   const TImporto& importo() const { return _importo; }   | ||||
|   const real& scaduto() const { return _scaduto; } | ||||
|   const real& esposto() const { return _esposto; } | ||||
|   TImporto& importo() { return _importo; }   | ||||
|   real& scaduto() { return _scaduto; } | ||||
|   real& esposto() { return _esposto; } | ||||
|    | ||||
|   TTotal(const TImporto& imp, const real& scaduto, const real& esposto); | ||||
|   virtual ~TTotal() {} | ||||
| }; | ||||
| 
 | ||||
| class TTotalizer : public TAssoc_array | ||||
| {  | ||||
| public: | ||||
|   void add(const TImporto& imp, const real& scaduto,  | ||||
|            const real& esposto, const TString& val); | ||||
| 
 | ||||
|   TTotalizer() { } | ||||
|   virtual ~TTotalizer() { } | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // TFilearray
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| class TFile_array | ||||
| {          | ||||
|   TArray _file; | ||||
| 
 | ||||
| public: | ||||
|   void open(int num, ...); | ||||
|   void close(); | ||||
|   TLocalisamfile& file(int num) const { return (TLocalisamfile&)_file[num]; } | ||||
|   TLocalisamfile& operator[](int num) const { return file(num); } | ||||
| 
 | ||||
|   TFile_array() {} | ||||
|   virtual ~TFile_array() {} | ||||
| }; | ||||
| 
 | ||||
| #endif // __SC2102_H
 | ||||
| 
 | ||||
| #ifndef __SC2102_H | ||||
| #define __SC2102_H | ||||
|                      | ||||
| #include <stdarg.h> | ||||
|                      | ||||
| #include <utility.h> | ||||
| #include <array.h> | ||||
| #include <strings.h> | ||||
| #include <real.h> | ||||
| #include <isam.h> | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // Totalizzatore
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| class TTotal : public TObject | ||||
| { | ||||
|   TImporto _importo; | ||||
|   real _scaduto; | ||||
|   real _esposto; | ||||
|   real _importo_lire; | ||||
|    | ||||
| public: | ||||
|   const TImporto& importo() const { return _importo; }   | ||||
|   const real& importo_lire() const { return _importo_lire; } | ||||
|   const real& scaduto() const { return _scaduto; } | ||||
|   const real& esposto() const { return _esposto; } | ||||
|   TImporto& importo() { return _importo; }   | ||||
|   real& importo_lire() { return _importo_lire; }   | ||||
|   real& scaduto() { return _scaduto; } | ||||
|   real& esposto() { return _esposto; } | ||||
|    | ||||
|   TTotal(const TImporto& imp, const real& scaduto,  | ||||
|          const real& esposto, const real& implire); | ||||
|   virtual ~TTotal() {} | ||||
| }; | ||||
| 
 | ||||
| class TTotalizer : public TAssoc_array | ||||
| {  | ||||
| public: | ||||
|   void add(const TImporto& imp, const real& scaduto,  | ||||
|            const real& esposto, const real& implire, const TString& val); | ||||
| 
 | ||||
|   TTotalizer() { } | ||||
|   virtual ~TTotalizer() { } | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // TFilearray
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| class TFile_array | ||||
| {          | ||||
|   TArray _file; | ||||
| 
 | ||||
| public: | ||||
|   void open(int num, ...); | ||||
|   void close(); | ||||
|   TLocalisamfile& file(int num) const { return (TLocalisamfile&)_file[num]; } | ||||
|   TLocalisamfile& operator[](int num) const { return file(num); } | ||||
| 
 | ||||
|   TFile_array() {} | ||||
|   virtual ~TFile_array() {} | ||||
| }; | ||||
| 
 | ||||
| #endif // __SC2102_H
 | ||||
|  | ||||
| @ -1,5 +1,9 @@ | ||||
| #ifndef __SC21PEC_H | ||||
| #define __SC21PEC_H | ||||
| #define __SC21PEC_H  | ||||
| 
 | ||||
| #define PEC_LUOGOIN 101 | ||||
| #define PEC_DATAIN  102 | ||||
| #define PEC_MEMO    103 | ||||
| 
 | ||||
| #define PEC_CODCAUS 201 | ||||
| #define PEC_DESCR1  202 | ||||
| @ -18,5 +22,6 @@ | ||||
| #define PEC_IMPLIRE 215 | ||||
| #define PEC_CAMBIO  216 | ||||
| #define PEC_DATACAM 217 | ||||
| #define PEC_PAGINA  218 | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user