Modifiche del 16 Ottobre 1996, inerenti il quadro

base i quadri l, n, g


git-svn-id: svn://10.65.10.50/trunk@3782 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1996-10-16 12:20:02 +00:00
parent b115973780
commit 5f4e22f834
7 changed files with 257 additions and 187 deletions

View File

@ -5,7 +5,8 @@ JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 7 TO 9 INTO CODANAGR=CODANAGR JOIN 7 TO 9 INTO CODANAGR=CODANAGR
JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR
JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC
JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF
JOIN 13 TO 6 ALIAS 613 INTO COM=COMRES
JOIN 6 TO 36 ALIAS 216 INTO TIPOA=="F" CODANAGR==RAPPR JOIN 6 TO 36 ALIAS 216 INTO TIPOA=="F" CODANAGR==RAPPR
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR==CODANAGR JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR==CODANAGR
JOIN 13 TO 218@ ALIAS 313 INTO COM==COMNASC JOIN 13 TO 218@ ALIAS 313 INTO COM==COMNASC
@ -318,7 +319,7 @@ STRING 30
BEGIN BEGIN
KEY "COMUNE SEDE LEGALE " KEY "COMUNE SEDE LEGALE "
PROMPT 41 15 "" PROMPT 41 15 ""
FIELD 213@->DENCOM FIELD 613@->DENCOM
GROUP 2 GROUP 2
END END
@ -326,7 +327,7 @@ STRING 31
BEGIN BEGIN
KEY "PROV. SEDE LEGALE" KEY "PROV. SEDE LEGALE"
PROMPT 122 15 "" PROMPT 122 15 ""
FIELD 213@->PROVCOM FIELD 613@->PROVCOM
GROUP 2 GROUP 2
END END
@ -706,7 +707,8 @@ END
STRINGA 79 STRINGA 79
BEGIN BEGIN
KEY "LUOGO CONSERVAZIONE S.C. - COM" KEY "LUOGO CONSERVAZIONE S.C. - COM"
PROMPT 25 39 "" PROMPT 25 39 ""
FIELD 613@->DENCOM
FIELD 513@->DENCOM FIELD 513@->DENCOM
END END
@ -714,6 +716,7 @@ STRINGA 80
BEGIN BEGIN
KEY "LUOGO CONSERVAZIONE S.C. - PROV" KEY "LUOGO CONSERVAZIONE S.C. - PROV"
PROMPT 92 39 "" PROMPT 92 39 ""
FIELD 613@->PROVCOM
FIELD 513@->PROVCOM FIELD 513@->PROVCOM
END END

View File

@ -123,10 +123,14 @@ BEGIN
FIELD 42->QLLV FIELD 42->QLLV
END END
STRINGA 8 LISTA 8
BEGIN BEGIN
KEY "Tipo Vers." KEY "Tipo Vers."
PROMPT 34 3 "" PROMPT 36 3 ""
ITEM " | "
ITEM "B|B" MESSAGE SHOW,13|HIDE,14
ITEM "C|C" MESSAGE SHOW,14|HIDE,13
ITEM "D|D" MESSAGE SHOW,14|HIDE,13
FIELD 42->QLTV FIELD 42->QLTV
END END
@ -166,6 +170,14 @@ BEGIN
FIELD 42->QLNUMERO[1,5] FIELD 42->QLNUMERO[1,5]
END END
STRINGA 14
BEGIN
KEY "NUMERO COMPLETO"
PROMPT 99 3 ""
FIELD 42->QLNUMERO
FLAGS "H"
END
END END
SECTION FOOTER LAST 2 SECTION FOOTER LAST 2

View File

@ -421,7 +421,7 @@ END
NUMBER 54 NUMBER 54
BEGIN BEGIN
KEY "TOT.UT.NATURA" KEY "TOT.UT.NATURA"
PROMPT 120 46 "" PROMPT 120 45 ""
FIELD 70->P2VALT FIELD 70->P2VALT
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END

View File

@ -227,10 +227,14 @@ BEGIN
FIELD 42->QLLV FIELD 42->QLLV
END END
STRINGA 8 LISTA 8
BEGIN BEGIN
KEY "Tipo Vers." KEY "Tipo Vers."
PROMPT 36 3 "" PROMPT 36 3 ""
ITEM " | "
ITEM "B|B" MESSAGE SHOW,13|HIDE,14
ITEM "C|C" MESSAGE SHOW,14|HIDE,13
ITEM "D|D" MESSAGE SHOW,14|HIDE,13
FIELD 42->QLTV FIELD 42->QLTV
END END
@ -265,14 +269,22 @@ END
STRINGA 13 STRINGA 13
BEGIN BEGIN
KEY "NUMERO" KEY "NUMERO SENZA Prog.Versamento"
PROMPT 99 3 "" PROMPT 99 3 ""
FIELD 42->QLNUMERO[1,5] FIELD 42->QLNUMERO[1,5]
END
STRINGA 14
BEGIN
KEY "NUMERO COMPLETO"
PROMPT 99 3 ""
FIELD 42->QLNUMERO
FLAGS "H"
END END
END END
SECTION FOOTER LAST 2 SECTION FOOTER LAST 6
NUMERO 1 NUMERO 1
BEGIN BEGIN
@ -288,16 +300,18 @@ BEGIN
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
STRINGA 3 DATE 3
BEGIN BEGIN
KEY "DATA" KEY "DATA"
PROMPT 50 5 "" PROMPT 50 5 ""
FLAGS "A"
END END
STRINGA 4 STRINGA 4
BEGIN BEGIN
KEY "FIRMA" KEY "FIRMA"
PROMPT 120 5 "" PROMPT 120 5 ""
FIELD 106@->RAGSOC
END END
END END

View File

