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
This commit is contained in:
guy 1997-01-09 16:31:26 +00:00
parent 8c47fa1eee
commit 97e94f2c91
3 changed files with 58 additions and 63 deletions

View File

@ -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;
}

View File

@ -1,8 +1,6 @@
#include <mask.h>
#include <printapp.h>
//#include <relation.h>
#include <tabutil.h>
//#include <utility.h>
#include <sort.h>
#include <progind.h>
#include <prefix.h>
@ -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;
}

View File

@ -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