From 97e94f2c918d08eb9a56c774ff561b4fc223685f Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 9 Jan 1997 16:31:26 +0000 Subject: [PATCH] ba3100.cpp Provo a togliere new TTable_application ba3600.cpp Corretti handlers bislacchi ba3600a.uml Messo grassetto ad alcuni testi git-svn-id: svn://10.65.10.50/trunk@4047 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba3100.cpp | 5 +-- ba/ba3600.cpp | 112 ++++++++++++++++++++++++------------------------- ba/ba3600a.uml | 4 +- 3 files changed, 58 insertions(+), 63 deletions(-) diff --git a/ba/ba3100.cpp b/ba/ba3100.cpp index 3e9b76ac9..b1b0e3242 100755 --- a/ba/ba3100.cpp +++ b/ba/ba3100.cpp @@ -479,8 +479,7 @@ int TGeneric_table_app::rewrite(const TMask& m) int ba3100(int argc, char* argv[]) { - TGeneric_table_app* a = new TGeneric_table_app; - a->run(argc, argv, "Tabella"); - delete a; // Bella battuta! + TGeneric_table_app a; + a.run(argc, argv, "Tabella"); return 0; } diff --git a/ba/ba3600.cpp b/ba/ba3600.cpp index 73a49e4e6..b89afe542 100755 --- a/ba/ba3600.cpp +++ b/ba/ba3600.cpp @@ -1,8 +1,6 @@ #include #include -//#include #include -//#include #include #include #include @@ -14,13 +12,9 @@ #include "ba3.h" #include "ba3600.h" -#define ALIAS 50 - static TString256 tmp; -const int TABLBU = (int)TTable::name2log("%LBU"); - -class BA3600_application : public TPrintapp +class TStampa_indici : public TPrint_application { struct ind_lib { @@ -59,12 +53,10 @@ class BA3600_application : public TPrintapp bool _stamp_bollato, _pag_ann, _pag_fuori_sequenza,_stampa_intesta,_stampa_ind; TString _ind_dta,_civ_dta,_cap_dta,_com_dta,_prov_dta; -public: - - bool menu (MENU_TAG m) { return TPrintapp::menu(m) ; } +public: // TPrint_application virtual bool user_create() ; virtual bool user_destroy(); - bool set_print(int); + virtual bool set_print(int); virtual bool preprocess_page (int,int); virtual print_action postprocess_page (int,int); @@ -89,24 +81,36 @@ public: void descrizione(); void dati_anagrafici_ditta(TString&,TString&,TString&,TString&,TString&); - BA3600_application() {} + TStampa_indici(); + virtual ~TStampa_indici() { } }; -void BA3600_application::init_sort() +TStampa_indici::TStampa_indici() + : _lib(NULL), _sort(NULL) { +} + +void TStampa_indici::init_sort() +{ + if (_lib) + delete _lib; _lib = new ind_lib; - _sort = new TSort (sizeof(ind_lib)); + + if (_sort) + delete _sort; + _sort = new TSort(sizeof(ind_lib)); + + _sort->addsortkey((char*)&(_lib->anno) - (char*)&(_lib->anno),4); + _sort->addsortkey((char*)&(_lib->mese) - (char*)&(_lib->anno),2); + _sort->addsortkey((char*)&(_lib->nini_plib) - (char*)&(_lib->anno),5); - _sort -> addsortkey((char*)&(_lib->anno) - (char*)&(_lib->anno),4); - _sort -> addsortkey((char*)&(_lib->mese) - (char*)&(_lib->anno),2); - _sort -> addsortkey((char*)&(_lib->nini_plib) - (char*)&(_lib->anno),5); _sort->init(); } //Crea sort ordina i record della tabella %INL per mese registrazione, anno //registrazione e numero iniziale pagine registro libro unico -void BA3600_application::crea_sort() +void TStampa_indici::crea_sort() { long anno,numini_paglib,numfin_paglib,codditta,numini_pagut,numfin_pagut; TString cod_reg,cod_vidimaz,dep,app; @@ -209,7 +213,7 @@ void BA3600_application::crea_sort() //con l'ultima pagina dell'ultimo indice solo se il i libri //selezionati sono gli stessi (libro di studio e libro di stampa). -void BA3600_application::dati_libro_unico() +void TStampa_indici::dati_libro_unico() { TTable lbu ("%LBU"); TString dep; @@ -227,7 +231,7 @@ void BA3600_application::dati_libro_unico() } } -void BA3600_application::descrizione() +void TStampa_indici::descrizione() { TTable lbu ("%LBU"); TString16 dep; @@ -238,7 +242,7 @@ void BA3600_application::descrizione() _desc_cod_lib_su = lbu.get ("S0"); } -void BA3600_application::intestatario(TString& cofi,TString& paiv,TString& ragsoc,TString& ind, +void TStampa_indici::intestatario(TString& cofi,TString& paiv,TString& ragsoc,TString& ind, TString& civ,TString& cap,TString& com,TString& prov) { TString codcom; @@ -280,13 +284,9 @@ void BA3600_application::intestatario(TString& cofi,TString& paiv,TString& ragso } } -bool BA3600_application::set_print(int) +bool TStampa_indici::set_print(int) { - KEY tasto; - - // _msk->set_mode(MODE_QUERY); - tasto = _msk->run(); - + KEY tasto = _msk->run(); if (tasto == K_ENTER) { _tipo_stampa = _msk->get_int(F_TIPO_STAMPA); @@ -327,7 +327,7 @@ bool BA3600_application::set_print(int) } /********* - bool BA3600_application::preprocess_page(int file, int counter) + bool TStampa_indici::preprocess_page(int file, int counter) { if (_tipo_stampa == 1) { @@ -348,20 +348,17 @@ bool BA3600_application::set_print(int) } ***********/ -void BA3600_application::postclose_print() +void TStampa_indici::postclose_print() { // Se ha stampato in definitiva, aggiorna il numero di pagine stampate sul libro unico. // Viene incrementato del numero di pagine stampate per gli indici if ((_tipo_stampa == 2)) { TString dep; - long numfin_paglib; - - _tab_lbu->zero(); dep.format ("%4d%-3s", _anno, (const char*)_cod_lib_stampa); // Va aggiornato il libro sul quale si stampa! - _tab_lbu->put("CODTAB", (const char*) dep); + _tab_lbu->put("CODTAB", dep); if (_tab_lbu->read() == NOERR) { - numfin_paglib = _tab_lbu->get_long("I1"); + long numfin_paglib = _tab_lbu->get_long("I1"); numfin_paglib += get_page_number(); _tab_lbu->put("I1", numfin_paglib); _tab_lbu->rewrite(); @@ -369,7 +366,7 @@ void BA3600_application::postclose_print() } } -bool BA3600_application::preprocess_page(int file, int counter) +bool TStampa_indici::preprocess_page(int file, int counter) { struct ind_lib* lib = (struct ind_lib*) _buff; long nini_plib; @@ -436,7 +433,7 @@ bool BA3600_application::preprocess_page(int file, int counter) return TRUE; } -void BA3600_application::set_page(int file, int counter) +void TStampa_indici::set_page(int file, int counter) { if (_tipo_stampa == 1) setta_righe_prova(); @@ -444,11 +441,9 @@ void BA3600_application::set_page(int file, int counter) setta_righe_bollato(); } -void BA3600_application::setta_righe_prova() +void TStampa_indici::setta_righe_prova() { - int i; - - i = 1; + int i = 1; if (_pag_fuori_sequenza) set_row (i++,"@10gPAGINE FUORI SEQUENZA"); @@ -481,11 +476,9 @@ void BA3600_application::setta_righe_prova() set_row (i ,"@27g#t #t #t #t #t", &_ind_dta, &_civ_dta, &_cap_dta, &_com_dta, &_prov_dta); } -void BA3600_application::setta_righe_bollato() +void TStampa_indici::setta_righe_bollato() { - int i; - - i = 1; + int i = 1; // if (_pag_fuori_sequenza) // set_row (i++,"@10gPAGINE FUORI SEQUENZA"); @@ -517,7 +510,7 @@ void BA3600_application::setta_righe_bollato() set_row (i ,"@27g#t #t #t #t #t", &_ind_dta, &_civ_dta, &_cap_dta, &_com_dta, &_prov_dta); } -print_action BA3600_application::postprocess_page(int file, int counter) +print_action TStampa_indici::postprocess_page(int file, int counter) { if (_buff == NULL) return NEXT_PAGE; @@ -525,7 +518,7 @@ print_action BA3600_application::postprocess_page(int file, int counter) return REPEAT_PAGE; } -const char* BA3600_application::ragsoc_ditta(long codditta) +const char* TStampa_indici::ragsoc_ditta(long codditta) { TLocalisamfile nditte(LF_NDITTE); @@ -541,7 +534,7 @@ const char* BA3600_application::ragsoc_ditta(long codditta) return tmp; } -void BA3600_application::dati_anagrafici_ditta(TString& ind,TString& civ,TString& cap, +void TStampa_indici::dati_anagrafici_ditta(TString& ind,TString& civ,TString& cap, TString& com,TString& prov) { TLocalisamfile anag (LF_ANAG); @@ -581,7 +574,7 @@ void BA3600_application::dati_anagrafici_ditta(TString& ind,TString& civ,TString } } -const char* BA3600_application::descrizione_codreg(const TString& codreg) +const char* TStampa_indici::descrizione_codreg(const TString& codreg) { TString16 dep; dep.format("%4d%-3s", _anno, (const char*)codreg); @@ -598,7 +591,7 @@ const char* BA3600_application::descrizione_codreg(const TString& codreg) return tmp; } -void BA3600_application::compatta_ragsoc(TString& ragsoc) +void TStampa_indici::compatta_ragsoc(TString& ragsoc) { TString app; @@ -612,7 +605,7 @@ void BA3600_application::compatta_ragsoc(TString& ragsoc) } } -void BA3600_application::preprocess_header() +void TStampa_indici::preprocess_header() { if (_tipo_stampa ==1) crea_intestazione_prova(); @@ -621,7 +614,7 @@ void BA3600_application::preprocess_header() crea_intestazione_bollato(); } -void BA3600_application::crea_intestazione_prova() +void TStampa_indici::crea_intestazione_prova() { TString datastampastr; TString sep(132); @@ -658,7 +651,7 @@ void BA3600_application::crea_intestazione_prova() set_header (7, (const char *) sep); } -void BA3600_application::crea_intestazione_bollato() +void TStampa_indici::crea_intestazione_bollato() { TString datastampastr; TString sep(132); @@ -699,7 +692,7 @@ void BA3600_application::crea_intestazione_bollato() set_header (7, (const char *) sep); } -bool BA3600_application::user_create() +bool TStampa_indici::user_create() { _nditte = new TLocalisamfile (LF_NDITTE); _anag = new TLocalisamfile (LF_ANAG); @@ -712,7 +705,7 @@ bool BA3600_application::user_create() return TRUE; } -bool BA3600_application::user_destroy() +bool TStampa_indici::user_destroy() { delete _msk; @@ -721,17 +714,20 @@ bool BA3600_application::user_destroy() delete _nditte; delete _anag; delete _comuni; + + // Guy's wise advice + if (_lib) + delete _lib; + if (_sort) + delete _sort; return TRUE; } int ba3600 (int argc, char* argv[]) { - - BA3600_application a; - + TStampa_indici a; a.run(argc, argv, "Stampa indici registro libro unico"); - return 0; } diff --git a/ba/ba3600a.uml b/ba/ba3600a.uml index ea3df7191..8bc07a3e1 100755 --- a/ba/ba3600a.uml +++ b/ba/ba3600a.uml @@ -45,12 +45,12 @@ END TEXT F_TITOLO_PROVA BEGIN - PROMPT -11 7 "STAMPA DI PROVA" + PROMPT -11 7 "@bSTAMPA DI PROVA" END TEXT F_TITOLO_BOLLATO BEGIN - PROMPT -11 7 "STAMPA SU LIBRI BOLLATI DELLO STUDIO" + PROMPT -11 7 "@bSTAMPA SU LIBRI BOLLATI DELLO STUDIO" END DATE F_DATA_STAMPA