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); c = new TCursor(r);
_bAllegSoci=FALSE; _bAllegSoci=FALSE;
_base_formlen = BASE_FORMLEN; _base_formlen = BASE_FORMLEN;
_GiaMessoStartDoc=FALSE;
} }
TBase1::~TBase1() TBase1::~TBase1()
@ -178,8 +179,10 @@ 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;
// Usata per modulaser in fill_page()
set_curr_page(PRIMA);
if (!InitPrint(codditta)) if (!InitPrint(codditta))
return FALSE; return FALSE;
pr.formlen(_base_formlen); pr.formlen(_base_formlen);
@ -189,8 +192,11 @@ bool TBase1::print(const long codditta, const long NumFis, const long NumNoFis)
{ {
ClearFlagModulaser(); ClearFlagModulaser();
TPrintrow r; TPrintrow r;
if (!_GiaMessoStartDoc) if (!_GiaMessoStartDoc)
{
put_modulaser(r, STARTDOC); put_modulaser(r, STARTDOC);
_GiaMessoStartDoc=TRUE;
}
put_modulaser(r, STARTDITTA); put_modulaser(r, STARTDITTA);
put_modulaser(r, STARTPAGE, 1); put_modulaser(r, STARTPAGE, 1);
pr.print(r); pr.print(r);
@ -223,6 +229,11 @@ bool TBase2::print(const long codditta, const long NumFis, const long NumNoFis)
{ {
TCursor* cur = cursor(); TCursor* cur = cursor();
TPrinter& pr = printer(); TPrinter& pr = printer();
if (_modulaser)
{
ClearFlagModulaser();
set_curr_page(SECONDA);
}
_codditta=codditta; _codditta=codditta;
filtra(codditta); filtra(codditta);
_RigaCorr=0; _RigaCorr=0;
@ -267,13 +278,6 @@ int TBase3::stampa_L(TPrinter& pr)
TCursor& cur = *cursor(); TCursor& cur = *cursor();
/* if (iChiaveL==2)
cur.setkey(1);
else
cur.setkey(2);
filtra(_codditta); */
bool finito=FALSE; bool finito=FALSE;
int righe=0; int righe=0;
while (!finito) while (!finito)
@ -332,6 +336,11 @@ bool TBase3::print(const long codditta, const long NumFis, const long NumNoFis)
TPrinter& pr = printer(); TPrinter& pr = printer();
_codditta=codditta; _codditta=codditta;
reset_totali_L(); reset_totali_L();
if (_modulaser)
{
ClearFlagModulaser();
set_curr_page(TERZA);
}
_RigaCorr=0; _RigaCorr=0;
// Legge dai par.studio l'ordinamento da usare per L // 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; _bAggN=_bAggP=_bAggR=_bAggQ=_bAggS=_bAggT=FALSE;
TCursor* cur = cursor(); TCursor* cur = cursor();
TPrinter& pr = printer(); TPrinter& pr = printer();
// per modulaser end-doc (v.fill_page())
_EndPrintDitta=TRUE;
_codditta=codditta; _codditta=codditta;
filtra(codditta); filtra(codditta);
if (_modulaser)
{
ClearFlagModulaser();
set_curr_page(QUARTA);
}
_RigaCorr=0; _RigaCorr=0;
(*cur)=0L; (*cur)=0L;
jump_to_line(pr, prima_riga(PRIMA)); 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; int start=0, last=0;
// Flag per distinguere la prima pagina con posizionamento da quelle successive senza // Flag per distinguere la prima pagina con posizionamento da quelle successive senza
bool GiaPosizionato=FALSE; bool GiaPosizionato=FALSE;
// Setta formlen prima di printer.open per avere la lunghezza giusta nel caso di // Setta formlen prima di printer.open per avere la lunghezza giusta nel caso di
// stampa a video // stampa a video
printer().formlen(BASE_FORMLEN); printer().formlen(BASE_FORMLEN);
@ -983,9 +998,12 @@ bool TStampaBase::print_quadro(const int OffsetDitta, const bool modulaser)
else else
_fBase1->set_formlen(BASE_FORMLEN-HEADER_PRIMA_NOPOS); _fBase1->set_formlen(BASE_FORMLEN-HEADER_PRIMA_NOPOS);
_fBase1->print(codditta, fis, nofis); _fBase1->print(codditta, fis, nofis);
GiaPosizionato=TRUE; GiaPosizionato=TRUE;
_fBase2->print(codditta, fis, nofis); _fBase2->print(codditta, fis, nofis);
_fBase3->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); _fBase4->print(codditta, fis, nofis);
} }
printer().close(); printer().close();
@ -1255,73 +1273,6 @@ int TQuadroN::prima_riga(PaginaQuadro p) const
return 4+HEADER_PRIMA_NOPOS; 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) int TQuadroN::stampa_N(TPrinter& pr,const int ptrN)
{ {
TPrint_section& body = section('B', odd_page); TPrint_section& body = section('B', odd_page);
@ -1476,44 +1427,6 @@ int TQuadroN::stampa_T(TPrinter& pr,const int ptrT)
return riga; 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 int TQuadroN::dic_form_len() const
{ {
if (_PaginaPosizionamento) if (_PaginaPosizionamento)

View File

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

View File

@ -502,9 +502,6 @@ void TDicForm::put_modulaser(TPrintrow& row, ModulaserKey Cmd, int page)
cofi = cod_fis(_codditta); cofi = cod_fis(_codditta);
ragsoc = get_ragsoc(_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 << cofi; // Cod.Fiscale
riga << "$00/"; // Cod.Studio/ riga << "$00/"; // Cod.Studio/
if (_tipo_ditta == estinto) if (_tipo_ditta == estinto)
@ -516,7 +513,6 @@ void TDicForm::put_modulaser(TPrintrow& row, ModulaserKey Cmd, int page)
} }
break; break;
case STARTPAGE: case STARTPAGE:
// riga = "<VK>*1*";
riga = BuildModulaserStartPage(); riga = BuildModulaserStartPage();
riga << page; riga << page;
_GiaMessoStartPage[page] = TRUE; _GiaMessoStartPage[page] = TRUE;
@ -1870,7 +1866,7 @@ bool TQuadroD::controlla_percentuale(TCursor& cur)
char tipo = rec.get_char(QUD_TIPOA); char tipo = rec.get_char(QUD_TIPOA);
long codana = rec.get_long(QUD_CODANAGR); long codana = rec.get_long(QUD_CODANAGR);
real perc = rec.get_real(QUD_PERC); 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 && if (ditta == ditta_p && tipo == tipo_p &&
codana == codana_p && codcaus == codcaus_p && codana == codana_p && codcaus == codcaus_p &&