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
 |