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 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR
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 8 TO 216@ ALIAS 218 INTO CODANAGR==CODANAGR
JOIN 13 TO 218@ ALIAS 313 INTO COM==COMNASC
@ -318,7 +319,7 @@ STRING 30
BEGIN
KEY "COMUNE SEDE LEGALE "
PROMPT 41 15 ""
FIELD 213@->DENCOM
FIELD 613@->DENCOM
GROUP 2
END
@ -326,7 +327,7 @@ STRING 31
BEGIN
KEY "PROV. SEDE LEGALE"
PROMPT 122 15 ""
FIELD 213@->PROVCOM
FIELD 613@->PROVCOM
GROUP 2
END
@ -706,7 +707,8 @@ END
STRINGA 79
BEGIN
KEY "LUOGO CONSERVAZIONE S.C. - COM"
PROMPT 25 39 ""
PROMPT 25 39 ""
FIELD 613@->DENCOM
FIELD 513@->DENCOM
END
@ -714,6 +716,7 @@ STRINGA 80
BEGIN
KEY "LUOGO CONSERVAZIONE S.C. - PROV"
PROMPT 92 39 ""
FIELD 613@->PROVCOM
FIELD 513@->PROVCOM
END

View File

@ -123,10 +123,14 @@ BEGIN
FIELD 42->QLLV
END
STRINGA 8
LISTA 8
BEGIN
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
END
@ -166,6 +170,14 @@ BEGIN
FIELD 42->QLNUMERO[1,5]
END
STRINGA 14
BEGIN
KEY "NUMERO COMPLETO"
PROMPT 99 3 ""
FIELD 42->QLNUMERO
FLAGS "H"
END
END
SECTION FOOTER LAST 2

View File

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

View File

@ -227,10 +227,14 @@ BEGIN
FIELD 42->QLLV
END
STRINGA 8
LISTA 8
BEGIN
KEY "Tipo Vers."
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
END
@ -265,14 +269,22 @@ END
STRINGA 13
BEGIN
KEY "NUMERO"
KEY "NUMERO SENZA Prog.Versamento"
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
SECTION FOOTER LAST 2
SECTION FOOTER LAST 6
NUMERO 1
BEGIN
@ -288,16 +300,18 @@ BEGIN
PICTURE "###.###.###.###^^^"
END
STRINGA 3
DATE 3
BEGIN
KEY "DATA"
PROMPT 50 5 ""
FLAGS "A"
END
STRINGA 4
BEGIN
KEY "FIRMA"
PROMPT 120 5 ""
FIELD 106@->RAGSOC
END
END

View File

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

View File

