381 lines
14 KiB
C++
Executable File
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
|