Corretta base per modulaser

git-svn-id: svn://10.65.10.50/trunk@3815 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1996-10-22 10:30:02 +00:00
parent 40596d8ff5
commit dce7521c75
3 changed files with 39 additions and 124 deletions

View File

@ -38,6 +38,7 @@ TBase1::TBase1(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm,
c = new TCursor(r);
_bAllegSoci=FALSE;
_base_formlen = BASE_FORMLEN;
_GiaMessoStartDoc=FALSE;
}
TBase1::~TBase1()
@ -178,8 +179,10 @@ bool TBase1::print(const long codditta, const long NumFis, const long NumNoFis)
{
TCursor* cur = cursor();
TPrinter& pr = printer();
_codditta=codditta;
_codditta=codditta;
// Usata per modulaser in fill_page()
set_curr_page(PRIMA);
if (!InitPrint(codditta))
return FALSE;
pr.formlen(_base_formlen);
@ -189,8 +192,11 @@ bool TBase1::print(const long codditta, const long NumFis, const long NumNoFis)
{
ClearFlagModulaser();
TPrintrow r;
if (!_GiaMessoStartDoc)
if (!_GiaMessoStartDoc)
{
put_modulaser(r, STARTDOC);
_GiaMessoStartDoc=TRUE;
}
put_modulaser(r, STARTDITTA);
put_modulaser(r, STARTPAGE, 1);
pr.print(r);
@ -223,6 +229,11 @@ bool TBase2::print(const long codditta, const long NumFis, const long NumNoFis)
{
TCursor* cur = cursor();
TPrinter& pr = printer();
if (_modulaser)
{
ClearFlagModulaser();
set_curr_page(SECONDA);
}
_codditta=codditta;
filtra(codditta);
_RigaCorr=0;
@ -267,13 +278,6 @@ int TBase3::stampa_L(TPrinter& pr)
TCursor& cur = *cursor();
/* if (iChiaveL==2)
cur.setkey(1);
else
cur.setkey(2);
filtra(_codditta); */
bool finito=FALSE;
int righe=0;
while (!finito)
@ -332,6 +336,11 @@ bool TBase3::print(const long codditta, const long NumFis, const long NumNoFis)
TPrinter& pr = printer();
_codditta=codditta;
reset_totali_L();
if (_modulaser)
{
ClearFlagModulaser();
set_curr_page(TERZA);
}
_RigaCorr=0;
// Legge dai par.studio l'ordinamento da usare per L
@ -864,8 +873,15 @@ bool TBase4::print(const long codditta, const long NumFis, const long NumNoFis)
_bAggN=_bAggP=_bAggR=_bAggQ=_bAggS=_bAggT=FALSE;
TCursor* cur = cursor();
TPrinter& pr = printer();
// per modulaser end-doc (v.fill_page())
_EndPrintDitta=TRUE;
_codditta=codditta;
filtra(codditta);
if (_modulaser)
{
ClearFlagModulaser();
set_curr_page(QUARTA);
}
_RigaCorr=0;
(*cur)=0L;
jump_to_line(pr, prima_riga(PRIMA));
@ -919,7 +935,6 @@ bool TStampaBase::print_quadro(const int OffsetDitta, const bool modulaser)
int start=0, last=0;
// Flag per distinguere la prima pagina con posizionamento da quelle successive senza
bool GiaPosizionato=FALSE;
// Setta formlen prima di printer.open per avere la lunghezza giusta nel caso di
// stampa a video
printer().formlen(BASE_FORMLEN);
@ -983,9 +998,12 @@ bool TStampaBase::print_quadro(const int OffsetDitta, const bool modulaser)
else
_fBase1->set_formlen(BASE_FORMLEN-HEADER_PRIMA_NOPOS);
_fBase1->print(codditta, fis, nofis);
GiaPosizionato=TRUE;
GiaPosizionato=TRUE;
_fBase2->print(codditta, fis, nofis);
_fBase3->print(codditta, fis, nofis);
// Dice a base4 se e' sull'ultima ditta (per modulaser end-doc)
_fBase4->set_last_ditta(i==last);
_fBase4->print(codditta, fis, nofis);
}
printer().close();
@ -1255,73 +1273,6 @@ int TQuadroN::prima_riga(PaginaQuadro p) const
return 4+HEADER_PRIMA_NOPOS;
}
/*void TBase4::fill_riga_QT(TPrint_section& sec,const int num)
{
TString sVal;
int start=1,end=6;
for (int i = start; i <= end; i++)
{
TForm_item& fi = sec.find_field(i);
if (num < _righeQT.items())
{
const TRigaQT& rN = _righeQT[num];
if (i==start)
sVal=rN.sMesePag();
else if (i==start+1)
sVal=rN.sAnnoPag();
else if (i==start+2)
sVal=rN.ContVers(fi.picture());
else if (i==start+3)
sVal=rN.ContRimb(fi.picture());
else if (i==start+4)
sVal=rN.Interessi(fi.picture());
else if (i==start+5)
sVal=rN.CodReg();
}
else
sVal="";
fi.set(sVal);
TPrintrow& row=sec.row(0);
row.put(sVal,fi.x()-1);
}
} */
/*
void TBase4::fill_riga_PS(TPrint_section& sec,const int num)
{
TString sVal;
int start=1,end=8;
for (int i = start; i <= end; i++)
{
TForm_item& fi = sec.find_field(i);
if (num < _righePS.items())
{
const TRigaPS& rN = _righePS[num];
if (i==start)
sVal=rN.sImposta(fi.picture());
else if (i==start+1)
sVal=rN.sIntDip(fi.picture());
else if (i==start+2)
sVal=rN.sIntDat(fi.picture());
else if (i==start+3)
sVal=rN.sTipoVers();
else if (i==start+4)
sVal=rN.sCodTrib();
else if (i==start+5)
sVal=rN.sDataVers();
else if (i==start+6)
sVal=rN.sSerie();
else if (i==start+7)
sVal=rN.sNumero();
}
else
sVal="";
fi.set(sVal);
TPrintrow& row=sec.row(0);
row.put(sVal,fi.x()-1);
}
} */
int TQuadroN::stampa_N(TPrinter& pr,const int ptrN)
{
TPrint_section& body = section('B', odd_page);
@ -1476,44 +1427,6 @@ int TQuadroN::stampa_T(TPrinter& pr,const int ptrT)
return riga;
}
/*
void TBase4::fill_riga_NR(TPrint_section& sec,const int num, const int side)
{
TString sVal;
int start,end;
if (side==0)
{
start=0;
end=4;
}
else
{
start=4;
end=8;
}
for (int i = start; i < end; i++)
{
TForm_item& fi = sec.field(i);
if (num < _righeNR.items())
{
const TRigaN& rN = _righeNR[num];
if (i==start)
sVal=rN.sMeseRif();
else if (i==start+1)
sVal=rN.sAnnoRif();
else if (i==start+2)
sVal=rN.ImpRimb(fi.picture());
else if (i==start+3)
sVal=rN.CompAss(fi.picture());
}
else
sVal="";
fi.set(sVal);
TPrintrow& row=sec.row(0);
row.put(sVal,fi.x()-1);
}
} */
int TQuadroN::dic_form_len() const
{
if (_PaginaPosizionamento)

View File

@ -20,6 +20,7 @@ class TBase1 : public TDicForm
void stampa_corpo(TPrinter& pr);
void stampa_soci(TPrinter& pr);
bool bAllegSoci() const { return _bAllegSoci; }
virtual bool ultima_pagina() const { return FALSE; } // usato in fill_page per modulaser
virtual int dic_form_len() const;
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void stampa_totali(TPrinter& pr) {}
@ -27,6 +28,7 @@ class TBase1 : public TDicForm
virtual void set_body(TPrinter& pr, const char tipo) {}
virtual int prima_riga(PaginaQuadro p) const;
public:
bool _GiaMessoStartDoc; // flag per modulaser 'inizio-documento'
void set_formlen(const int formlen) { _base_formlen = formlen; }
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TBase1(const char* sNomeForm, const char* quadro);
@ -39,6 +41,7 @@ class TBase2 : public TDicForm
long _codditta;
protected:
void stampa_corpo(TPrinter& pr);
virtual bool ultima_pagina() const { return FALSE; } // usato in fill_page per modulaser
virtual int dic_form_len() const { return BASE_FORMLEN; }
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void set_body(TPrinter& pr, const char tipo) {}
@ -59,6 +62,7 @@ class TBase3 : public TDicForm
void reset_totali_L();
bool aggiuntivoL() const { return _bAggiuntivoL; }
int stampa_L(TPrinter& pr);
virtual bool ultima_pagina() const { return FALSE; } // usato in fill_page per modulaser
virtual int dic_form_len() const { return BASE_FORMLEN; }
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void set_body(TPrinter& pr, const char tipo) {}
@ -192,7 +196,7 @@ class TBase4 : public TDicForm
{
private:
long _codditta;
bool _bAggN,_bAggP,_bAggR,_bAggQ,_bAggS,_bAggT;
bool _bAggN,_bAggP,_bAggR,_bAggQ,_bAggS,_bAggT;
protected:
int _IdFirma;
TRigheNR _righeR; // array dei record N e R
@ -212,13 +216,15 @@ class TBase4 : public TDicForm
void stampa_Q(TPrinter& pr);
void stampa_R(TPrinter& pr);
void stampa_S(TPrinter& pr);
void stampa_T(TPrinter& pr);
void stampa_T(TPrinter& pr);
virtual int dic_form_len() const { return BASE_FORMLEN; }
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void set_body(TPrinter& pr, const char tipo) {}
virtual int prima_riga(PaginaQuadro p) const { return 4;}
int calcola_firma();
public:
void set_last_ditta(const bool last_ditta) { _LastDitta = last_ditta; }
virtual bool ultima_pagina() const { return TRUE; } // usato in fill_page per modulaser
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TBase4(const char* sNomeForm, const char* quadro) : _IdFirma(824), TDicForm(sNomeForm, quadro) {}
virtual ~TBase4() {}

View File

@ -502,9 +502,6 @@ void TDicForm::put_modulaser(TPrintrow& row, ModulaserKey Cmd, int page)
cofi = cod_fis(_codditta);
ragsoc = get_ragsoc(_codditta);
}
// cofi.format("%-16s", (const char*)_cur->file(-116).get(ANA_COFI));
// ragsoc = _cur->file(LF_NDITTE).get(NDT_RAGSOC);
riga << cofi; // Cod.Fiscale
riga << "$00/"; // Cod.Studio/
if (_tipo_ditta == estinto)
@ -516,7 +513,6 @@ void TDicForm::put_modulaser(TPrintrow& row, ModulaserKey Cmd, int page)
}
break;
case STARTPAGE:
// riga = "<VK>*1*";
riga = BuildModulaserStartPage();
riga << page;
_GiaMessoStartPage[page] = TRUE;
@ -1870,7 +1866,7 @@ bool TQuadroD::controlla_percentuale(TCursor& cur)
char tipo = rec.get_char(QUD_TIPOA);
long codana = rec.get_long(QUD_CODANAGR);
real perc = rec.get_real(QUD_PERC);
TString codcaus = cur->curr(-14).get("S2");
TString codcaus = cur.curr(-14).get("S2");
if (ditta == ditta_p && tipo == tipo_p &&
codana == codana_p && codcaus == codcaus_p &&