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 _annomsk,_annoesmsk,_annoes,_annomsksucc,_tipo_mask,_anno_ghost;
int _anno_corrente,_anno_precedente,_indbil,_numero_pag; int _anno_corrente,_anno_precedente,_indbil,_numero_pag;
long _sottoc,_numreg,_numgio,_protiva; 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; char _tmcf,_tipo_contr;
TDate _dataregrmov; TDate _dataregrmov;
@ -772,7 +773,7 @@ void TMastrini_application::saldi_zero()
while (!rmov.eof()) while (!rmov.eof())
{ {
rmov.read(); //rmov.read();
char sezione = rmov.curr().get(RMV_SEZIONE)[0]; char sezione = rmov.curr().get(RMV_SEZIONE)[0];
real importo = rmov.curr().get_real(RMV_IMPORTO); real importo = rmov.curr().get_real(RMV_IMPORTO);
int gruppo = atoi(rmov.get(RMV_GRUPPO)); 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) 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); _rw = crea_intestazione(_rw);
calcola_progressivi(); calcola_progressivi();
_saldo_progressivi += _saldo_progre_prec; _saldo_progressivi += _saldo_progre_prec;
@ -1441,6 +1447,11 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (_nummast == 3 || _nummast == 2) 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); _rw = crea_intestazione(_rw);
_saldo_progressivi += _saldo_progre_prec; _saldo_progressivi += _saldo_progre_prec;
_rw = stampa_progre_riporto(_rw); _rw = stampa_progre_riporto(_rw);
@ -1451,6 +1462,15 @@ bool TMastrini_application::preprocess_page(int file, int counter)
case LF_RMOV: 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) if (_nummast == 1 || _nummast == 3)
_rw = 1; _rw = 1;
@ -2249,14 +2269,11 @@ bool TMastrini_application::set_print(int)
_anno_precedente = _anno_corrente - 1; _anno_precedente = _anno_corrente - 1;
// Scelta del formato e del numero di mastrini per pagina 1 o 2 //Per la stampa in continuo riservo due righe di footer, mentre per le altre no.
if (_nummast == 3)
//if (nummast == 1) printer().footerlen(2);
// crt = formato; else
//else printer().footerlen(0);
// crt = (formato / 2);
//printer().formlen(crt);
//Crea il cursore su gruppo, conto e sottoconto del file RMOV //Crea il cursore su gruppo, conto e sottoconto del file RMOV
@ -2346,6 +2363,21 @@ void TMastrini_application::preprocess_header()
if (_puoi_stampare) if (_puoi_stampare)
crea_intestazione(); 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) 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, "@0gDITTA@6g%5ld", _codice_ditta);
set_header (1, "@12g%-.45s", (const char*) _ragsoc); set_header (1, "@12g%-.45s", (const char*) _ragsoc);
set_header (1, "@59g%-.25s", (const char*) _indulc); int len = _indulc.len();
set_header (1, "@86g%-.9s", (const char*) _civulc); 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, "@97g%-.5s", (const char*) _capulc);
set_header (1, "@103g%-.18s", (const char*) _com); set_header (1, "@103g%-.18s", (const char*) _com);
set_header (1, "@122g%-.3s", (const char*) _prov); 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, "@0gSottoconto@12g%d", _gruppo);
set_header (3, "@16g%d", _conto); set_header (3, "@16g%d", _conto);
set_header (3, "@20g%ld", _sottoc); set_header (3, "@20g%ld", _sottoc);
}
if (_tmcf == 'C') if (_tmcf == 'C')
_tipo_mask = 1; _tipo_mask = 1;
@ -2496,7 +2545,7 @@ void TMastrini_application::crea_intestazione()
set_header (8,"Data"); set_header (8,"Data");
if (_stampanum < 3) if (_stampanum < 3)
set_header (8,"@11gnumero"); 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) if (_stampa_mov_prov)
set_header(8,"@195gP"); set_header(8,"@195gP");
sep1.fill('-'); sep1.fill('-');
@ -2572,6 +2621,9 @@ int TMastrini_application::crea_intestazione(int start_riga)
_conta_mastrini++; _conta_mastrini++;
if (_nummast == 3)
_gia_stampata_intestazione = TRUE;
if (_nummast == 2) if (_nummast == 2)
if (_cambia_mastrino) 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, "@0gDITTA@6g%5ld", _codice_ditta);
set_row (r, "@12g%-45s", (const char*) _ragsoc); set_row (r, "@12g%-45s", (const char*) _ragsoc);
set_row (r, "@59g%-25s", (const char*) _indulc); int len = _indulc.len();
set_row (r, "@86g%-9s", (const char*) _civulc); 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, "@97g%-5s", (const char*) _capulc);
set_row (r, "@103g%-18s", (const char*) _com); set_row (r, "@103g%-18s", (const char*) _com);
set_row (r, "@122g%-3s", (const char*) _prov); set_row (r, "@122g%-3s", (const char*) _prov);
r += 2; 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, "@0gSottoconto@12g%d", _gruppo);
set_row (r, "@16g%d", _conto); set_row (r, "@16g%d", _conto);
set_row (r, "@20g%ld", _sottoc); set_row (r, "@20g%ld", _sottoc);
}
if (_tmcf == 'C') if (_tmcf == 'C')
_tipo_mask = 1; _tipo_mask = 1;
@ -2642,7 +2711,7 @@ int TMastrini_application::crea_intestazione(int start_riga)
if (_stampanum < 3) if (_stampanum < 3)
set_row (r,"@11gnumero"); set_row (r,"@11gnumero");
set_row (r,"@23gDocumento@42gCod.Causale@70gDescrizione@112gDare@127gAvere"); 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) if (_stampa_mov_prov)
set_row (r-1,"@195gP"); set_row (r-1,"@195gP");
sep1.fill('-'); sep1.fill('-');
@ -3076,6 +3145,9 @@ void TMastrini_application::ricerca_clifo()
set_header(3,"@27g%-.30s",(const char*) descrizione_gruppo()); set_header(3,"@27g%-.30s",(const char*) descrizione_gruppo());
set_header(3,"@59g%-.30s",(const char*) descrizione_conto()); set_header(3,"@59g%-.30s",(const char*) descrizione_conto());
set_header(3, "@91g%-.41s",(const char*) ragsoc); 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, "Classe@8g%c", _lettivd);
set_header(4, "@10g%-8s", (const char*) _numrivd); set_header(4, "@10g%-8s", (const char*) _numrivd);
if (_numivd != 0) if (_numivd != 0)
@ -3092,15 +3164,31 @@ void TMastrini_application::ricerca_clifo()
datafine = _data_fine.string(); datafine = _data_fine.string();
if (_annomsk == 0) 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, "Periodo@10g%s", (const char*) dataini);
set_header (5, "@22g%s", (const char*) datafine); 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 else
{ {
set_header (5, "Comp. da@9g%s", (const char*) dataini); set_header (5, "Comp. da@9g%s", (const char*) dataini);
set_header (5, "@20ga@22g%s", (const char*) datafine); set_header (5, "@20ga@22g%s", (const char*) datafine);
} }
}
set_header (5, "@33gP.I.@37g%-11s",(const char*) paiv); set_header (5, "@33gP.I.@37g%-11s",(const char*) paiv);
set_header (5, "@49gCF@52g%-16s",(const char*) cofi); 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,"@27g%-30s",(const char*) descrizione_gruppo());
set_row (r,"@59g%-30s",(const char*) descrizione_conto()); set_row (r,"@59g%-30s",(const char*) descrizione_conto());
set_row(r++, "@91g%-30s",(const char*) ragsoc); 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, "Classe@8g%c", _lettivd);
set_row(r, "@10g%-8s", (const char*) _numrivd); set_row(r, "@10g%-8s", (const char*) _numrivd);
if (_numivd != 0) if (_numivd != 0)
@ -3200,7 +3291,7 @@ int TMastrini_application::ricerca_clifo(int start)
if (descriz2 != "") if (descriz2 != "")
{ {
set_row(r,"@23g%-50s",(const char*) 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 else
set_row(r++,"@23g%-50s",(const char*) descriz); set_row(r++,"@23g%-50s",(const char*) descriz);
@ -3209,15 +3300,31 @@ int TMastrini_application::ricerca_clifo(int start)
datafine = _data_fine.string(); datafine = _data_fine.string();
if (_annomsk == 0) 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, "Periodo@10g%s", (const char*) dataini);
set_row (r, "@22g%s", (const char*) datafine); 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 else
{ {
set_row (r, "Comp. da@9g%s", (const char*) dataini); set_row (r, "Comp. da@9g%s", (const char*) dataini);
set_row (r, "@20ga@22g%s", (const char*) datafine); set_row (r, "@20ga@22g%s", (const char*) datafine);
} }
}
set_row (r, "@33gP.I.@37g%-11s",(const char*) paiv); set_row (r, "@33gP.I.@37g%-11s",(const char*) paiv);
set_row (r, "@49gCF@52g%-16s",(const char*) cofi); 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,"@59g%-.30s",(const char*) descrizione_conto());
set_header(3,"@91g%-.41s",(const char*) descrizione_sottoconto()); 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, "@0gClasse@12g%c", _lettivd);
set_header(4, "@14g%-8s",(const char*) _numrivd); set_header(4, "@14g%-8s",(const char*) _numrivd);
if (_numivd != 0) if (_numivd != 0)
@ -3301,16 +3411,32 @@ void TMastrini_application::ricerca_gruppo()
datafine = _data_fine.string(); datafine = _data_fine.string();
if (_annomsk == 0) 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, "Periodo@12g%s", (const char*) dataini);
set_header (5, "@24g%s", (const char*) datafine); 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 else
{ {
set_header (5, "Periodo di competenza@23g%s", (const char*) dataini); set_header (5, "Periodo di competenza@23g%s", (const char*) dataini);
set_header (5, "@35g%s", (const char*) datafine); set_header (5, "@35g%s", (const char*) datafine);
} }
} }
}
int TMastrini_application::ricerca_gruppo(int start) 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,"@59g%-.30s",(const char*) descrizione_conto());
set_row(r++,"@91g%-.41s",(const char*) descrizione_sottoconto()); 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, "@0gClasse@12g%c", _lettivd);
set_row(r, "@14g%-8s",(const char*) _numrivd); set_row(r, "@14g%-8s",(const char*) _numrivd);
if (_numivd != 0) if (_numivd != 0)
@ -3357,15 +3486,31 @@ int TMastrini_application::ricerca_gruppo(int start)
datafine = _data_fine.string(); datafine = _data_fine.string();
if (_annomsk == 0) 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, "Periodo@12g%s", (const char*) dataini);
set_row (r, "@24g%s", (const char*) datafine); 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 else
{ {
set_row (r, "Periodo di competenza@23g%s", (const char*) dataini); set_row (r, "Periodo di competenza@23g%s", (const char*) dataini);
set_row (r, "@35g%s", (const char*) datafine); set_row (r, "@35g%s", (const char*) datafine);
} }
}
return r; return r;
} }
@ -3488,6 +3633,8 @@ bool TMastrini_application::user_create()
_msk->set_handler (F_CONTOFINE_CLIENTE ,contof_hnd); _msk->set_handler (F_CONTOFINE_CLIENTE ,contof_hnd);
_msk->set_handler (F_CONTOFINE_FORN ,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_CONTO ,sottoc_hnd);
// _msk->set_handler (F_SOTTOCFINE_CLIENTE ,sottoc_hnd); // _msk->set_handler (F_SOTTOCFINE_CLIENTE ,sottoc_hnd);
// _msk->set_handler (F_SOTTOCFINE_FORN ,sottoc_hnd); // _msk->set_handler (F_SOTTOCFINE_FORN ,sottoc_hnd);