Modifiche varie ai mastrini

git-svn-id: svn://10.65.10.50/trunk@2040 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1995-10-27 14:16:03 +00:00
parent fce4e78020
commit c47b08bc84

View File

@ -78,7 +78,8 @@ class TMastrini_application : public TPrintapp
int _annomsk,_annoesmsk,_annoes,_annomsksucc,_tipo_mask,_anno_ghost;
int _anno_corrente,_anno_precedente,_indbil,_numero_pag;
long _sottoc,_numreg,_numgio,_protiva;
bool _stampa_progressivi_si,_competenza,_inizio_stampa,_puoi_stampare,_cambia_mastrino;
bool _stampa_progressivi_si,_competenza,_inizio_stampa,_puoi_stampare;
bool _cambia_mastrino,_gia_stampata_intestazione;
char _tmcf,_tipo_contr;
TDate _dataregrmov;
@ -772,7 +773,7 @@ void TMastrini_application::saldi_zero()
while (!rmov.eof())
{
rmov.read();
//rmov.read();
char sezione = rmov.curr().get(RMV_SEZIONE)[0];
real importo = rmov.curr().get_real(RMV_IMPORTO);
int gruppo = atoi(rmov.get(RMV_GRUPPO));
@ -1413,6 +1414,11 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (_nummast == 3 || _nummast == 2)
{
int cur_row = printer().formlen() - printer().rows_left();
int diff = printer().formlen() - cur_row;
if (diff <= 13 && diff != 0)
printer().formfeed();
_rw = crea_intestazione(_rw);
calcola_progressivi();
_saldo_progressivi += _saldo_progre_prec;
@ -1441,6 +1447,11 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (_nummast == 3 || _nummast == 2)
{
int cur_row = printer().formlen() - printer().rows_left();
int diff = printer().formlen() - cur_row;
if (diff <= 13 && diff != 0)
printer().formfeed();
_rw = crea_intestazione(_rw);
_saldo_progressivi += _saldo_progre_prec;
_rw = stampa_progre_riporto(_rw);
@ -1451,6 +1462,15 @@ bool TMastrini_application::preprocess_page(int file, int counter)
case LF_RMOV:
{
//Il flag _gia_stampata_intestazione serve nella stampa in continuo, xche'
//sono costretto a richiamare l'intestazione sia nella preprocess_page (per
//i mastrini con intestazione a meta' pagina), sia nella preprocess_header
//per i mastrini che si trovano a cavallo fra una pagina e quella successiva.
//In quest'ultimo caso infatti quando vado a pagina nuova devo stampare l'intestazione
//ma senza il flag rischio di stamparla due volte.
if (_nummast == 3)
_gia_stampata_intestazione = FALSE;
if (_nummast == 1 || _nummast == 3)
_rw = 1;
@ -2249,14 +2269,11 @@ bool TMastrini_application::set_print(int)
_anno_precedente = _anno_corrente - 1;
// Scelta del formato e del numero di mastrini per pagina 1 o 2
//if (nummast == 1)
// crt = formato;
//else
// crt = (formato / 2);
//printer().formlen(crt);
//Per la stampa in continuo riservo due righe di footer, mentre per le altre no.
if (_nummast == 3)
printer().footerlen(2);
else
printer().footerlen(0);
//Crea il cursore su gruppo, conto e sottoconto del file RMOV
@ -2346,6 +2363,21 @@ void TMastrini_application::preprocess_header()
if (_puoi_stampare)
crea_intestazione();
}
else
if (_nummast == 3 && !_gia_stampata_intestazione)
{
if (_tipostampa == 3)
crea_intestazione();
else
if (_tipostampa == 2)
{
if ((_totale_saldo != 0) && (_puoi_stampare))
crea_intestazione();
}
else if (_tipostampa == 1)
if (_puoi_stampare)
crea_intestazione();
}
}
void TMastrini_application::conto(int gruppo, int conto, bool no_contropartita)
@ -2443,15 +2475,32 @@ void TMastrini_application::crea_intestazione()
set_header (1, "@0gDITTA@6g%5ld", _codice_ditta);
set_header (1, "@12g%-.45s", (const char*) _ragsoc);
set_header (1, "@59g%-.25s", (const char*) _indulc);
set_header (1, "@86g%-.9s", (const char*) _civulc);
int len = _indulc.len();
if (len <= 25)
_indulc << " " << _civulc.mid(0,9);
else
{
_indulc = _indulc.mid(0,25);
_indulc << " " << _civulc.mid(0,9);
}
set_header (1, "@59g%s", (const char*) _indulc);
//set_header (1, "@86g%-.9s", (const char*) _civulc);
set_header (1, "@97g%-.5s", (const char*) _capulc);
set_header (1, "@103g%-.18s", (const char*) _com);
set_header (1, "@122g%-.3s", (const char*) _prov);
if (_nummast == 3)
{
set_header (3, "@0gSottoconto@12g@b%d", _gruppo);
set_header (3, "@16g@b%d", _conto);
set_header (3, "@20g@b%ld", _sottoc);
}
else
{
set_header (3, "@0gSottoconto@12g%d", _gruppo);
set_header (3, "@16g%d", _conto);
set_header (3, "@20g%ld", _sottoc);
}
if (_tmcf == 'C')
_tipo_mask = 1;
@ -2496,7 +2545,7 @@ void TMastrini_application::crea_intestazione()
set_header (8,"Data");
if (_stampanum < 3)
set_header (8,"@11gnumero");
set_header (8,"@23gDocumento@42gCod.Causale@70gDescrizione@112gDare@127gAvere@133gSaldo progress.@152gSaldo movim.@169gPartita@180gIva@184gProtocollo@197gC");
set_header (8,"@23gDocumento@42gCod.Causale@70gDescrizione@112gDare@127gAvere@135gSaldo progre.@152gSaldo movim.@169gPartita@180gIva@184gProtocollo@197gC");
if (_stampa_mov_prov)
set_header(8,"@195gP");
sep1.fill('-');
@ -2572,6 +2621,9 @@ int TMastrini_application::crea_intestazione(int start_riga)
_conta_mastrini++;
if (_nummast == 3)
_gia_stampata_intestazione = TRUE;
if (_nummast == 2)
if (_cambia_mastrino)
{
@ -2586,15 +2638,32 @@ int TMastrini_application::crea_intestazione(int start_riga)
set_row (r, "@0gDITTA@6g%5ld", _codice_ditta);
set_row (r, "@12g%-45s", (const char*) _ragsoc);
set_row (r, "@59g%-25s", (const char*) _indulc);
set_row (r, "@86g%-9s", (const char*) _civulc);
int len = _indulc.len();
if (len <= 25)
_indulc << " " << _civulc.mid(0,9);
else
{
_indulc = _indulc.mid(0,25);
_indulc << " " << _civulc.mid(0,9);
}
set_row (r, "@59g%s", (const char*) _indulc);
// set_row (r, "@86g%-9s", (const char*) _civulc);
set_row (r, "@97g%-5s", (const char*) _capulc);
set_row (r, "@103g%-18s", (const char*) _com);
set_row (r, "@122g%-3s", (const char*) _prov);
r += 2;
if (_nummast == 3)
{
set_row (r, "@0gSottoconto@12g@b%d", _gruppo);
set_row (r, "@16g@b%d", _conto);
set_row (r, "@20g@b%ld", _sottoc);
}
else
{
set_row (r, "@0gSottoconto@12g%d", _gruppo);
set_row (r, "@16g%d", _conto);
set_row (r, "@20g%ld", _sottoc);
}
if (_tmcf == 'C')
_tipo_mask = 1;
@ -2642,7 +2711,7 @@ int TMastrini_application::crea_intestazione(int start_riga)
if (_stampanum < 3)
set_row (r,"@11gnumero");
set_row (r,"@23gDocumento@42gCod.Causale@70gDescrizione@112gDare@127gAvere");
set_row (r++,"@133gSaldo progress.@152gSaldo movim.@169gPartita@180gIva@184gProtocollo@197gC");
set_row (r++,"@135gSaldo progre.@152gSaldo movim.@169gPartita@180gIva@184gProtocollo@197gC");
if (_stampa_mov_prov)
set_row (r-1,"@195gP");
sep1.fill('-');
@ -3076,6 +3145,9 @@ void TMastrini_application::ricerca_clifo()
set_header(3,"@27g%-.30s",(const char*) descrizione_gruppo());
set_header(3,"@59g%-.30s",(const char*) descrizione_conto());
set_header(3, "@91g%-.41s",(const char*) ragsoc);
if (_nummast == 3)
set_header(4, "@rClasse@8g@b%c", _lettivd);
else
set_header(4, "Classe@8g%c", _lettivd);
set_header(4, "@10g%-8s", (const char*) _numrivd);
if (_numivd != 0)
@ -3092,15 +3164,31 @@ void TMastrini_application::ricerca_clifo()
datafine = _data_fine.string();
if (_annomsk == 0)
{
if (_nummast == 3)
{
set_header (5, "@rPeriodo@10g@b%s", (const char*) dataini);
set_header (5, "@22g@b%s@r", (const char*) datafine);
}
else
{
set_header (5, "Periodo@10g%s", (const char*) dataini);
set_header (5, "@22g%s", (const char*) datafine);
}
}
else
{
if (_nummast == 3)
{
set_header (5, "@rComp. da@9g@b%s", (const char*) dataini);
set_header (5, "@20g@ra@22g@b%s@r", (const char*) datafine);
}
else
{
set_header (5, "Comp. da@9g%s", (const char*) dataini);
set_header (5, "@20ga@22g%s", (const char*) datafine);
}
}
set_header (5, "@33gP.I.@37g%-11s",(const char*) paiv);
set_header (5, "@49gCF@52g%-16s",(const char*) cofi);
@ -3193,6 +3281,9 @@ int TMastrini_application::ricerca_clifo(int start)
set_row (r,"@27g%-30s",(const char*) descrizione_gruppo());
set_row (r,"@59g%-30s",(const char*) descrizione_conto());
set_row(r++, "@91g%-30s",(const char*) ragsoc);
if (_nummast == 3)
set_row(r, "@rClasse@8g@b%c", _lettivd);
else
set_row(r, "Classe@8g%c", _lettivd);
set_row(r, "@10g%-8s", (const char*) _numrivd);
if (_numivd != 0)
@ -3200,7 +3291,7 @@ int TMastrini_application::ricerca_clifo(int start)
if (descriz2 != "")
{
set_row(r,"@23g%-50s",(const char*) descriz2);
set_row(r,"@80g%-50s",(const char*) descriz);
set_row(r++,"@80g%-50s",(const char*) descriz);
}
else
set_row(r++,"@23g%-50s",(const char*) descriz);
@ -3209,15 +3300,31 @@ int TMastrini_application::ricerca_clifo(int start)
datafine = _data_fine.string();
if (_annomsk == 0)
{
if (_nummast == 3)
{
set_row (r, "@rPeriodo@10g@b%s", (const char*) dataini);
set_row (r, "@22g%s@r", (const char*) datafine);
}
else
{
set_row (r, "Periodo@10g%s", (const char*) dataini);
set_row (r, "@22g%s", (const char*) datafine);
}
}
else
{
if (_nummast == 3)
{
set_row (r, "@rComp. da@9g@b%s", (const char*) dataini);
set_row (r, "@20g@ra@22g@b%s@r", (const char*) datafine);
}
else
{
set_row (r, "Comp. da@9g%s", (const char*) dataini);
set_row (r, "@20ga@22g%s", (const char*) datafine);
}
}
set_row (r, "@33gP.I.@37g%-11s",(const char*) paiv);
set_row (r, "@49gCF@52g%-16s",(const char*) cofi);
@ -3285,6 +3392,9 @@ void TMastrini_application::ricerca_gruppo()
set_header(3,"@59g%-.30s",(const char*) descrizione_conto());
set_header(3,"@91g%-.41s",(const char*) descrizione_sottoconto());
if (_nummast == 3)
set_header(4, "@0g@rClasse@12g@b%c", _lettivd);
else
set_header(4, "@0gClasse@12g%c", _lettivd);
set_header(4, "@14g%-8s",(const char*) _numrivd);
if (_numivd != 0)
@ -3301,16 +3411,32 @@ void TMastrini_application::ricerca_gruppo()
datafine = _data_fine.string();
if (_annomsk == 0)
{
if (_nummast == 3)
{
set_header (5, "@rPeriodo@12g@b%s", (const char*) dataini);
set_header (5, "@24g@b%s@r", (const char*) datafine);
}
else
{
set_header (5, "Periodo@12g%s", (const char*) dataini);
set_header (5, "@24g%s", (const char*) datafine);
}
}
else
{
if (_nummast == 3)
{
set_header (5, "@rPeriodo di competenza@23g@b%s", (const char*) dataini);
set_header (5, "@35g%s@r", (const char*) datafine);
}
else
{
set_header (5, "Periodo di competenza@23g%s", (const char*) dataini);
set_header (5, "@35g%s", (const char*) datafine);
}
}
}
int TMastrini_application::ricerca_gruppo(int start)
{
@ -3341,6 +3467,9 @@ int TMastrini_application::ricerca_gruppo(int start)
set_row(r,"@59g%-.30s",(const char*) descrizione_conto());
set_row(r++,"@91g%-.41s",(const char*) descrizione_sottoconto());
if (_nummast == 3)
set_row(r, "@0g@rClasse@12g@b%c", _lettivd);
else
set_row(r, "@0gClasse@12g%c", _lettivd);
set_row(r, "@14g%-8s",(const char*) _numrivd);
if (_numivd != 0)
@ -3357,15 +3486,31 @@ int TMastrini_application::ricerca_gruppo(int start)
datafine = _data_fine.string();
if (_annomsk == 0)
{
if (_nummast == 3)
{
set_row (r, "@rPeriodo@12g@b%s", (const char*) dataini);
set_row (r, "@24g%s@r", (const char*) datafine);
}
else
{
set_row (r, "Periodo@12g%s", (const char*) dataini);
set_row (r, "@24g%s", (const char*) datafine);
}
}
else
{
if (_nummast == 3)
{
set_row (r, "@rPeriodo di competenza@23g@b%s", (const char*) dataini);
set_row (r, "@35g%s@r", (const char*) datafine);
}
else
{
set_row (r, "Periodo di competenza@23g%s", (const char*) dataini);
set_row (r, "@35g%s", (const char*) datafine);
}
}
return r;
}
@ -3488,6 +3633,8 @@ bool TMastrini_application::user_create()
_msk->set_handler (F_CONTOFINE_CLIENTE ,contof_hnd);
_msk->set_handler (F_CONTOFINE_FORN ,contof_hnd);
_gia_stampata_intestazione = FALSE;
// _msk->set_handler (F_SOTTOCFINE_CONTO ,sottoc_hnd);
// _msk->set_handler (F_SOTTOCFINE_CLIENTE ,sottoc_hnd);
// _msk->set_handler (F_SOTTOCFINE_FORN ,sottoc_hnd);