@ -53,13 +53,21 @@ void TBase1::compatta_depositario()
const int y = signature.y();
TString spazi(50); spazi.fill(' ');
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] == ' ')
{
TString nome = cognome.mid(30, -1);
cognome.cut(30); cognome.trim();
cognome << ' ' << nome;
cognome << " " << nome;
signature.set(cognome);
}
}
if (noRagsoc)
cognome="";
totali.row(y-1).put(spazi, 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);
}
// 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)
{
TString sQual(3);
TString sQual(3);
TString sTipo;
sTipo = rel->lfile().get("TIPOASOC");
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()
@ -98,12 +111,13 @@ long TBase1::iContaSoci()
return c->items();
}
const int _INIZIO_SOCI=53;
void TBase1::stampa_soci(TPrinter& pr)
{
TPrint_section& fut = section('F', first_page);
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();
if (iSoci > 11)
{
@ -130,8 +144,6 @@ void TBase1::stampa_soci(TPrinter& pr)
sComuneNa=c->file(LF_COMUNI).get("DENCOM");
sComuneNa.cut(28);
sProvNa=c->file(LF_COMUNI).get("PROVCOM");
// fut.field(0).set(sRagsoc);
sRagsoc=fut.field(0).get();
if (sRagsoc.len() > 30 && sRagsoc[30] != ' ')
{
sCognome=sRagsoc.left(30);
@ -166,7 +178,7 @@ bool TBase1::print(const long codditta, const long NumFis, const long NumNoFis)
TCursor* cur = cursor();
TPrinter& pr = printer();
_codditta=codditta;
if (!InitPrint(codditta))
return FALSE;
pr.formlen(_base_formlen);
@ -550,16 +562,18 @@ void TBase4::stampa_testata(TPrinter& pr)
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;
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++)
{
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)
sVal=rN.sMesePag();
else if (i==start+1)
@ -586,16 +600,16 @@ void TBase4::stampa_Q(TPrinter& pr)
TPrint_section& body = section('F', even_page);
body.reset();
TLocalisamfile qp(LF_QUAQ);
_righeQT.fill(_codditta,qp);
if (_righeQT.items()==0) return;
_bAggQ = _righeQT.items() > _RIGHE_Q;
_righeQ.fill(_codditta,qp);
if (_righeQ.items()==0) return;
_bAggQ = _righeQ.items() > _RIGHE_Q;
int riga=0;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_QT(body,riga);
fill_riga_QT(body,riga,'Q');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -605,8 +619,6 @@ void TBase4::stampa_Q(TPrinter& pr)
progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_Q-1;
}
// Salta due righe alla fine
stampa_righe_vuote(pr,2);
}
void TBase4::stampa_T(TPrinter& pr)
@ -614,16 +626,16 @@ void TBase4::stampa_T(TPrinter& pr)
TPrint_section& body = section('F', odd_page);
body.reset();
TLocalisamfile qp(LF_QUAT);
_righeQT.fill(_codditta,qp);
if (_righeQT.items()==0) return;
_bAggT = _righeQT.items() > _RIGHE_T;
_righeT.fill(_codditta,qp);
if (_righeT.items()==0) return;
_bAggT = _righeT.items() > _RIGHE_T;
int riga=0;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_QT(body,riga);
fill_riga_QT(body,riga,'T');
TPrintrow& rr=body.row(0);
pr.print(rr);
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;
int start=1,end=8;
const int items = quadro=='P' ? _righeP.items() : _righeS.items();
for (int i = start; i <= end; 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)
sVal=rN.sImposta(fi.picture());
else if (i==start+1)
@ -678,9 +691,9 @@ void TBase4::stampa_P(TPrinter& pr)
TPrint_section& body = section('H', even_page);
body.reset();
TLocalisamfile qp(LF_QUAP);
_righePS.fill(_codditta,qp);
if (_righePS.items()==0) return;
const int items=_righePS.items();
_righeP.fill(_codditta,qp);
if (_righeP.items()==0) return;
const int items=_righeP.items();
_bAggP = items > _RIGHE_P;
int riga=0;
@ -688,7 +701,7 @@ void TBase4::stampa_P(TPrinter& pr)
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_PS(body,riga);
fill_riga_PS(body,riga,'P');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -698,8 +711,6 @@ void TBase4::stampa_P(TPrinter& pr)
progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_P-1;
}
// Salta due righe alla fine
stampa_righe_vuote(pr,2);
}
void TBase4::stampa_S(TPrinter& pr)
@ -707,16 +718,16 @@ void TBase4::stampa_S(TPrinter& pr)
TPrint_section& body = section('H', even_page);
body.reset();
TLocalisamfile qp(LF_QUAS);
_righePS.fill(_codditta,qp);
if (_righePS.items()==0) return;
_bAggS = _righePS.items() > _RIGHE_S;
_righeS.fill(_codditta,qp);
if (_righeS.items()==0) return;
_bAggS = _righeS.items() > _RIGHE_S;
int riga=0;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_PS(body,riga);
fill_riga_PS(body,riga,'S');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -735,24 +746,22 @@ void TBase4::stampa_R(TPrinter& pr)
TPrint_section& body = section('B', even_page);
body.reset();
TLocalisamfile qr(LF_QUAR);
_righeNR.fill(_codditta,qr);
if (_righeNR.items()==0) return;
const int items=_righeNR.items();
_righeR.fill(_codditta,qr);
if (_righeR.items()==0) return;
const int items=_righeR.items();
// se iRigheNR > 2 => bisogna stampare anche l'allegato
_bAggR = items > _RIGHE_R;
fill_riga_NR(body,0,0);
fill_riga_NR(body,1,1);
fill_riga_NR(body,0,0,'R');
fill_riga_NR(body,1,1,'R');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
_RigaCorr++;
if (usa_progind())
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;
int start,end;
@ -766,12 +775,13 @@ void TBase4::fill_riga_NR(TPrint_section& sec,const int num, const int side)
start=5;
end=9;
}
const int items = quadro=='N' ? _righeN.items() : _righeR.items();
for (int i = start; i < end; 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)
sVal=rN.sMeseRif();
else if (i==start+1)
@ -807,10 +817,10 @@ void TBase4::stampa_N(TPrinter& pr)
TPrint_section& body = section('B', odd_page);
body.reset();
TLocalisamfile qn(LF_QUAN);
_righeNR.fill(_codditta,qn);
if (_righeNR.items()==0) return;
_righeN.fill(_codditta,qn);
if (_righeN.items()==0) return;
// se iRigheN > 6 => bisogna stampare anche l'allegato
_bAggN = _righeNR.items() > _RIGHE_N;
_bAggN = _righeN.items() > _RIGHE_N;
int num=0;
int riga=0;
@ -818,9 +828,9 @@ void TBase4::stampa_N(TPrinter& pr)
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_NR(body,num,0);
fill_riga_NR(body,num,0,'N');
num+=3;
fill_riga_NR(body,num,1);
fill_riga_NR(body,num,1,'N');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -831,8 +841,6 @@ void TBase4::stampa_N(TPrinter& pr)
num-=2;
FinitaSezione=riga>2;
}
// Salta due righe alla fine
stampa_righe_vuote(pr,2);
}
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));
// Stampa da M1 a M6
stampa_testata(pr);
stampa_N(pr);
stampa_P(pr);
stampa_Q(pr);
stampa_R(pr);
stampa_S(pr);
stampa_N(pr);
jump_to_line(pr,16);
stampa_P(pr);
jump_to_line(pr,22);
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);
jump_to_line(pr,41);
stampa_fine(pr);
next_page(pr);
close_print();
@ -996,7 +1010,7 @@ long TQuadroL::filtra(const long codditta)
{
TString filtr(24);
_codditta=codditta;
filtr.format("(CODDITTA==%ld)&&(QLAP==%d)", codditta,anno_770());
filtr.format("(CODDITTA==%ld)&&(QLAP==%d)", _codditta,anno_770());
cursor()->setfilter(filtr, TRUE);
const long items = cursor()->items();
return items;
@ -1058,12 +1072,40 @@ bool TQuadroL::stampa_L(TPrinter& pr,const long lStartRec,const int iRecL)
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)
{
// La sezione f last contiene solo due totali aggiornati con add nel form
TPrint_section& hh = section('F', last_page);
// 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();
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 _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)
{
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
if (cur->items() < _START_AGG_L-1)
return FALSE;
calcola_totali_precedenti();
// Legge dai par.studio l'ordinamento da usare per L
TConfig conf(CONFIG_STUDIO);
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);
pr.formlen(dic_form_len());
int lOffsetL=_START_AGG_L;
// int lOffsetL=_START_AGG_L;
int lOffsetL=15;
(*cur)=lOffsetL;
bool finito=FALSE;
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);
body.reset();
// TLocalisamfile qn(LF_QUAN);
// _righeNR.fill(_codditta,qn);
// Nell'aggiuntivo parto dal record n.7
int num=6;
int riga=0;
// int num=6;
int num=ptrN;
int riga=0;
int LastUsed=0;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_NR(body,num,0);
num+=3;
fill_riga_NR(body,num,1);
fill_riga_NR(body,num,0,'N');
num+=3;
LastUsed=num;
fill_riga_NR(body,num,1,'N');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -1278,24 +1336,24 @@ void TQuadroN::stampa_N(TPrinter& pr)
if (usa_progind())
progind()->addstatus(1);
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);
body.reset();
// TLocalisamfile qp(LF_QUAP);
// _righePS.fill(_codditta,qp);
const int items=_righePS.items();
const int items=_righeP.items();
// Parte da rec.n.5
int riga=4;
// int riga=4;
int riga=ptrP;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_PS(body,riga);
fill_riga_PS(body,riga,'P');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -1303,23 +1361,23 @@ void TQuadroN::stampa_P(TPrinter& pr)
_RigaCorr++;
if (usa_progind())
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);
body.reset();
// TLocalisamfile qp(LF_QUAQ);
// _righeQT.fill(_codditta,qp);
// parte da rec.n.5
int riga=4;
// int riga=4;
int riga=ptrQ;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_QT(body,riga);
fill_riga_QT(body,riga,'Q');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -1327,27 +1385,27 @@ void TQuadroN::stampa_Q(TPrinter& pr)
_RigaCorr++;
if (usa_progind())
progind()->addstatus(1);
FinitaSezione=riga>_RIGHE_QA-1;
FinitaSezione=riga-ptrQ>3;
}
// Salta due righe alla fine
stampa_righe_vuote(pr,2);
return riga;
}
void TQuadroN::stampa_R(TPrinter& pr)
int TQuadroN::stampa_R(TPrinter& pr,const int ptrR)
{
TPrint_section& body = section('B', even_page);
body.reset();
// TLocalisamfile qr(LF_QUAR);
// _righeNR.fill(_codditta,qr);
const int items=_righeNR.items();
int RecNum=2;
const int items=_righeR.items();
// int RecNum=2;
int RecNum=ptrR;
int RigheStampate=0;
int LastUsed=0;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
fill_riga_NR(body,RecNum,0);
RecNum+=3;
fill_riga_NR(body,RecNum,1);
fill_riga_NR(body,RecNum,0,'R');
RecNum+=3;
LastUsed=RecNum;
fill_riga_NR(body,RecNum,1,'R');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -1356,23 +1414,22 @@ void TQuadroN::stampa_R(TPrinter& pr)
if (usa_progind())
progind()->addstatus(1);
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);
body.reset();
// TLocalisamfile qp(LF_QUAS);
// _righePS.fill(_codditta,qp);
int riga=4;
// int riga=4;
int riga=ptrS;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_PS(body,riga);
fill_riga_PS(body,riga,'S');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -1380,22 +1437,22 @@ void TQuadroN::stampa_S(TPrinter& pr)
_RigaCorr++;
if (usa_progind())
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);
body.reset();
// TLocalisamfile qp(LF_QUAT);
// _righeQT.fill(_codditta,qp);
int riga=4;
// int riga=4;
int riga=ptrT;
bool FinitaSezione=FALSE;
while (!FinitaSezione)
{
// Stampa la parte sinistra (primi 4 campi)
fill_riga_QT(body,riga);
fill_riga_QT(body,riga,'T');
TPrintrow& rr=body.row(0);
pr.print(rr);
rr.reset();
@ -1403,8 +1460,9 @@ void TQuadroN::stampa_T(TPrinter& pr)
_RigaCorr++;
if (usa_progind())
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;
TLocalisamfile qn(LF_QUAN);
_righeNR.fill(_codditta,qn);
bool stampoN=_righeNR.items() > 6;
_righeN.fill(_codditta,qn);
bool stampoN=_righeN.items() > 6;
TLocalisamfile qp(LF_QUAP);
_righePS.fill(_codditta,qp);
bool stampoP=_righePS.items() > 4;
_righeP.fill(_codditta,qp);
bool stampoP=_righeP.items() > 4;
TLocalisamfile qq(LF_QUAQ);
_righeQT.fill(_codditta,qq);
bool stampoQ=_righeQT.items() > 4;
_righeQ.fill(_codditta,qq);
bool stampoQ=_righeQ.items() > 4;
TLocalisamfile qr(LF_QUAR);
_righeNR.fill(_codditta,qr);
bool stampoR=_righeNR.items() > 2;
_righeR.fill(_codditta,qr);
bool stampoR=_righeR.items() > 2;
TLocalisamfile qs(LF_QUAS);
_righePS.fill(_codditta,qs);
bool stampoS=_righePS.items() > 4;
_righeS.fill(_codditta,qs);
bool stampoS=_righeS.items() > 4;
TLocalisamfile qt(LF_QUAT);
_righeQT.fill(_codditta,qt);
bool stampoT=_righeQT.items() > 4;
_righeT.fill(_codditta,qt);
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
if (!stampoN && !stampoP && !stampoQ && !stampoR && !stampoS
&& !stampoT)
@ -1481,6 +1540,7 @@ bool TQuadroN::print(const long codditta, const long NumFis, const long NumNoFis
pr.formlen(TDicForm::dic_form_len());
_RigaCorr=0;
(*cur)=0L;
bool done=FALSE;
while (!done)
{
@ -1488,24 +1548,29 @@ bool TQuadroN::print(const long codditta, const long NumFis, const long NumNoFis
int skip=HEADER_PRIMA_NOPOS;
stampa_testata(pr);
jump_to_line(pr, _PaginaPosizionamento ? 20-skip : 20);
stampa_N(pr);
ptrN=stampa_N(pr,ptrN);
jump_to_line(pr, _PaginaPosizionamento ? 26-skip : 26);
stampa_P(pr);
ptrP=stampa_P(pr,ptrP);
jump_to_line(pr, _PaginaPosizionamento ? 38-skip : 38);
stampa_Q(pr);
ptrQ=stampa_Q(pr,ptrQ);
jump_to_line(pr, _PaginaPosizionamento ? 44-skip : 44);
stampa_R(pr);
ptrR=stampa_R(pr,ptrR);
jump_to_line(pr, _PaginaPosizionamento ? 48-skip : 48);
stampa_S(pr);
ptrS=stampa_S(pr,ptrS);
jump_to_line(pr, _PaginaPosizionamento ? 56-skip : 56);
stampa_T(pr);
ptrT=stampa_T(pr,ptrT);
jump_to_line(pr, _PaginaPosizionamento ? 63-skip : 63);
stampa_fine(pr);
_PaginaPosizionamento=FALSE;
next_page(pr);
pr.formlen(TDicForm::dic_form_len());
++(*cur);
done = cur->pos() >= cur->items()-1;
bool FinitoN = ptrN == _righeN.items();
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();
return TRUE;

View File

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