@ -149,21 +149,18 @@ NUMERO 1
BEGIN BEGIN
KEY "MeseRif" KEY "MeseRif"
PROMPT 25 1 "" PROMPT 25 1 ""
FIELD 72->MESERIF
END END
NUMERO 2 NUMERO 2
BEGIN BEGIN
KEY "AnnoRif" KEY "AnnoRif"
PROMPT 28 1 "" PROMPT 28 1 ""
FIELD 72->ANNORIF
END END
NUMERO 3 NUMERO 3
BEGIN BEGIN
KEY "imp. rimb" KEY "imp. rimb"
PROMPT 37 1 "" PROMPT 37 1 ""
FIELD 72->IMPOSTA
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -171,7 +168,6 @@ NUMERO 4
BEGIN BEGIN
KEY "Compensi" KEY "Compensi"
PROMPT 58 1 "" PROMPT 58 1 ""
FIELD 72->COMPENSI
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -179,21 +175,18 @@ NUMERO 5
BEGIN BEGIN
KEY "MeseRif" KEY "MeseRif"
PROMPT 83 1 "" PROMPT 83 1 ""
FIELD 72->MESERIF
END END
NUMERO 6 NUMERO 6
BEGIN BEGIN
KEY "AnnoRif" KEY "AnnoRif"
PROMPT 86 1 "" PROMPT 86 1 ""
FIELD 72->ANNORIF
END END
NUMERO 7 NUMERO 7
BEGIN BEGIN
KEY "imp. rimb" KEY "imp. rimb"
PROMPT 96 1 "" PROMPT 96 1 ""
FIELD 72->IMPOSTA
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -201,7 +194,6 @@ NUMERO 8
BEGIN BEGIN
KEY "Compensi" KEY "Compensi"
PROMPT 116 1 "" PROMPT 116 1 ""
FIELD 72->COMPENSI
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -213,21 +205,18 @@ NUMERO 1
BEGIN BEGIN
KEY "R - MeseRif" KEY "R - MeseRif"
PROMPT 25 1 "" PROMPT 25 1 ""
FIELD 75->MESERIF
END END
NUMERO 2 NUMERO 2
BEGIN BEGIN
KEY "R - AnnoRif" KEY "R - AnnoRif"
PROMPT 28 1 "" PROMPT 28 1 ""
FIELD 75->ANNORIF
END END
NUMERO 3 NUMERO 3
BEGIN BEGIN
KEY "R - imp. rimb" KEY "R - imp. rimb"
PROMPT 37 1 "" PROMPT 37 1 ""
FIELD 75->IMPRIMB
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -235,7 +224,6 @@ NUMERO 4
BEGIN BEGIN
KEY "R - Compensi" KEY "R - Compensi"
PROMPT 58 1 "" PROMPT 58 1 ""
FIELD 75->COMPENSI
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -243,21 +231,18 @@ NUMERO 5
BEGIN BEGIN
KEY "R - MeseRif" KEY "R - MeseRif"
PROMPT 83 1 "" PROMPT 83 1 ""
FIELD 75->MESERIF
END END
NUMERO 6 NUMERO 6
BEGIN BEGIN
KEY "R - AnnoRif" KEY "R - AnnoRif"
PROMPT 86 1 "" PROMPT 86 1 ""
FIELD 75->ANNORIF
END END
NUMERO 7 NUMERO 7
BEGIN BEGIN
KEY "R - imp. rimb" KEY "R - imp. rimb"
PROMPT 96 1 "" PROMPT 96 1 ""
FIELD 75->IMPRIMB
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -265,7 +250,6 @@ NUMERO 8
BEGIN BEGIN
KEY "R - Compensi" KEY "R - Compensi"
PROMPT 116 1 "" PROMPT 116 1 ""
FIELD 75->COMPENSI
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -333,21 +317,18 @@ NUMERO 1
BEGIN BEGIN
KEY "Q Mese paga" KEY "Q Mese paga"
PROMPT 25 1 "" PROMPT 25 1 ""
FIELD 74->MESEPAG
END END
NUMERO 2 NUMERO 2
BEGIN BEGIN
KEY "Q Anno paga" KEY "Q Anno paga"
PROMPT 28 1 "" PROMPT 28 1 ""
FIELD 74->ANNOPAG
END END
NUMERO 3 NUMERO 3
BEGIN BEGIN
KEY "Q Contr.versato" KEY "Q Contr.versato"
PROMPT 46 1 "" PROMPT 46 1 ""
FIELD 74->CONTVERS
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -355,7 +336,6 @@ NUMERO 4
BEGIN BEGIN
KEY "Q Contr.rimborsati" KEY "Q Contr.rimborsati"
PROMPT 75 1 "" PROMPT 75 1 ""
FIELD 74->CONTRIMB
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -363,7 +343,6 @@ NUMERO 5
BEGIN BEGIN
KEY "Q Interes.e/o soprattasse" KEY "Q Interes.e/o soprattasse"
PROMPT 104 1 "" PROMPT 104 1 ""
FIELD 74->INTERESSI
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -371,7 +350,6 @@ STRINGA 6
BEGIN BEGIN
KEY "Q Cod.Reg" KEY "Q Cod.Reg"
PROMPT 126 1 "" PROMPT 126 1 ""
FIELD 74->CODREG
END END
END END
@ -382,21 +360,18 @@ NUMERO 1
BEGIN BEGIN
KEY "T Mese paga" KEY "T Mese paga"
PROMPT 25 1 "" PROMPT 25 1 ""
FIELD 77->MESEPAG
END END
NUMERO 2 NUMERO 2
BEGIN BEGIN
KEY "T Anno paga" KEY "T Anno paga"
PROMPT 28 1 "" PROMPT 28 1 ""
FIELD 77->ANNOPAG
END END
NUMERO 3 NUMERO 3
BEGIN BEGIN
KEY "T Contr.versato" KEY "T Contr.versato"
PROMPT 46 1 "" PROMPT 46 1 ""
FIELD 77->CONTVERS
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -404,7 +379,6 @@ NUMERO 4
BEGIN BEGIN
KEY "T Contr.rimborsati" KEY "T Contr.rimborsati"
PROMPT 75 1 "" PROMPT 75 1 ""
FIELD 77->CONTRIMB
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -412,7 +386,6 @@ NUMERO 5
BEGIN BEGIN
KEY "T Interes.e/o soprattasse" KEY "T Interes.e/o soprattasse"
PROMPT 104 1 "" PROMPT 104 1 ""
FIELD 77->INTERESSI
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
@ -420,7 +393,6 @@ STRINGA 6
BEGIN BEGIN
KEY "T Cod.Reg" KEY "T Cod.Reg"
PROMPT 126 1 "" PROMPT 126 1 ""
FIELD 77->CODREG
END END
END END

