Correzioni varie alla stampa indici libro unico per ditta.
(almeno adesso funziona) git-svn-id: svn://10.65.10.50/trunk@4148 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
578d083848
commit
342991b8a5
629
ba/ba3601.cpp
629
ba/ba3601.cpp
@ -8,10 +8,11 @@ bool Stp_indici_LUnico::user_create()
|
||||
_anag = new TLocalisamfile (LF_ANAG);
|
||||
_comuni = new TLocalisamfile (LF_COMUNI);
|
||||
_indlib = new TLocalisamfile (LF_INDLIB);
|
||||
|
||||
_tab_lbu = new TTable (TAB_LBU);
|
||||
|
||||
_tab_reg = NULL;
|
||||
_msk = new TMask("ba3601a");
|
||||
_msk->set_handler(F_CODDITTA, registri_ditta_hnd);
|
||||
_sort = NULL;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -19,12 +20,13 @@ bool Stp_indici_LUnico::user_create()
|
||||
bool Stp_indici_LUnico::user_destroy()
|
||||
{
|
||||
delete _msk;
|
||||
|
||||
delete _tab_lbu;
|
||||
delete _indlib;
|
||||
delete _nditte;
|
||||
delete _anag;
|
||||
delete _comuni;
|
||||
if (_sort) delete _sort;
|
||||
if (_tab_reg) delete _tab_reg;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -39,6 +41,7 @@ bool Stp_indici_LUnico::registri_ditta_hnd(TMask_field& f, KEY k)
|
||||
return f.error_box("La ditta e' obbligatoria");
|
||||
long old_dta = a().get_firm();
|
||||
TString cod_lu = f.mask().get(F_LIBRO_UNICO1);
|
||||
if (!prefix().exist(ditta)) return f.error_box("La ditta %ld non ha nessun registro",ditta);
|
||||
a().set_firm(ditta);
|
||||
int anno = f.mask().get_int(F_ANNO);
|
||||
TTable reg ("REG");
|
||||
@ -61,26 +64,75 @@ bool Stp_indici_LUnico::registri_ditta_hnd(TMask_field& f, KEY k)
|
||||
}
|
||||
a().set_firm(old_dta);
|
||||
if (!trovato)
|
||||
return f.error_box("La ditta %d per l'anno %d non ha registri che vengono stampati sul libro unico", ditta, anno);
|
||||
return f.error_box("La ditta %ld per l'anno %d non ha registri che vengono stampati sul libro unico", ditta, anno);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::ragsoc_ditta(long codditta)
|
||||
{
|
||||
|
||||
_nditte->zero();
|
||||
_nditte->put(NDT_CODDITTA, codditta);
|
||||
_nditte->read();
|
||||
if (_nditte->bad())
|
||||
_nditte->zero();
|
||||
_ragsoc_dta = _nditte->get(NDT_RAGSOC);
|
||||
_tipoa_ditta = _nditte->get_char(NDT_TIPOA);
|
||||
_codana_ditta = _nditte->get_long(NDT_CODANAGR);
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::dati_anagrafici_ditta()
|
||||
{
|
||||
_anag->setkey(1);
|
||||
_anag->zero();
|
||||
_anag->put(ANA_TIPOA, _tipoa_ditta);
|
||||
_anag->put(ANA_CODANAGR, _codana_ditta);
|
||||
if (_anag->read(_isequal) == NOERR)
|
||||
{
|
||||
_cofi_dta = _anag->get(ANA_COFI);
|
||||
_paiv_dta = _anag->get(ANA_PAIV);
|
||||
if (_tipoa_ditta == 'G')
|
||||
{
|
||||
_codcom_dta = _anag->get(ANA_COMRF);
|
||||
_ind_dta = _anag->get(ANA_INDRF);
|
||||
_civ_dta = _anag->get(ANA_CIVRF);
|
||||
_cap_dta = _anag->get(ANA_CAPRF);
|
||||
}
|
||||
else
|
||||
{
|
||||
_codcom_dta = _anag->get(ANA_COMRES);
|
||||
_ind_dta = _anag->get(ANA_INDRES);
|
||||
_civ_dta = _anag->get(ANA_CIVRES);
|
||||
_cap_dta = _anag->get(ANA_CAPRES);
|
||||
}
|
||||
}
|
||||
|
||||
_comuni->setkey(1);
|
||||
_comuni->zero();
|
||||
_comuni->put(COM_COM, _codcom_dta);
|
||||
if (_comuni->read(_isequal) == NOERR)
|
||||
{
|
||||
_com_dta = _comuni->get(COM_DENCOM);
|
||||
_prov_dta = _comuni->get(COM_PROVCOM);
|
||||
}
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::dati_libro_unico()
|
||||
{
|
||||
TTable lbu ("%LBU");
|
||||
TString dep;
|
||||
dep.format("%4d%-3s", _anno, (const char*) _codlib);
|
||||
|
||||
lbu.put("CODTAB", (const char*) dep);
|
||||
_tab_lbu->put("CODTAB", (const char*) dep);
|
||||
|
||||
if (lbu.read(_isequal) == NOERR)
|
||||
if (_tab_lbu->read(_isequal) == NOERR)
|
||||
{
|
||||
_stampa_intesta = lbu.get_bool("B0");
|
||||
_stampa_ind = lbu.get_bool("B1");
|
||||
_tipo_intesta = lbu.get_char("S2");
|
||||
_codana_intesta = lbu.get_long("I4");
|
||||
_desc_cod_lib = lbu.get ("S0");
|
||||
//_stampa_intesta = _tab_lbu->get_bool("B0");
|
||||
//_stampa_ind = _tab_lbu->get_bool("B1");
|
||||
_tipo_intesta = _tab_lbu->get_char("S2");
|
||||
_codana_intesta = _tab_lbu->get_long("I4");
|
||||
_desc_cod_lib = _tab_lbu->get ("S0");
|
||||
}
|
||||
}
|
||||
|
||||
@ -123,186 +175,28 @@ void Stp_indici_LUnico::intestatario()
|
||||
}
|
||||
}
|
||||
|
||||
bool Stp_indici_LUnico::set_print(int)
|
||||
{
|
||||
KEY tasto;
|
||||
|
||||
_msk->set_handler(F_CODDITTA, registri_ditta_hnd);
|
||||
|
||||
tasto = _msk->run();
|
||||
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
_codlib = _msk->get(F_LIBRO_UNICO1);
|
||||
_datastampa = _msk->get_date(F_DATA_STAMPA);
|
||||
_meseda = _msk->get_int (F_MESEDA);
|
||||
_mesea = _msk->get_int (F_MESEA);
|
||||
_anno = _msk->get_int (F_ANNO);
|
||||
_ditta = _msk->get_long(F_CODDITTA);
|
||||
|
||||
// _meseprec = 0;
|
||||
|
||||
// _pag_fuori_sequenza = FALSE;
|
||||
|
||||
ragsoc_ditta(_ditta);
|
||||
dati_anagrafici_ditta();
|
||||
dati_libro_unico();
|
||||
intestatario();
|
||||
|
||||
// crea_sort();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::ragsoc_ditta(long codditta)
|
||||
{
|
||||
TLocalisamfile nditte(LF_NDITTE);
|
||||
|
||||
nditte.zero();
|
||||
nditte.put(NDT_CODDITTA, codditta);
|
||||
nditte.read();
|
||||
if (nditte.bad())
|
||||
nditte.zero();
|
||||
_ragsoc_dta = nditte.get(NDT_RAGSOC);
|
||||
_tipoa_ditta = nditte.get_char(NDT_TIPOA);
|
||||
_codana_ditta = nditte.get_long(NDT_CODANAGR);
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::dati_anagrafici_ditta()
|
||||
{
|
||||
TLocalisamfile anag (LF_ANAG);
|
||||
TLocalisamfile comuni (LF_COMUNI);
|
||||
|
||||
anag.setkey(1);
|
||||
anag.zero();
|
||||
anag.put(ANA_TIPOA, _tipoa_ditta);
|
||||
anag.put(ANA_CODANAGR, _codana_ditta);
|
||||
if (anag.read(_isequal) == NOERR)
|
||||
{
|
||||
if (_tipo_ditta == 'G')
|
||||
{
|
||||
_codcom_dta = anag.get(ANA_COMRF);
|
||||
_ind_dta = anag.get(ANA_INDRF);
|
||||
_civ_dta = anag.get(ANA_CIVRF);
|
||||
_cap_dta = anag.get(ANA_CAPRF);
|
||||
}
|
||||
else
|
||||
{
|
||||
_codcom_dta = anag.get(ANA_COMRES);
|
||||
_ind_dta = anag.get(ANA_INDRES);
|
||||
_civ_dta = anag.get(ANA_CIVRES);
|
||||
_cap_dta = anag.get(ANA_CAPRES);
|
||||
}
|
||||
}
|
||||
|
||||
comuni.setkey(1);
|
||||
comuni.zero();
|
||||
comuni.put(COM_COM, _codcom_dta);
|
||||
if (comuni.read(_isequal) == NOERR)
|
||||
{
|
||||
_com_dta = comuni.get(COM_DENCOM);
|
||||
_prov_dta = comuni.get(COM_PROVCOM);
|
||||
}
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::descrizione_codreg(const TString& codreg, TString& desc)
|
||||
{
|
||||
TString16 dep;
|
||||
dep.format("%4d%-3s", _anno, (const char*)codreg);
|
||||
TTable tab_reg("REG");
|
||||
|
||||
tab_reg.zero();
|
||||
tab_reg.put("CODTAB", dep);
|
||||
tab_reg.read();
|
||||
|
||||
if (tab_reg.bad())
|
||||
tab_reg.zero();
|
||||
desc = tab_reg.get("S0");
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::compatta_ragsoc(TString& ragsoc)
|
||||
{
|
||||
TString app;
|
||||
|
||||
if (_tipo_intesta == 'F')
|
||||
{
|
||||
app = ragsoc.mid(29,20);
|
||||
app.trim();
|
||||
ragsoc = ragsoc.mid(0,30);
|
||||
ragsoc.trim();
|
||||
ragsoc << ' ' << app;
|
||||
}
|
||||
}
|
||||
/*
|
||||
void Stp_indici_LUnico::crea_intestazione_prova()
|
||||
{
|
||||
TString datastampastr;
|
||||
TString sep(132);
|
||||
TString cofi,paiv,ind,civ,cap,com,prov,ragsoc;
|
||||
|
||||
compatta_ragsoc(ragsoc);
|
||||
|
||||
reset_header();
|
||||
|
||||
set_header (1,"Studio %s %s %s %s %s %s", (const char*) ragsoc,(const char*) ind,(const char*) civ,
|
||||
(const char*) cap,(const char*) com,(const char*) prov);
|
||||
|
||||
sep << "Pag. @#";
|
||||
sep.right_just(132);
|
||||
set_header (2,(const char*) sep);
|
||||
|
||||
datastampastr = _datastampa.string();
|
||||
|
||||
set_header (2,"@0gPartita iva %11s", (const char*) paiv);
|
||||
set_header (2,"@30gCodice fiscale %16s", (const char*) cofi);
|
||||
set_header (2,"@75gLIBRO UNICO DI PROVA");
|
||||
set_header (2,"@105gData@110g%s",(const char*) datastampastr);
|
||||
|
||||
set_header (3,"@0gLibro unico : %s %s", (const char*) _codlib,(const char*) _desc_cod_lib);
|
||||
TString mese = itom(_mese);
|
||||
set_header (3,"@75gmese di %s", (const char*) mese);
|
||||
set_header (3,"@92g%4d", _anno);
|
||||
|
||||
sep.fill('-'); //Stampa 132 - (sep(132))
|
||||
set_header (4, (const char *) sep);
|
||||
set_header (5,"@0gCod.@6gNumero@13gpagine@21gCodice@69gCod.@104gCodice@111gN.pag.@118gutente@126gNum.@131gS");
|
||||
set_header (6,"@0gLibro@8gda@16ga@21gditta@28gDenominazione@69greg.@74gDescrizione@104gvidim.@112gutilizzate@126greg.@131gB");
|
||||
set_header (7, (const char *) sep);
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::init_sort()
|
||||
{
|
||||
_lib = new ind_lib;
|
||||
_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->init();
|
||||
}
|
||||
|
||||
//Crea sort ordina i record della tabella %INL per mese registrazione, anno
|
||||
//registrazione e numero iniziale pagine registro libro unico
|
||||
//Crea sort ordina i record della tabella per mese registrazione,
|
||||
//numero iniziale pagine registro libro unico
|
||||
|
||||
void Stp_indici_LUnico::crea_sort()
|
||||
{
|
||||
long anno,numini_paglib,numfin_paglib,codditta,numini_pagut,numfin_pagut;
|
||||
TString cod_reg,cod_vidimaz,dep,app;
|
||||
long mese, ultimo_mese;
|
||||
bool stamp_bollato = FALSE;
|
||||
bool pagine_ann = FALSE;
|
||||
bool stampato = FALSE;
|
||||
mese = 0;
|
||||
ultimo_mese = 0;
|
||||
|
||||
init_sort();
|
||||
TString dep;
|
||||
int mese;
|
||||
long ditta;
|
||||
|
||||
ind_lib lib;
|
||||
|
||||
if (_sort) delete _sort;
|
||||
_sort = new TSort (sizeof(ind_lib));
|
||||
|
||||
_sort -> addsortkey((char*)&(lib.mese) - (char*)&(lib.mese),2);
|
||||
_sort -> addsortkey((char*)&(lib.nini_plib) - (char*)&(lib.mese),5);
|
||||
_sort->init();
|
||||
set_firm(_ditta);
|
||||
|
||||
if (_tab_reg != NULL) delete _tab_reg;
|
||||
_tab_reg = new TTable ("REG");
|
||||
_tab_lbu->zero();
|
||||
// TString dep (format ("%4d%-3s", _anno, (const char*) _codlib));
|
||||
// sprintf(__tmp, "%4d", _anno);
|
||||
// strcat (__tmp, _codlib);
|
||||
dep.format ("%4d%-3s", _anno, (const char*)_codlib);
|
||||
_tab_lbu->put("CODTAB", (const char*) dep);
|
||||
|
||||
@ -319,268 +213,181 @@ void Stp_indici_LUnico::crea_sort()
|
||||
{
|
||||
if (_indlib->curr() > rec) break;
|
||||
|
||||
mese = _indlib->get_int("MESEREG");
|
||||
mese = _indlib->get_int("MESEREG");
|
||||
ditta = _indlib->get_long("CODDITTA");
|
||||
|
||||
if (((_tipo_stampa == 1) && (mese >= _meseda) && (mese <= _mesea)) ||
|
||||
((_tipo_stampa == 2) && (mese <= _mesea)))
|
||||
if (mese >= _meseda && mese <= _mesea && ditta == _ditta)
|
||||
{
|
||||
long num_riga = _indlib->get_long("NUMREG");
|
||||
anno = _indlib->get_long("ANNOREG");
|
||||
numini_paglib = _indlib->get_long("PAGINI");
|
||||
numfin_paglib = _indlib->get_long("PAGFIN");
|
||||
codditta = _indlib->get_long("CODDITTA");
|
||||
cod_reg = _indlib->get("CODREG");
|
||||
cod_vidimaz = _indlib->get("CODVID");
|
||||
numini_pagut = _indlib->get_long("PAGINIUT");
|
||||
numfin_pagut = _indlib->get_long("PAGFINUT");
|
||||
stamp_bollato = _indlib->get_bool("STAMPATO");
|
||||
pagine_ann = _indlib->get_bool("ANNULLATE");
|
||||
|
||||
//Se tipo_stampa = 1 (stampa di prova) stampo ugualmente. Se tipo_stampa = 2
|
||||
// (stampa su bollato), stampo solamente se il flag di stampa su bollato e'
|
||||
// FALSE.
|
||||
|
||||
if ((_tipo_stampa == 1) || ((_tipo_stampa == 2) && (!stamp_bollato)))
|
||||
{
|
||||
ultimo_mese = mese;
|
||||
stampato = TRUE;
|
||||
sprintf (_lib->anno, "%4d", anno);
|
||||
sprintf (_lib->mese, "%2d", mese);
|
||||
sprintf (_lib->nini_plib, "%5d", numini_paglib);
|
||||
_lib->num_riga = num_riga;
|
||||
_lib->nfin_plib = numfin_paglib;
|
||||
_lib->codditta = codditta;
|
||||
sprintf (_lib->cod_reg, "%3s", (const char*) cod_reg);
|
||||
_lib->nini_put = numini_pagut;
|
||||
_lib->nfin_put = numfin_pagut;
|
||||
sprintf (_lib->cod_vid, "%3s", (const char*) cod_vidimaz);
|
||||
_lib->stamp_bol = stamp_bollato;
|
||||
_lib->pag_ann = pagine_ann;
|
||||
_sort->sort ((const char*) _lib);
|
||||
|
||||
//Se si tratta di una stampa su bollato e il flag "stampa su bollato" indica
|
||||
//che non e' mai stato stampato su bollato (flag = FALSE), allora devo stampare
|
||||
//il record della tabella %INL, e contemporaneamente aggiornare il flag, per
|
||||
//evitare di ristampare successivamente su bollato
|
||||
|
||||
if (_tipo_stampa == 2)
|
||||
{
|
||||
_indlib->put("STAMPATO", "X");
|
||||
_indlib->rewrite();
|
||||
}
|
||||
}
|
||||
sprintf (lib.mese, "%2d", mese);
|
||||
sprintf (lib.nini_plib, "%5ld", _indlib->get_long("PAGINI"));
|
||||
lib.nfin_plib = _indlib->get_long("PAGFIN");
|
||||
sprintf (lib.cod_reg, "%-3s", (const char*) _indlib->get("CODREG"));
|
||||
lib.nini_put = _indlib->get_long("PAGINIUT");
|
||||
lib.nfin_put = _indlib->get_long("PAGFINUT");
|
||||
sprintf (lib.cod_vid, "%3s", (const char*) _indlib->get("CODVID"));
|
||||
lib.pag_ann = _indlib->get_bool("ANNULLATE");
|
||||
_sort->sort ((const char*) &lib);
|
||||
}
|
||||
}
|
||||
_sort->endsort();
|
||||
}
|
||||
_sort->endsort();
|
||||
}
|
||||
|
||||
// Se si tratta di una stampa su libro bollato, aggiorno sulla tabella %LBU
|
||||
// l' ultimo mese stampato, l' ultima pagina stampata e il flag che indica se
|
||||
// quel record e' stato stampato su bollato
|
||||
|
||||
if ((_tipo_stampa == 2) && (stampato)) // stampato e' il flag che mi dice
|
||||
{ //se almeno un record, nella stampa
|
||||
_tab_lbu->put("I0", ultimo_mese); //su bollato, va in stampa. In caso
|
||||
if (_codlib == _cod_lib_stampa) //contrario non avrebbe senso
|
||||
_tab_lbu->put("I1", numfin_paglib);//aggiornare %LBU. ES:tutti i record
|
||||
_tab_lbu->rewrite(); //di quel mese sono gia stati stampati
|
||||
} //su bollato (flag = TRUE).
|
||||
} //Comunque il numero ultima pagina stampata va aggiornato
|
||||
//con l'ultima pagina dell'ultimo indice solo se il i libri
|
||||
//selezionati sono gli stessi (libro di studio e libro di stampa).
|
||||
bool Stp_indici_LUnico::set_print(int)
|
||||
{
|
||||
KEY tasto;
|
||||
|
||||
*/
|
||||
void Stp_indici_LUnico::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))
|
||||
tasto = _msk->run();
|
||||
_oldditta = get_firm();
|
||||
if (tasto == K_ENTER)
|
||||
{
|
||||
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);
|
||||
if (_tab_lbu->read() == NOERR)
|
||||
{
|
||||
numfin_paglib = _tab_lbu->get_long("I1");
|
||||
numfin_paglib += get_page_number();
|
||||
_tab_lbu->put("I1", numfin_paglib);
|
||||
_tab_lbu->rewrite();
|
||||
}
|
||||
}
|
||||
*/
|
||||
_ended = FALSE;
|
||||
_meseprec = "";
|
||||
_codlib = _msk->get(F_LIBRO_UNICO1);
|
||||
_datastampa = _msk->get_date(F_DATA_STAMPA);
|
||||
_meseda = _msk->get_int (F_MESEDA);
|
||||
_mesea = _msk->get_int (F_MESEA);
|
||||
_anno = _msk->get_int (F_ANNO);
|
||||
_ditta = _msk->get_long(F_CODDITTA);
|
||||
ragsoc_ditta(_ditta);
|
||||
dati_anagrafici_ditta();
|
||||
dati_libro_unico();
|
||||
intestatario();
|
||||
crea_sort();
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::descrizione_codreg(const TString& codreg, TString& desc)
|
||||
{
|
||||
TString16 dep;
|
||||
dep.format("%4d%-3s", _anno, (const char*)codreg);
|
||||
|
||||
_tab_reg->zero();
|
||||
_tab_reg->put("CODTAB", dep);
|
||||
_tab_reg->read();
|
||||
|
||||
if (_tab_reg->bad())
|
||||
_tab_reg->zero();
|
||||
desc = _tab_reg->get("S0");
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::compatta_ragsoc(TString& ragsoc)
|
||||
{
|
||||
TString app;
|
||||
|
||||
if (_tipo_intesta == 'F')
|
||||
{
|
||||
app = ragsoc.mid(29,20);
|
||||
app.trim();
|
||||
ragsoc = ragsoc.mid(0,30);
|
||||
ragsoc.trim();
|
||||
ragsoc << ' ' << app;
|
||||
}
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::postclose_print()
|
||||
{
|
||||
set_firm(_oldditta);
|
||||
}
|
||||
|
||||
bool Stp_indici_LUnico::preprocess_page(int file, int counter)
|
||||
{
|
||||
/*
|
||||
struct ind_lib* lib = (struct ind_lib*) _buff;
|
||||
long nini_plib;
|
||||
|
||||
reset_print();
|
||||
|
||||
_buff = _sort->retrieve();
|
||||
|
||||
if (_buff != NULL)
|
||||
struct ind_lib* lib = (struct ind_lib*) _sort->retrieve();
|
||||
if (lib == NULL)
|
||||
{
|
||||
lib = (struct ind_lib*) _buff;
|
||||
|
||||
_mese = atoi(lib->mese);
|
||||
_numini_paglib = atoi(lib->nini_plib);
|
||||
_numfin_paglib = lib->nfin_plib;
|
||||
_codditta = lib->codditta;
|
||||
// _rag_soc = ragsoc_ditta(_codditta);
|
||||
// dati_anagrafici_ditta(_ind_dta,_civ_dta,_cap_dta,_com_dta,_prov_dta);
|
||||
_cod_reg = lib->cod_reg;
|
||||
if (_codditta > 0 && prefix().exist(_codditta))
|
||||
{
|
||||
prefix().set_codditta(_codditta); // change firm to get register description
|
||||
// _descrizione = descrizione_codreg(_cod_reg);
|
||||
}
|
||||
else
|
||||
_descrizione = "";
|
||||
_cod_vidimaz = lib->cod_vid;
|
||||
_numini_pagut = lib->nini_put;
|
||||
_numfin_pagut = lib->nfin_put;
|
||||
_num_riga = lib->num_riga;
|
||||
_stamp_bollato = lib->stamp_bol;
|
||||
_pag_ann = lib->pag_ann;
|
||||
if (_stamp_bollato)
|
||||
_stamp_bollato_str = "X";
|
||||
else
|
||||
_stamp_bollato_str = "";
|
||||
|
||||
//Il controllo di pagine fuori sequenza viene sempre effettuato, tranne che per
|
||||
//il primo record. (solo per stampa di prova)
|
||||
|
||||
if ( (counter) && (_tipo_stampa == 1) )
|
||||
{
|
||||
nini_plib = _numini_paglib - 1;
|
||||
|
||||
if (_nfin_plib_prec != nini_plib)
|
||||
_pag_fuori_sequenza = TRUE;
|
||||
else
|
||||
_pag_fuori_sequenza = FALSE;
|
||||
}
|
||||
|
||||
if (counter)
|
||||
if (_mese != _meseprec)
|
||||
printer().formfeed();
|
||||
|
||||
_meseprec = _mese;
|
||||
|
||||
_nfin_plib_prec = _numfin_paglib;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
_ended = TRUE;
|
||||
return FALSE;
|
||||
*/
|
||||
}
|
||||
|
||||
_mese = itom(atoi(lib->mese));
|
||||
if (_mese == _meseprec) _mese = "";
|
||||
else _meseprec = _mese;
|
||||
_numini_paglib = atol(lib->nini_plib);
|
||||
_numfin_paglib = lib->nfin_plib;
|
||||
_cod_reg = lib->cod_reg;
|
||||
descrizione_codreg(_cod_reg,_descrizione);
|
||||
_cod_vidimaz = lib->cod_vid;
|
||||
_numini_pagut = lib->nini_put;
|
||||
_numfin_pagut = lib->nfin_put;
|
||||
_pag_ann = lib->pag_ann;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::set_page(int file, int counter)
|
||||
{
|
||||
/*
|
||||
if (_tipo_stampa == 1)
|
||||
setta_righe_prova();
|
||||
else if (_tipo_stampa == 2)
|
||||
setta_righe_bollato();
|
||||
*/
|
||||
}
|
||||
/*
|
||||
void Stp_indici_LUnico::setta_righe_prova()
|
||||
{
|
||||
int i;
|
||||
|
||||
i = 1;
|
||||
|
||||
print_header();
|
||||
set_row (i, "@0g#t", &_mese);
|
||||
set_row (i, "@22g#t", &_cod_vidimaz);
|
||||
set_row (i, "@27g#5d", &_numini_paglib);
|
||||
set_row (i, "@35g#5d", &_numfin_paglib);
|
||||
|
||||
if (_pag_fuori_sequenza)
|
||||
set_row (i++,"@10gPAGINE FUORI SEQUENZA");
|
||||
|
||||
set_row (i, "@1g#t", &_codlib);
|
||||
set_row (i, "@6g#5d", &_numini_paglib);
|
||||
set_row (i, "@13g#5d", &_numfin_paglib);
|
||||
|
||||
if ((_pag_ann) && (_codditta == 0))
|
||||
set_row (i,"@27gPAGINE ANNULLATE");
|
||||
if (_pag_ann && _cod_reg == "")
|
||||
set_row (i,"@53gPAGINE ANNULLATE");
|
||||
else
|
||||
{
|
||||
set_row (i,"@21g#5ld", &_codditta);
|
||||
set_row (i,"@27g#.41t", &_rag_soc);
|
||||
}
|
||||
if ((_pag_ann) && (_codditta != 0) && (_cod_reg == ""))
|
||||
set_row (i,"@73gPAGINE ANNULLATE");
|
||||
else
|
||||
{
|
||||
set_row (i,"@69g#t", &_cod_reg);
|
||||
set_row (i,"@73g#.31t", &_descrizione);
|
||||
set_row (i,"@50g#t", &_cod_reg);
|
||||
set_row (i,"@54g#t", &_descrizione);
|
||||
}
|
||||
|
||||
set_row (i, "@105g#t", &_cod_vidimaz);
|
||||
set_row (i, "@111g#5d", &_numini_pagut);
|
||||
set_row (i, "@117g#5d", &_numfin_pagut);
|
||||
set_row (i, "@124g#5d", &_num_riga);
|
||||
set_row (i++,"@131g#t", &_stamp_bollato_str);
|
||||
if (_stampa_ind && !_pag_ann)
|
||||
set_row (i ,"@27g#t #t #t #t #t", &_ind_dta, &_civ_dta, &_cap_dta, &_com_dta, &_prov_dta);
|
||||
set_row (i, "@85g#5d", &_numini_pagut);
|
||||
set_row (i, "@93g#5d", &_numfin_pagut);
|
||||
}
|
||||
|
||||
void Stp_indici_LUnico::setta_righe_bollato()
|
||||
{
|
||||
int i;
|
||||
|
||||
i = 1;
|
||||
|
||||
// if (_pag_fuori_sequenza)
|
||||
// set_row (i++,"@10gPAGINE FUORI SEQUENZA");
|
||||
|
||||
set_row (i,"@1g#t", &_codlib);
|
||||
set_row (i,"@6g#5d", &_numini_paglib);
|
||||
set_row (i,"@13g#5d", &_numfin_paglib);
|
||||
|
||||
if ((_pag_ann) && (_codditta == 0))
|
||||
set_row (i,"@27gPAGINE ANNULLATE");
|
||||
else
|
||||
{
|
||||
set_row (i,"@21g#5ld", &_codditta);
|
||||
set_row (i,"@27g#.41t", &_rag_soc);
|
||||
}
|
||||
if ((_pag_ann) && (_codditta != 0) && (_cod_reg == ""))
|
||||
set_row (i,"@73gPAGINE ANNULLATE");
|
||||
else
|
||||
{
|
||||
set_row (i,"@69g#t", &_cod_reg);
|
||||
set_row (i,"@73g#.31t", &_descrizione);
|
||||
}
|
||||
|
||||
set_row (i,"@105g#t", &_cod_vidimaz);
|
||||
set_row (i,"@111g#5d", &_numini_pagut);
|
||||
set_row (i++,"@117g#5d", &_numfin_pagut);
|
||||
// set_row (i++,"@130g#t", &_stamp_bollato_str);
|
||||
if (_stampa_ind && !_pag_ann)
|
||||
set_row (i ,"@27g#t #t #t #t #t", &_ind_dta, &_civ_dta, &_cap_dta, &_com_dta, &_prov_dta);
|
||||
}
|
||||
*/
|
||||
print_action Stp_indici_LUnico::postprocess_page(int file, int counter)
|
||||
{
|
||||
/*
|
||||
if (_buff == NULL) */
|
||||
return NEXT_PAGE;
|
||||
|
||||
// return REPEAT_PAGE;
|
||||
if (_ended) return NEXT_PAGE;
|
||||
return REPEAT_PAGE;
|
||||
}
|
||||
|
||||
|
||||
void Stp_indici_LUnico::preprocess_header()
|
||||
void Stp_indici_LUnico::print_header()
|
||||
{
|
||||
// if (_tipo_stampa ==1)
|
||||
// crea_intestazione_prova();
|
||||
// else
|
||||
// if (_tipo_stampa == 2)
|
||||
// crea_intestazione_bollato();
|
||||
TString sep(132);
|
||||
TString ind(_ind);
|
||||
|
||||
reset_header();
|
||||
ind << ", " << _civ;
|
||||
compatta_ragsoc(_ragsoc);
|
||||
// Dati studio
|
||||
if (_ragsoc.len() > 50) _ragsoc.cut(50);
|
||||
set_header (1,"Studio %-50s @60g%s @110g%s @116g%-13s @129g%s",
|
||||
(const char*)_ragsoc, (const char*)ind, (const char*)_cap, (const char*)_com, (const char*)_prov);
|
||||
sep << "Pag. @#";
|
||||
sep.right_just(132);
|
||||
set_header (2,(const char*) sep);
|
||||
set_header (2,"@0gPartita iva %-11s", (const char*)_paiv);
|
||||
set_header (2,"@26gCodice fiscale %-16s", (const char*)_cofi);
|
||||
set_header (2,"@105gData %s",(const char*) _datastampa.string());
|
||||
set_header (3,"@0gLibro unico : %s %s", (const char*)_codlib, (const char*)_desc_cod_lib);
|
||||
set_header (3,"@70gANNO %4d", _anno);
|
||||
sep.fill('-');
|
||||
set_header(4, (const char *) sep);
|
||||
// Dati ditta
|
||||
ind = _ind_dta;
|
||||
ind << ", " << _civ_dta;
|
||||
if (_ragsoc_dta.len() > 45) _ragsoc_dta.cut(45);
|
||||
set_header(5,"Ditta %05ld %-45s @60g%s @110g%s @116g%-13s @129g%s",
|
||||
_ditta,(const char*)_ragsoc_dta,(const char*) ind,(const char*)_cap_dta,
|
||||
(const char*)_com_dta,(const char*)_prov_dta);
|
||||
set_header(6,"@0gPartita iva %-11s", (const char*)_paiv_dta);
|
||||
set_header(6,"@26gCodice fiscale %-16s", (const char*)_cofi_dta);
|
||||
set_header(7, (const char *) sep);
|
||||
// Intestazione colone
|
||||
set_header(8,"@20g---- Libro Unico ----");
|
||||
set_header(8,"@50g------------------------------");
|
||||
set_header(8,"@81gRegistri della ditta");
|
||||
set_header(8,"@102g------------------------------");
|
||||
set_header (9,"Mese @20gVidim. Da pag A pag @50gCod Descrizione @84gDa pag A pag");
|
||||
set_header (10, (const char *) sep);
|
||||
}
|
||||
|
||||
|
||||
|
32
ba/ba3601.h
32
ba/ba3601.h
@ -9,10 +9,7 @@
|
||||
#include <anagr.h>
|
||||
#include <comuni.h>
|
||||
|
||||
#include "ba3.h"
|
||||
#include "ba3600.h"
|
||||
|
||||
#define ALIAS 50
|
||||
#include "ba3600.h"
|
||||
|
||||
class Stp_indici_LUnico : public TPrintapp
|
||||
{
|
||||
@ -20,44 +17,30 @@ class Stp_indici_LUnico : public TPrintapp
|
||||
{
|
||||
char mese[3];
|
||||
char nini_plib[6];
|
||||
char anno[5];
|
||||
long num_riga;
|
||||
long nfin_plib;
|
||||
long codditta;
|
||||
char cod_reg[4];
|
||||
long nini_put;
|
||||
long nfin_put;
|
||||
char cod_vid[4];
|
||||
bool stamp_bol;
|
||||
bool pag_ann;
|
||||
};
|
||||
|
||||
TMask* _msk;
|
||||
TTable* _tab_lbu;
|
||||
TTable* _tab_lbu,*_tab_reg;
|
||||
TLocalisamfile* _indlib;
|
||||
TLocalisamfile* _nditte;
|
||||
TLocalisamfile* _anag;
|
||||
TLocalisamfile* _comuni;
|
||||
TSort* _sort;
|
||||
TProgind* _prog;
|
||||
ind_lib* _lib;
|
||||
const char* _buff;
|
||||
|
||||
TDate _datastampa;
|
||||
int _anno, _meseda, _mesea, _mese;
|
||||
TString _codlib, _desc_cod_lib;
|
||||
int _anno, _meseda, _mesea;
|
||||
TString _codlib, _desc_cod_lib,_mese,_meseprec,_cod_reg,_descrizione,_cod_vidimaz;
|
||||
TString _cofi, _paiv, _codcom, _ragsoc, _ind, _civ, _cap, _com, _prov;
|
||||
TString _cofi_dta, _paiv_dta, _codcom_dta, _ragsoc_dta, _ind_dta, _civ_dta, _cap_dta, _com_dta, _prov_dta;
|
||||
bool _stampa_intesta, _stampa_ind;
|
||||
bool _pag_ann,_ended;//_stampa_intesta, _stampa_ind;
|
||||
char _tipo_intesta, _tipoa_ditta;
|
||||
long _ditta, _codana_intesta, _codana_ditta;
|
||||
|
||||
/* int _tipo_stampa;
|
||||
long _numini_paglib, _numfin_paglib, _numini_pagut, _numfin_pagut;
|
||||
long _codditta, _pag_fin, _num_riga, _nfin_plib_prec;
|
||||
TString _cod_lib_su, _rag_soc, _cod_reg, _descrizione, _cod_vidimaz;
|
||||
TString _cod_lib_stampa, _stamp_bollato_str, _desc_cod_lib_su;
|
||||
bool _stamp_bollato, _pag_ann; */
|
||||
long _ditta,_oldditta, _numini_pagut,_numfin_pagut,_numini_paglib, _numfin_paglib, _codana_intesta, _codana_ditta;
|
||||
|
||||
public:
|
||||
|
||||
@ -70,11 +53,11 @@ public:
|
||||
virtual print_action postprocess_page (int,int);
|
||||
|
||||
virtual void postclose_print();
|
||||
virtual void preprocess_header();
|
||||
virtual void set_page(int,int);
|
||||
|
||||
void init_sort();
|
||||
void crea_sort();
|
||||
void print_header();
|
||||
bool preprocess_prova(int);
|
||||
bool preprocess_bollato();
|
||||
void crea_intestazione_prova();
|
||||
@ -91,4 +74,5 @@ public:
|
||||
static bool registri_ditta_hnd(TMask_field& f, KEY k);
|
||||
|
||||
Stp_indici_LUnico() {}
|
||||
virtual ~Stp_indici_LUnico() {}
|
||||
};
|
||||
|
@ -1,38 +1,29 @@
|
||||
#include "ba3600.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_PRINT 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 "~Stampa"
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Stampa indici libro unico" -1 -1 76 19
|
||||
PAGE "Stampa indici libro unico per ditta" 19 6 79 10
|
||||
|
||||
DATE F_DATA_STAMPA
|
||||
BEGIN
|
||||
PROMPT 4 3 "Data stampa "
|
||||
PROMPT 3 1 "Data stampa "
|
||||
HELP "Data in cui viene stampato il libro unico"
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 3 3 "Anno "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_LIBRO_UNICO1 3
|
||||
BEGIN
|
||||
PROMPT 4 5 "Codice libro unico "
|
||||
PROMPT 28 3 "Codice libro unico "
|
||||
HELP "Codice del libro da stampare"
|
||||
USE %LBU
|
||||
INPUT CODTAB[1,4] F_ANNO
|
||||
INPUT CODTAB[5,7] F_LIBRO_UNICO1
|
||||
DISPLAY "Anno riferimento " CODTAB[1,4]
|
||||
DISPLAY "Codice libro unico " CODTAB[5,7]
|
||||
DISPLAY "Anno@20" CODTAB[1,4]
|
||||
DISPLAY "Libro unico@22" CODTAB[5,7]
|
||||
OUTPUT F_ANNO CODTAB[1,4]
|
||||
OUTPUT F_LIBRO_UNICO1 CODTAB[5,7]
|
||||
CHECKTYPE REQUIRED
|
||||
@ -40,21 +31,9 @@ BEGIN
|
||||
FLAGS "UZ"
|
||||
END
|
||||
|
||||
GROUPBOX F_GRUPPO 71 7
|
||||
BEGIN
|
||||
PROMPT 4 7 ""
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 6 8 "Stampa indici dell' anno "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_MESEDA 2
|
||||
BEGIN
|
||||
PROMPT 6 10 " dal mese "
|
||||
PROMPT 3 4 "Dal mese "
|
||||
HELP "Primo mese di cui stampare i movimenti"
|
||||
NUM_EXPR {(#THIS_FIELD >= 1) && (#THIS_FIELD <= 12)}
|
||||
CHECKTYPE REQUIRED
|
||||
@ -63,7 +42,7 @@ END
|
||||
|
||||
NUMBER F_MESEA 2
|
||||
BEGIN
|
||||
PROMPT 6 12 " al mese "
|
||||
PROMPT 28 4 "Al mese "
|
||||
HELP "Ultimo mese di cui stampare i movimenti"
|
||||
NUM_EXPR {(((#THIS_FIELD >= 1) && (#THIS_FIELD <= 12)) && (#THIS_FIELD >= #F_MESEDA))}
|
||||
CHECKTYPE REQUIRED
|
||||
@ -72,23 +51,34 @@ END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 4 15 "Ditta "
|
||||
PROMPT 3 6 "Ditta "
|
||||
FLAGS "R"
|
||||
USE LF_NDITTE KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
DISPLAY "Codice" CODDITTA
|
||||
DISPLAY "Ragione sociale @50" RAGSOC
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 4 16 "Ragione sociale "
|
||||
PROMPT 28 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_PRINT 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 "~Stampa"
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
Loading…
x
Reference in New Issue
Block a user