campo-sirio/m770/77stba.h
alex 3e0ee48a95 Riportata la R9702 sulla R9703
git-svn-id: svn://10.65.10.50/trunk@5411 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-10-22 10:59:30 +00:00

381 lines
14 KiB
C++
Executable File

#ifndef _77STBA_H
#define _77STBA_H
#include "77stq.h"
HIDDEN const int BASE_FORMLEN = 71;
HIDDEN const int QL_FORMLEN = 72;
HIDDEN const int BASE_PAGINE = 4;
HIDDEN const int HEADER_PRIMA_NOPOS_BASE = 2;
HIDDEN const int HEADER_PRIMA_NOPOS_QL = 2;
HIDDEN const int HEADER_PRIMA_NOPOS_QN = 2;
class TBase1 : public TDicForm
{
private:
long _codditta;
TRelation* r; // usate per contare i soci
TCursor* c;
bool _bAllegSoci;
long iContaSoci();
int _base_formlen;
protected:
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) {}
virtual void aggiorna_totali(const char tipo) {}
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);
virtual ~TBase1();
};
class TBase2 : public TDicForm
{
private:
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) {}
virtual int prima_riga(PaginaQuadro p) const { return 4;}
public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TBase2(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
virtual ~TBase2() {}
};
class TBase3 : public TDicForm
{
private:
bool _bAggiuntivoL; // se necessario stampare aggiuntivo L
protected:
void stampa_testata(TPrinter& pr);
void stampa_totali_L(TPrinter& pr);
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) {}
virtual int prima_riga(PaginaQuadro p) const { return 4;}
virtual long filtra(const long codditta);
public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TBase3(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
virtual ~TBase3() {}
};
const int _RIGA_TOTALI_L = 65;
class TRigaN : public TSortable
{
TRecnotype _pos;
int _MeseRif,_AnnoRif; // periodo di riferimento
real _ImpRimb,_CompAss; // importi
TString _TipoRimb; // Tipo rimborso (solo su R)
public:
virtual int compare(const TSortable& s) const;
TRecnotype pos() const { return _pos; }
const char* sMeseRif() const;
const char* sAnnoRif() const;
const int iMeseRif() const { return _MeseRif; }
const int iAnnoRif() const { return _AnnoRif; }
const char* ImpRimb(const char* pic) const { return _ImpRimb.string(pic); }
const char* CompAss(const char* pic) const { return _CompAss.string(pic); }
const char* TipoRimb() const { return (const char*) _TipoRimb; }
TRigaN(const TLocalisamfile& qn);
virtual ~TRigaN() { }
};
class TRigheNR : public TObject
{
TArray _data;
protected:
const TRigaN& rigaN(int i) const { return (const TRigaN&)_data[i]; }
public:
const TRigaN& operator[](int i) const { return rigaN(i); }
int fill(const long codditta,TLocalisamfile& qnr);
int items() const { return _data.items(); }
void destroy() { _data.destroy(); }
TRigheNR() { }
virtual ~TRigheNR() { }
};
class TRigaQT : public TSortable
{
int _MesePag,_AnnoPag; // periodo di riferimento
real _ContVers,_ContRimb,_Interessi; // importi
TString _sCodReg;
TRecnotype _pos;
public:
virtual int compare(const TSortable& s) const;
TRecnotype pos() const { return _pos; }
const char* sMesePag() const;
const char* sAnnoPag() const;
const int iMesePag() const { return _MesePag; }
const int iAnnoPag() const { return _AnnoPag; }
const char* ContVers(const char* pic) const { return _ContVers.string(pic); }
const char* ContRimb(const char* pic) const { return _ContRimb.string(pic); }
const char* Interessi(const char* pic) const { return _Interessi.string(pic); }
const char* CodReg() const { return (const char*)_sCodReg; }
TRigaQT(const TLocalisamfile& qt);
virtual ~TRigaQT() { }
};
class TRigheQT : public TObject
{
TArray _data;
protected:
const TRigaQT& rigaQT(int i) const { return (const TRigaQT&)_data[i]; }
public:
const TRigaQT& operator[](int i) const { return rigaQT(i); }
void destroy() { _data.destroy(); }
int fill(const long codditta,TLocalisamfile& qt);
int items() const { return _data.items(); }
TRigheQT() {}
virtual ~TRigheQT() {}
};
class TRigaPS : public TSortable
{
TDate _dDv,_dMeseCong;
real _rImp,_rIntDip,_rIntDat; // importi
TString _sTipoV,_sCodTrib,_sSerie,_sNumero;
TRecnotype _pos;
public:
virtual int compare(const TSortable& s) const;
TRecnotype pos() const { return _pos; }
TDate dDataVers() const { return _dDv; }
const char* sDataVers() const { return _dDv.string(); }
const char* sImposta() const;
const char* sIntDip() const;
const char* sIntDat() const;
const char* sImposta(const char* pic) const { return _rImp.string(pic); }
const char* sIntDip(const char* pic) const { return _rIntDip.string(pic); }
const char* sIntDat(const char* pic) const { return _rIntDat.string(pic); }
const char* sTipoVers() const { return (const char*)_sTipoV; }
const char* sCodTrib() const { return (const char*)_sCodTrib; }
const char* sSerie() const { return (const char*)_sSerie; }
const char* sNumero() const { return (const char*)_sNumero; }
int MeseCong() const { return _dMeseCong.month(); }
TRigaPS(const TLocalisamfile& qt);
virtual ~TRigaPS() { }
};
class TRighePS : public TObject
{
TArray _data;
protected:
const TRigaPS& rigaPS(int i) const { return (const TRigaPS&)_data[i]; }
public:
const TRigaPS& operator[](int i) const { return rigaPS(i); }
int fill(const long codditta,TLocalisamfile& ps);
void destroy() { _data.destroy(); }
int items() const { return _data.items(); }
TRighePS() {}
virtual ~TRighePS() {}
};
class TBase4 : public TDicForm
{
private:
long _codditta;
bool _bAggN,_bAggP,_bAggR,_bAggQ,_bAggS,_bAggT;
protected:
int _IdFirma;
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,const char quadro);
void fill_riga_PS(TPrint_section& sec,const int num,const char quadro);
void fill_riga_N(TPrint_section& sec,const int num, const int side);
void fill_riga_R(TPrint_section& sec,const int num, const int side);
void stampa_testata(TPrinter& pr);
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);
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(int id, int maxlen = -1);
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(690), TDicForm(sNomeForm, quadro) {}
virtual ~TBase4() {}
};
const int _FIELD_L = 740;
class TStampaBase : public TStampaQuadro
{
private:
TBase1* _fBase1;
TBase2* _fBase2;
TBase3* _fBase3;
TBase4* _fBase4;
TRelation* _rel;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual bool conta_tipi_per() const { return FALSE; }
virtual TDicForm* get_form() const { return _fBase1; }
virtual TCursor* get_cursor() const { return NULL; }
virtual bool print_quadro(const int OffsetDitta, const bool modulaser);
public:
TStampaBase(char livel) : TStampaQuadro("Base", livel) { }
};
///////////////////////////////////////////////////////////////////////////////////////////
//
// Quadro L aggiuntivo
//
///////////////////////////////////////////////////////////////////////////////////////////
class TQuadroL : public TDicForm
{
private:
long _codditta;
real _rTotEff, _rTotVer;
int _num_foglio;
void reset_totali_L();
void calcola_totali_precedenti();
protected:
void stampa_testata(TPrinter& pr);
void stampa_totali_L(TPrinter& pr, bool finito);
bool stampa_L(TPrinter& pr,long& lStartRec,const int iRecL);
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;
virtual long filtra(const long codditta);
virtual int dic_form_len() const;
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
int calcola_firma();
public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TQuadroL(const char* sNomeForm, const char* quadro) : _rTotEff(ZERO),_rTotVer(ZERO),TDicForm(sNomeForm, quadro) {_num_foglio=0;}
virtual ~TQuadroL() {}
};
class TStampaQuadroAggL : public TStampaQuadro
{
TQuadroL* _form;
TCursor* _cur;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TDicForm* get_form() const { return _form; }
virtual TCursor* get_cursor() const { return _cur; }
virtual bool conta_tipi_per() const { return FALSE; }
public:
TStampaQuadroAggL(const char* quadro, char liv):TStampaQuadro(quadro, liv) {}
virtual ~TStampaQuadroAggL() { }
};
class TQuadroN : public TBase4
{
long _codditta;
int _num_foglio;
public:
virtual int dic_form_len() const;
void stampa_fine(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); }
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
virtual bool ultima_pagina() const { return _PaginaCorrente==PRIMA; }
TQuadroN(const char* sNomeForm, const char* quadro) : TBase4(sNomeForm, quadro) { _IdFirma=2; _num_foglio=0;}
virtual ~TQuadroN() {}
};
class TStampaQuadroAggN : public TStampaQuadro
{
TQuadroN* _form;
TCursor* _cur;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TDicForm* get_form() const { return _form; }
virtual TCursor* get_cursor() const { return _cur; }
virtual bool conta_tipi_per() const { return FALSE; }
public:
TStampaQuadroAggN(const char* quadro, char liv):TStampaQuadro(quadro, liv) {}
virtual ~TStampaQuadroAggN() { }
};
class TAlleSoci : public TDicForm
{
long _codditta;
int _nprog;
protected:
void stampa_corpo(TPrinter& pr);
void set_testata(TPrinter& pr);
virtual long filtra(const long codditta);
public:
virtual bool print(const long codditta, const long NumFis = 0, const long NumNoFis = 0);
TAlleSoci(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
virtual ~TAlleSoci() {}
};
class TStampaAlleSoci : public TStampaQuadro
{
private:
TAlleSoci* _form;
TRelation* _rel;
TCursor* _cur;
protected:
virtual bool conta_tipi_per() const { return FALSE; }
virtual TDicForm* get_form() const { return _form; }
virtual TCursor* get_cursor() const { return _cur; }
virtual bool user_create();
virtual bool user_destroy();
public:
TStampaAlleSoci(const char* quadro, char liv):TStampaQuadro(quadro, liv) {}
virtual ~TStampaAlleSoci() { }
};
#endif