View File

@ -53,13 +53,21 @@ void TBase1::compatta_depositario()
const int y = signature.y(); const int y = signature.y();
TString spazi(50); spazi.fill(' '); TString spazi(50); spazi.fill(' ');
TString cognome = signature.get(); TString cognome = signature.get();
// Se codanagrds = codanagr dichiarante non stampare ragsoc.
TCursor* cur = cursor();
const long codanagr=cur->file(LF_NDITTE).get_long("CODANAGR");
const long codanagrds=cur->file(10).get_long("CODANGRDS");
bool noRagsoc=codanagr==codanagrds;
if (cognome.len() > 30 && cognome[29] == ' ') if (cognome.len() > 30 && cognome[29] == ' ')
{ {
TString nome = cognome.mid(30, -1); TString nome = cognome.mid(30, -1);
cognome.cut(30); cognome.trim(); cognome.cut(30); cognome.trim();
cognome << ' ' << nome; cognome << " " << nome;
signature.set(cognome); signature.set(cognome);
} }
if (noRagsoc)
cognome="";
totali.row(y-1).put(spazi, signature.x()-1); totali.row(y-1).put(spazi, signature.x()-1);
totali.row(y-1).put(cognome, signature.x()-1); totali.row(y-1).put(cognome, signature.x()-1);
} }
@ -80,12 +88,17 @@ void TBase1::stampa_corpo(TPrinter& pr)
progind()->addstatus(1); progind()->addstatus(1);
} }
// accetta solo quelli con qualifica=A,B o C // accetta solo quelli con qualifica=A,B o C, ATTUALI E FISICI
bool bFiltraSoci(const TRelation* rel) bool bFiltraSoci(const TRelation* rel)
{ {
TString sQual(3); TString sQual(3);
TString sTipo;
sTipo = rel->lfile().get("TIPOASOC");
sQual = rel->lfile().get("RICQUAL"); sQual = rel->lfile().get("RICQUAL");
return sQual=="A" || sQual=="B" || sQual=="C"; TString dep;
dep = rel->lfile().get("ATTPREC");
const bool bAttuale = dep == "A";
return sTipo=="F" && bAttuale && (sQual=="A" || sQual=="B" || sQual=="C");
} }
long TBase1::iContaSoci() long TBase1::iContaSoci()
@ -98,12 +111,13 @@ long TBase1::iContaSoci()
return c->items(); return c->items();
} }
const int _INIZIO_SOCI=53;
void TBase1::stampa_soci(TPrinter& pr) void TBase1::stampa_soci(TPrinter& pr)
{ {
TPrint_section& fut = section('F', first_page); TPrint_section& fut = section('F', first_page);
fut.reset(); fut.reset();
jump_to_line(pr,_INIZIO_SOCI); const int _initium_sociorum = _PaginaPosizionamento ? 53 : 53+HEADER_PRIMA_NOPOS;
if (_RigaCorr < _initium_sociorum)
jump_to_line(pr,_initium_sociorum);
const long iSoci = iContaSoci(); const long iSoci = iContaSoci();
if (iSoci > 11) if (iSoci > 11)
{ {
@ -130,8 +144,6 @@ void TBase1::stampa_soci(TPrinter& pr)
sComuneNa=c->file(LF_COMUNI).get("DENCOM"); sComuneNa=c->file(LF_COMUNI).get("DENCOM");
sComuneNa.cut(28); sComuneNa.cut(28);
sProvNa=c->file(LF_COMUNI).get("PROVCOM"); sProvNa=c->file(LF_COMUNI).get("PROVCOM");
// fut.field(0).set(sRagsoc);
sRagsoc=fut.field(0).get();
if (sRagsoc.len() > 30 && sRagsoc[30] != ' ') if (sRagsoc.len() > 30 && sRagsoc[30] != ' ')
{ {
sCognome=sRagsoc.left(30); sCognome=sRagsoc.left(30);
@ -166,7 +178,7 @@ bool TBase1::print(const long codditta, const long NumFis, const long NumNoFis)
TCursor* cur = cursor(); TCursor* cur = cursor();
TPrinter& pr = printer(); TPrinter& pr = printer();
_codditta=codditta; _codditta=codditta;
if (!InitPrint(codditta)) if (!InitPrint(codditta))
return FALSE; return FALSE;
pr.formlen(_base_formlen); pr.formlen(_base_formlen);
@ -550,16 +562,18 @@ void TBase4::stampa_testata(TPrinter& pr)
progind()->addstatus(1); progind()->addstatus(1);
} }
void TBase4::fill_riga_QT(TPrint_section& sec,const int num) void TBase4::fill_riga_QT(TPrint_section& sec,const int num,const char quadro)
{ {
TString sVal; TString sVal;
int start=1,end=6; int start=1,end=6;
const int items = quadro=='Q' ? _righeQ.items() : _righeT.items();
for (int i = start; i <= end; i++) for (int i = start; i <= end; i++)
{ {
TForm_item& fi = sec.find_field(i); TForm_item& fi = sec.find_field(i);
if (num < _righeQT.items()) // if (num < _righeQT.items())
if (num < items)
{ {
const TRigaQT& rN = _righeQT[num]; const TRigaQT& rN = quadro=='Q' ? _righeQ[num] : _righeT[num];
if (i==start) if (i==start)
sVal=rN.sMesePag(); sVal=rN.sMesePag();
else if (i==start+1) else if (i==start+1)
@ -586,16 +600,16 @@ void TBase4::stampa_Q(TPrinter& pr)
TPrint_section& body = section('F', even_page); TPrint_section& body = section('F', even_page);
body.reset(); body.reset();
TLocalisamfile qp(LF_QUAQ); TLocalisamfile qp(LF_QUAQ);
_righeQT.fill(_codditta,qp); _righeQ.fill(_codditta,qp);
if (_righeQT.items()==0) return; if (_righeQ.items()==0) return;
_bAggQ = _righeQT.items() > _RIGHE_Q; _bAggQ = _righeQ.items() > _RIGHE_Q;
int riga=0; int riga=0;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_QT(body,riga); fill_riga_QT(body,riga,'Q');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -605,8 +619,6 @@ void TBase4::stampa_Q(TPrinter& pr)
progind()->addstatus(1); progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_Q-1; FinitaSezione=riga>_RIGHE_Q-1;
} }
// Salta due righe alla fine
stampa_righe_vuote(pr,2);
} }
void TBase4::stampa_T(TPrinter& pr) void TBase4::stampa_T(TPrinter& pr)
@ -614,16 +626,16 @@ void TBase4::stampa_T(TPrinter& pr)
TPrint_section& body = section('F', odd_page); TPrint_section& body = section('F', odd_page);
body.reset(); body.reset();
TLocalisamfile qp(LF_QUAT); TLocalisamfile qp(LF_QUAT);
_righeQT.fill(_codditta,qp); _righeT.fill(_codditta,qp);
if (_righeQT.items()==0) return; if (_righeT.items()==0) return;
_bAggT = _righeQT.items() > _RIGHE_T; _bAggT = _righeT.items() > _RIGHE_T;
int riga=0; int riga=0;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_QT(body,riga); fill_riga_QT(body,riga,'T');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -635,16 +647,17 @@ void TBase4::stampa_T(TPrinter& pr)
} }
} }
void TBase4::fill_riga_PS(TPrint_section& sec,const int num) void TBase4::fill_riga_PS(TPrint_section& sec,const int num,const char quadro)
{ {
TString sVal,sDep; TString sVal,sDep;
int start=1,end=8; int start=1,end=8;
const int items = quadro=='P' ? _righeP.items() : _righeS.items();
for (int i = start; i <= end; i++) for (int i = start; i <= end; i++)
{ {
TForm_item& fi = sec.find_field(i); TForm_item& fi = sec.find_field(i);
if (num < _righePS.items()) if (num < items)
{ {
const TRigaPS& rN = _righePS[num]; const TRigaPS& rN = quadro=='P' ? _righeP[num] : _righeS[num];
if (i==start) if (i==start)
sVal=rN.sImposta(fi.picture()); sVal=rN.sImposta(fi.picture());
else if (i==start+1) else if (i==start+1)
@ -678,9 +691,9 @@ void TBase4::stampa_P(TPrinter& pr)
TPrint_section& body = section('H', even_page); TPrint_section& body = section('H', even_page);
body.reset(); body.reset();
TLocalisamfile qp(LF_QUAP); TLocalisamfile qp(LF_QUAP);
_righePS.fill(_codditta,qp); _righeP.fill(_codditta,qp);
if (_righePS.items()==0) return; if (_righeP.items()==0) return;
const int items=_righePS.items(); const int items=_righeP.items();
_bAggP = items > _RIGHE_P; _bAggP = items > _RIGHE_P;
int riga=0; int riga=0;
@ -688,7 +701,7 @@ void TBase4::stampa_P(TPrinter& pr)
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_PS(body,riga); fill_riga_PS(body,riga,'P');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -698,8 +711,6 @@ void TBase4::stampa_P(TPrinter& pr)
progind()->addstatus(1); progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_P-1; FinitaSezione=riga>_RIGHE_P-1;
} }
// Salta due righe alla fine
stampa_righe_vuote(pr,2);
} }
void TBase4::stampa_S(TPrinter& pr) void TBase4::stampa_S(TPrinter& pr)
@ -707,16 +718,16 @@ void TBase4::stampa_S(TPrinter& pr)
TPrint_section& body = section('H', even_page); TPrint_section& body = section('H', even_page);
body.reset(); body.reset();
TLocalisamfile qp(LF_QUAS); TLocalisamfile qp(LF_QUAS);
_righePS.fill(_codditta,qp); _righeS.fill(_codditta,qp);
if (_righePS.items()==0) return; if (_righeS.items()==0) return;
_bAggS = _righePS.items() > _RIGHE_S; _bAggS = _righeS.items() > _RIGHE_S;
int riga=0; int riga=0;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_PS(body,riga); fill_riga_PS(body,riga,'S');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -735,24 +746,22 @@ void TBase4::stampa_R(TPrinter& pr)
TPrint_section& body = section('B', even_page); TPrint_section& body = section('B', even_page);
body.reset(); body.reset();
TLocalisamfile qr(LF_QUAR); TLocalisamfile qr(LF_QUAR);
_righeNR.fill(_codditta,qr); _righeR.fill(_codditta,qr);
if (_righeNR.items()==0) return; if (_righeR.items()==0) return;
const int items=_righeNR.items(); const int items=_righeR.items();
// se iRigheNR > 2 => bisogna stampare anche l'allegato // se iRigheNR > 2 => bisogna stampare anche l'allegato
_bAggR = items > _RIGHE_R; _bAggR = items > _RIGHE_R;
fill_riga_NR(body,0,0); fill_riga_NR(body,0,0,'R');
fill_riga_NR(body,1,1); fill_riga_NR(body,1,1,'R');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
_RigaCorr++; _RigaCorr++;
if (usa_progind()) if (usa_progind())
progind()->addstatus(1); progind()->addstatus(1);
// Salta due righe alla fine
stampa_righe_vuote(pr,2);
} }
void TBase4::fill_riga_NR(TPrint_section& sec,const int num, const int side) void TBase4::fill_riga_NR(TPrint_section& sec,const int num, const int side,const char quadro)
{ {
TString sVal; TString sVal;
int start,end; int start,end;
@ -766,12 +775,13 @@ void TBase4::fill_riga_NR(TPrint_section& sec,const int num, const int side)
start=5; start=5;
end=9; end=9;
} }
const int items = quadro=='N' ? _righeN.items() : _righeR.items();
for (int i = start; i < end; i++) for (int i = start; i < end; i++)
{ {
TForm_item& fi = sec.find_field(i); TForm_item& fi = sec.find_field(i);
if (num < _righeNR.items()) if (num < items)
{ {
const TRigaN& rN = _righeNR[num]; const TRigaN& rN = quadro=='N' ? _righeN[num] : _righeR[num];
if (i==start) if (i==start)
sVal=rN.sMeseRif(); sVal=rN.sMeseRif();
else if (i==start+1) else if (i==start+1)
@ -807,10 +817,10 @@ void TBase4::stampa_N(TPrinter& pr)
TPrint_section& body = section('B', odd_page); TPrint_section& body = section('B', odd_page);
body.reset(); body.reset();
TLocalisamfile qn(LF_QUAN); TLocalisamfile qn(LF_QUAN);
_righeNR.fill(_codditta,qn); _righeN.fill(_codditta,qn);
if (_righeNR.items()==0) return; if (_righeN.items()==0) return;
// se iRigheN > 6 => bisogna stampare anche l'allegato // se iRigheN > 6 => bisogna stampare anche l'allegato
_bAggN = _righeNR.items() > _RIGHE_N; _bAggN = _righeN.items() > _RIGHE_N;
int num=0; int num=0;
int riga=0; int riga=0;
@ -818,9 +828,9 @@ void TBase4::stampa_N(TPrinter& pr)
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_NR(body,num,0); fill_riga_NR(body,num,0,'N');
num+=3; num+=3;
fill_riga_NR(body,num,1); fill_riga_NR(body,num,1,'N');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -831,8 +841,6 @@ void TBase4::stampa_N(TPrinter& pr)
num-=2; num-=2;
FinitaSezione=riga>2; FinitaSezione=riga>2;
} }
// Salta due righe alla fine
stampa_righe_vuote(pr,2);
} }
void TBase4::stampa_fine(TPrinter& pr) void TBase4::stampa_fine(TPrinter& pr)
@ -863,12 +871,18 @@ bool TBase4::print(const long codditta, const long NumFis, const long NumNoFis)
jump_to_line(pr, prima_riga(PRIMA)); jump_to_line(pr, prima_riga(PRIMA));
// Stampa da M1 a M6 // Stampa da M1 a M6
stampa_testata(pr); stampa_testata(pr);
stampa_N(pr); stampa_N(pr);
stampa_P(pr); jump_to_line(pr,16);
stampa_Q(pr); stampa_P(pr);
stampa_R(pr); jump_to_line(pr,22);
stampa_S(pr); stampa_Q(pr);
jump_to_line(pr,28);
stampa_R(pr);
jump_to_line(pr,31);
stampa_S(pr);
jump_to_line(pr,37);
stampa_T(pr); stampa_T(pr);
jump_to_line(pr,41);
stampa_fine(pr); stampa_fine(pr);
next_page(pr); next_page(pr);
close_print(); close_print();
@ -996,7 +1010,7 @@ long TQuadroL::filtra(const long codditta)
{ {
TString filtr(24); TString filtr(24);
_codditta=codditta; _codditta=codditta;
filtr.format("(CODDITTA==%ld)&&(QLAP==%d)", codditta,anno_770()); filtr.format("(CODDITTA==%ld)&&(QLAP==%d)", _codditta,anno_770());
cursor()->setfilter(filtr, TRUE); cursor()->setfilter(filtr, TRUE);
const long items = cursor()->items(); const long items = cursor()->items();
return items; return items;
@ -1058,12 +1072,40 @@ bool TQuadroL::stampa_L(TPrinter& pr,const long lStartRec,const int iRecL)
return eof; return eof;
} }
int TQuadroL::calcola_firma()
{
TPrint_section& totali = section('F', last_page);
TForm_item& signature = totali.find_field(4);
const int y = signature.y();
TString spazi(50); spazi.fill(' ');
TString cognome = signature.get();
if (cognome.len() > 30 && cognome[29] == ' ')
{
TString nome = cognome.mid(30, -1);
cognome.cut(30); cognome.trim();
cognome << ' ' << nome;
signature.set(cognome);
}
totali.row(y-1).put(spazi, signature.x()-1);
totali.row(y-1).put(cognome, signature.x()-1);
return y;
}
void TQuadroL::stampa_totali_L(TPrinter& pr) void TQuadroL::stampa_totali_L(TPrinter& pr)
{ {
// La sezione f last contiene solo due totali aggiornati con add nel form // La sezione f last contiene solo due totali aggiornati con add nel form
TPrint_section& hh = section('F', last_page); TPrint_section& hh = section('F', last_page);
// hh.reset(); // hh.reset();
hh.update(); hh.update();
TForm_item& totEff = hh.find_field(1);
TForm_item& totVer = hh.find_field(2);
real rTotEff(totEff.get());
real rTotVer(totVer.get());
rTotEff += _rTotEff;
rTotVer += _rTotVer;
totEff.set(_rTotEff.string());
totVer.set(_rTotVer.string());
const int lasty = calcola_firma();
const int hhr = hh.height(); const int hhr = hh.height();
for (int i = 0; i < hhr; i++) for (int i = 0; i < hhr; i++)
{ {
@ -1079,6 +1121,17 @@ const int _REC_PRIMA_AGG_L=12;
const int _REC_SECONDA_AGG_L=14; const int _REC_SECONDA_AGG_L=14;
const int _RIGA_TOTALI_AGG_L=60; const int _RIGA_TOTALI_AGG_L=60;
void TQuadroL::calcola_totali_precedenti()
{
TCursor* cur = cursor();
_rTotEff = _rTotVer = ZERO;
for ((*cur)=0L; cur->pos() < _START_AGG_L-1; ++(*cur) )
{
_rTotEff += cur->curr().get_real("QLRITEFF");
_rTotVer += cur->curr().get_real("QLRITVER");
}
}
bool TQuadroL::print(const long codditta, const long NumFis, const long NumNoFis) bool TQuadroL::print(const long codditta, const long NumFis, const long NumNoFis)
{ {
TCursor* cur = cursor(); TCursor* cur = cursor();
@ -1090,7 +1143,9 @@ bool TQuadroL::print(const long codditta, const long NumFis, const long NumNoFis
// Non stampare se non ci sono record // Non stampare se non ci sono record
if (cur->items() < _START_AGG_L-1) if (cur->items() < _START_AGG_L-1)
return FALSE; return FALSE;
calcola_totali_precedenti();
// Legge dai par.studio l'ordinamento da usare per L // Legge dai par.studio l'ordinamento da usare per L
TConfig conf(CONFIG_STUDIO); TConfig conf(CONFIG_STUDIO);
const int iChiaveL = (int)conf.get_long("FlStQl", "77"); const int iChiaveL = (int)conf.get_long("FlStQl", "77");
@ -1100,7 +1155,9 @@ bool TQuadroL::print(const long codditta, const long NumFis, const long NumNoFis
cur->setkey(2); cur->setkey(2);
pr.formlen(dic_form_len()); pr.formlen(dic_form_len());
int lOffsetL=_START_AGG_L; // int lOffsetL=_START_AGG_L;
int lOffsetL=15;
(*cur)=lOffsetL;
bool finito=FALSE; bool finito=FALSE;
while (!finito) while (!finito)
{ {
@ -1254,22 +1311,23 @@ void TBase4::fill_riga_PS(TPrint_section& sec,const int num)
} }
} */ } */
void TQuadroN::stampa_N(TPrinter& pr) int TQuadroN::stampa_N(TPrinter& pr,const int ptrN)
{ {
TPrint_section& body = section('B', odd_page); TPrint_section& body = section('B', odd_page);
body.reset(); body.reset();
// TLocalisamfile qn(LF_QUAN);
// _righeNR.fill(_codditta,qn);
// Nell'aggiuntivo parto dal record n.7 // Nell'aggiuntivo parto dal record n.7
int num=6; // int num=6;
int riga=0; int num=ptrN;
int riga=0;
int LastUsed=0;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_NR(body,num,0); fill_riga_NR(body,num,0,'N');
num+=3; num+=3;
fill_riga_NR(body,num,1); LastUsed=num;
fill_riga_NR(body,num,1,'N');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -1278,24 +1336,24 @@ void TQuadroN::stampa_N(TPrinter& pr)
if (usa_progind()) if (usa_progind())
progind()->addstatus(1); progind()->addstatus(1);
num-=2; num-=2;
FinitaSezione=riga>4; FinitaSezione=riga>3;
} }
return LastUsed;
} }
void TQuadroN::stampa_P(TPrinter& pr) int TQuadroN::stampa_P(TPrinter& pr,const int ptrP)
{ {
TPrint_section& body = section('H', even_page); TPrint_section& body = section('H', even_page);
body.reset(); body.reset();
// TLocalisamfile qp(LF_QUAP); const int items=_righeP.items();
// _righePS.fill(_codditta,qp);
const int items=_righePS.items();
// Parte da rec.n.5 // Parte da rec.n.5
int riga=4; // int riga=4;
int riga=ptrP;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_PS(body,riga); fill_riga_PS(body,riga,'P');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -1303,23 +1361,23 @@ void TQuadroN::stampa_P(TPrinter& pr)
_RigaCorr++; _RigaCorr++;
if (usa_progind()) if (usa_progind())
progind()->addstatus(1); progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_PA-1; FinitaSezione=riga-ptrP>9;
} }
} return riga;
}
void TQuadroN::stampa_Q(TPrinter& pr) int TQuadroN::stampa_Q(TPrinter& pr,const int ptrQ)
{ {
TPrint_section& body = section('F', even_page); TPrint_section& body = section('F', even_page);
body.reset(); body.reset();
// TLocalisamfile qp(LF_QUAQ);
// _righeQT.fill(_codditta,qp);
// parte da rec.n.5 // parte da rec.n.5
int riga=4; // int riga=4;
int riga=ptrQ;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_QT(body,riga); fill_riga_QT(body,riga,'Q');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -1327,27 +1385,27 @@ void TQuadroN::stampa_Q(TPrinter& pr)
_RigaCorr++; _RigaCorr++;
if (usa_progind()) if (usa_progind())
progind()->addstatus(1); progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_QA-1; FinitaSezione=riga-ptrQ>3;
} }
// Salta due righe alla fine return riga;
stampa_righe_vuote(pr,2);
} }
void TQuadroN::stampa_R(TPrinter& pr) int TQuadroN::stampa_R(TPrinter& pr,const int ptrR)
{ {
TPrint_section& body = section('B', even_page); TPrint_section& body = section('B', even_page);
body.reset(); body.reset();
// TLocalisamfile qr(LF_QUAR); const int items=_righeR.items();
// _righeNR.fill(_codditta,qr); // int RecNum=2;
const int items=_righeNR.items(); int RecNum=ptrR;
int RecNum=2;
int RigheStampate=0; int RigheStampate=0;
int LastUsed=0;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
fill_riga_NR(body,RecNum,0); fill_riga_NR(body,RecNum,0,'R');
RecNum+=3; RecNum+=3;
fill_riga_NR(body,RecNum,1); LastUsed=RecNum;
fill_riga_NR(body,RecNum,1,'R');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -1356,23 +1414,22 @@ void TQuadroN::stampa_R(TPrinter& pr)
if (usa_progind()) if (usa_progind())
progind()->addstatus(1); progind()->addstatus(1);
RecNum-=2; RecNum-=2;
FinitaSezione=RigheStampate>_RIGHE_RA-1; FinitaSezione=RigheStampate>1;
} }
return LastUsed;
} }
void TQuadroN::stampa_S(TPrinter& pr) int TQuadroN::stampa_S(TPrinter& pr,const int ptrS)
{ {
TPrint_section& body = section('H', even_page); TPrint_section& body = section('H', even_page);
body.reset(); body.reset();
// TLocalisamfile qp(LF_QUAS); // int riga=4;
// _righePS.fill(_codditta,qp); int riga=ptrS;
int riga=4;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_PS(body,riga); fill_riga_PS(body,riga,'S');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -1380,22 +1437,22 @@ void TQuadroN::stampa_S(TPrinter& pr)
_RigaCorr++; _RigaCorr++;
if (usa_progind()) if (usa_progind())
progind()->addstatus(1); progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_SA-1; FinitaSezione=riga-ptrS>5;
} }
return riga;
} }
void TQuadroN::stampa_T(TPrinter& pr) int TQuadroN::stampa_T(TPrinter& pr,const int ptrT)
{ {
TPrint_section& body = section('F', odd_page); TPrint_section& body = section('F', odd_page);
body.reset(); body.reset();
// TLocalisamfile qp(LF_QUAT); // int riga=4;
// _righeQT.fill(_codditta,qp); int riga=ptrT;
int riga=4;
bool FinitaSezione=FALSE; bool FinitaSezione=FALSE;
while (!FinitaSezione) while (!FinitaSezione)
{ {
// Stampa la parte sinistra (primi 4 campi) // Stampa la parte sinistra (primi 4 campi)
fill_riga_QT(body,riga); fill_riga_QT(body,riga,'T');
TPrintrow& rr=body.row(0); TPrintrow& rr=body.row(0);
pr.print(rr); pr.print(rr);
rr.reset(); rr.reset();
@ -1403,8 +1460,9 @@ void TQuadroN::stampa_T(TPrinter& pr)
_RigaCorr++; _RigaCorr++;
if (usa_progind()) if (usa_progind())
progind()->addstatus(1); progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_TA-1; FinitaSezione=riga-ptrT>3;
} }
return riga;
} }
/* /*
@ -1455,24 +1513,25 @@ bool TQuadroN::print(const long codditta, const long NumFis, const long NumNoFis
return FALSE; return FALSE;
TLocalisamfile qn(LF_QUAN); TLocalisamfile qn(LF_QUAN);
_righeNR.fill(_codditta,qn); _righeN.fill(_codditta,qn);
bool stampoN=_righeNR.items() > 6; bool stampoN=_righeN.items() > 6;
TLocalisamfile qp(LF_QUAP); TLocalisamfile qp(LF_QUAP);
_righePS.fill(_codditta,qp); _righeP.fill(_codditta,qp);
bool stampoP=_righePS.items() > 4; bool stampoP=_righeP.items() > 4;
TLocalisamfile qq(LF_QUAQ); TLocalisamfile qq(LF_QUAQ);
_righeQT.fill(_codditta,qq); _righeQ.fill(_codditta,qq);
bool stampoQ=_righeQT.items() > 4; bool stampoQ=_righeQ.items() > 4;
TLocalisamfile qr(LF_QUAR); TLocalisamfile qr(LF_QUAR);
_righeNR.fill(_codditta,qr); _righeR.fill(_codditta,qr);
bool stampoR=_righeNR.items() > 2; bool stampoR=_righeR.items() > 2;
TLocalisamfile qs(LF_QUAS); TLocalisamfile qs(LF_QUAS);
_righePS.fill(_codditta,qs); _righeS.fill(_codditta,qs);
bool stampoS=_righePS.items() > 4; bool stampoS=_righeS.items() > 4;
TLocalisamfile qt(LF_QUAT); TLocalisamfile qt(LF_QUAT);
_righeQT.fill(_codditta,qt); _righeT.fill(_codditta,qt);
bool stampoT=_righeQT.items() > 4; bool stampoT=_righeT.items() > 4;
int ptrN=6,ptrP=4,ptrQ=4,ptrR=2,ptrS=4,ptrT=4;
// Se non c'e' niente da stampare esce // Se non c'e' niente da stampare esce
if (!stampoN && !stampoP && !stampoQ && !stampoR && !stampoS if (!stampoN && !stampoP && !stampoQ && !stampoR && !stampoS
&& !stampoT) && !stampoT)
@ -1481,6 +1540,7 @@ bool TQuadroN::print(const long codditta, const long NumFis, const long NumNoFis
pr.formlen(TDicForm::dic_form_len()); pr.formlen(TDicForm::dic_form_len());
_RigaCorr=0; _RigaCorr=0;
(*cur)=0L; (*cur)=0L;
bool done=FALSE; bool done=FALSE;
while (!done) while (!done)
{ {
@ -1488,24 +1548,29 @@ bool TQuadroN::print(const long codditta, const long NumFis, const long NumNoFis
int skip=HEADER_PRIMA_NOPOS; int skip=HEADER_PRIMA_NOPOS;
stampa_testata(pr); stampa_testata(pr);
jump_to_line(pr, _PaginaPosizionamento ? 20-skip : 20); jump_to_line(pr, _PaginaPosizionamento ? 20-skip : 20);
stampa_N(pr); ptrN=stampa_N(pr,ptrN);
jump_to_line(pr, _PaginaPosizionamento ? 26-skip : 26); jump_to_line(pr, _PaginaPosizionamento ? 26-skip : 26);
stampa_P(pr); ptrP=stampa_P(pr,ptrP);
jump_to_line(pr, _PaginaPosizionamento ? 38-skip : 38); jump_to_line(pr, _PaginaPosizionamento ? 38-skip : 38);
stampa_Q(pr); ptrQ=stampa_Q(pr,ptrQ);
jump_to_line(pr, _PaginaPosizionamento ? 44-skip : 44); jump_to_line(pr, _PaginaPosizionamento ? 44-skip : 44);
stampa_R(pr); ptrR=stampa_R(pr,ptrR);
jump_to_line(pr, _PaginaPosizionamento ? 48-skip : 48); jump_to_line(pr, _PaginaPosizionamento ? 48-skip : 48);
stampa_S(pr); ptrS=stampa_S(pr,ptrS);
jump_to_line(pr, _PaginaPosizionamento ? 56-skip : 56); jump_to_line(pr, _PaginaPosizionamento ? 56-skip : 56);
stampa_T(pr); ptrT=stampa_T(pr,ptrT);
jump_to_line(pr, _PaginaPosizionamento ? 63-skip : 63); jump_to_line(pr, _PaginaPosizionamento ? 63-skip : 63);
stampa_fine(pr); stampa_fine(pr);
_PaginaPosizionamento=FALSE; _PaginaPosizionamento=FALSE;
next_page(pr); next_page(pr);
pr.formlen(TDicForm::dic_form_len()); pr.formlen(TDicForm::dic_form_len());
++(*cur); bool FinitoN = ptrN == _righeN.items();
done = cur->pos() >= cur->items()-1; bool FinitoP = ptrP == _righeP.items();
bool FinitoQ = ptrQ == _righeQ.items();
bool FinitoR = ptrR == _righeR.items();
bool FinitoS = ptrS == _righeS.items();
bool FinitoT = ptrT == _righeT.items();
done = FinitoN && FinitoP && FinitoQ && FinitoR && FinitoS && FinitoT;
} }
close_print(); close_print();
return TRUE; return TRUE;

View File

@ -194,13 +194,16 @@ class TBase4 : public TDicForm
bool _bAggN,_bAggP,_bAggR,_bAggQ,_bAggS,_bAggT; bool _bAggN,_bAggP,_bAggR,_bAggQ,_bAggS,_bAggT;
protected: protected:
int _IdFirma; int _IdFirma;
TRigheNR _righeNR; // array dei record N e R TRigheNR _righeR; // array dei record N e R
TRigheQT _righeQT; TRigheNR _righeN;
TRighePS _righePS; TRigheQT _righeQ;
TRigheQT _righeT;
TRighePS _righeP;
TRighePS _righeS;
void stampa_righe_vuote(TPrinter& pr,const int righe); void stampa_righe_vuote(TPrinter& pr,const int righe);
void fill_riga_QT(TPrint_section& sec,const int num); void fill_riga_QT(TPrint_section& sec,const int num,const char quadro);
void fill_riga_PS(TPrint_section& sec,const int num); void fill_riga_PS(TPrint_section& sec,const int num,const char quadro);
void fill_riga_NR(TPrint_section& sec,const int num, const int side); void fill_riga_NR(TPrint_section& sec,const int num, const int side,const char quadro);
void stampa_testata(TPrinter& pr); void stampa_testata(TPrinter& pr);
void stampa_fine(TPrinter& pr); void stampa_fine(TPrinter& pr);
void stampa_N(TPrinter& pr); void stampa_N(TPrinter& pr);
@ -250,8 +253,9 @@ class TQuadroL : public TDicForm
{ {
private: private:
long _codditta; long _codditta;
real _rRitEff, _rRitVer; real _rTotEff, _rTotVer;
int _num_foglio; int _num_foglio;
void calcola_totali_precedenti();
protected: protected:
void stampa_testata(TPrinter& pr); void stampa_testata(TPrinter& pr);
void stampa_totali_L(TPrinter& pr); void stampa_totali_L(TPrinter& pr);
@ -260,10 +264,10 @@ class TQuadroL : public TDicForm
virtual void set_body(TPrinter& pr, const char tipo) {} virtual void set_body(TPrinter& pr, const char tipo) {}
virtual int prima_riga(PaginaQuadro p) const; virtual int prima_riga(PaginaQuadro p) const;
virtual long filtra(const long codditta); virtual long filtra(const long codditta);
void CalcolaTotalePrecedenti(TCursor* cur, const int _START_AGG_L); int calcola_firma();
public: public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis); virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TQuadroL(const char* sNomeForm, const char* quadro) : _rRitEff(ZERO),_rRitVer(ZERO),TDicForm(sNomeForm, quadro) {_num_foglio=0;} TQuadroL(const char* sNomeForm, const char* quadro) : _rTotEff(ZERO),_rTotVer(ZERO),TDicForm(sNomeForm, quadro) {_num_foglio=0;}
virtual ~TQuadroL() {} virtual ~TQuadroL() {}
}; };
@ -288,12 +292,12 @@ class TQuadroN : public TBase4
int _num_foglio; int _num_foglio;
public: public:
void stampa_fine(TPrinter& pr); void stampa_fine(TPrinter& pr);
void stampa_N(TPrinter& pr); int stampa_N(TPrinter& pr,const int ptr);
void stampa_P(TPrinter& pr); int stampa_P(TPrinter& pr,const int ptr);
void stampa_Q(TPrinter& pr); int stampa_Q(TPrinter& pr,const int ptr);
void stampa_R(TPrinter& pr); int stampa_R(TPrinter& pr,const int ptr);
void stampa_S(TPrinter& pr); int stampa_S(TPrinter& pr,const int ptr);
void stampa_T(TPrinter& pr); int stampa_T(TPrinter& pr,const int ptr);
void stampa_testata(TPrinter& pr); void stampa_testata(TPrinter& pr);
virtual int prima_riga(PaginaQuadro p) const; virtual int prima_riga(PaginaQuadro p) const;
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); } virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }