Correzione errori

git-svn-id: svn://10.65.10.50/trunk@3747 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
ale 1996-10-10 12:05:58 +00:00
parent fc852afa39
commit 54b473bf48
16 changed files with 2844 additions and 2788 deletions

View File

@ -1,29 +1,29 @@
#include <xvt.h>
#include <checks.h>
#include "770.h"
#include "772.h"
#define usage "Error - usage : %s -{0|1|2|3}"
int main(int argc,char** argv)
{
const int n = (argc > 1) ? atoi(argv[1]+1) : -1;
switch (n)
{
case 0:
m72100(argc,argv); break;
case 1:
m72200(argc,argv); break;
case 2:
m72300(argc,argv); break;
case 3:
m72400(argc,argv); break;
case 4:
stampa_quadro(argc,argv); break;
default:
error_box(usage, argv[0]) ;
}
return 0;
}
#include <xvt.h>
#include <checks.h>
#include "770.h"
#include "772.h"
#define usage "Error - usage : %s -{0|1|2|3}"
int main(int argc,char** argv)
{
const int n = (argc > 1) ? atoi(argv[1]+1) : -1;
switch (n)
{
case 0:
m72100(argc,argv); break;
case 1:
m72200(argc,argv); break;
case 2:
m72300(argc,argv); break;
case 3:
m72400(argc,argv); break;
case 4:
stampa_quadro(argc,argv); break;
default:
error_box(usage, argv[0]) ;
}
return 0;
}

View File

@ -1,5 +1,5 @@
// 77qaall.h
#define QA_ANNO_ALL 101
#define QA_NUM_ALL 102
#define QA2_NUM_ALL 103
// 77qaall.h
#define QA_ANNO_ALL 101
#define QA_NUM_ALL 102
#define QA2_NUM_ALL 103
#define QA2_ANNO_ALL 104

View File

@ -8,7 +8,7 @@ JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES)
JOIN 6 TO 61 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
JOIN 13 TO 218@ ALIAS 313 INTO COM=COMNASC
JOIN 13 TO 216@ ALIAS 413 INTO COM=COMRES
JOIN 13 TO 216@ ALIAS 413 INTO STATO=STATORES COM=COMRES
JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES
END
@ -50,14 +50,14 @@ END
STRINGA 1
BEGIN
KEY "CODICE FISCALE"
PROMPT 3 10 ""
PROMPT 3 9 ""
FIELD 116@->COFI
END
STRINGA 2
BEGIN
KEY "RAGIONE SOCIALE"
PROMPT 39 10 ""
PROMPT 39 9 ""
FIELD 116@->RAGSOC
GROUP 2
END
@ -65,7 +65,7 @@ END
STRINGA 3
BEGIN
KEY "COGNOME"
PROMPT 39 10 ""
PROMPT 39 9 ""
FIELD 116@->RAGSOC[1,30]
GROUP 1
END
@ -73,7 +73,7 @@ END
STRINGA 4
BEGIN
KEY "NOME"
PROMPT 17 12 ""
PROMPT 17 11 ""
FIELD 116@->RAGSOC[31,50]
GROUP 1
END
@ -81,7 +81,7 @@ END
STRINGA 5
BEGIN
KEY "SESSO"
PROMPT 59 12 ""
PROMPT 59 11 ""
FIELD 118@->SESSO
GROUP 1
END
@ -89,7 +89,7 @@ END
STRINGA 6
BEGIN
KEY "DATA DI NASCITA"
PROMPT 63 12 ""
PROMPT 67 11 ""
FIELD 118@->DATANASC
GROUP 1
END
@ -97,7 +97,7 @@ END
STRINGA 7
BEGIN
KEY "COMUNE DI NASCITA"
PROMPT 83 12 ""
PROMPT 83 11 ""
FIELD 113@->DENCOM
GROUP 1
END
@ -105,7 +105,7 @@ END
STRINGA 8
BEGIN
KEY "PROV. DI NASCITA"
PROMPT 125 12 ""
PROMPT 125 11 ""
FIELD 113@->PROVCOM
GROUP 1
END
@ -113,21 +113,21 @@ END
STRINGA 10
BEGIN
KEY "COMUNE DI RES.FISCALE"
PROMPT 17 14 ""
PROMPT 17 13 ""
FIELD 213@->DENCOM
END
STRINGA 11
BEGIN
KEY "PROV DI RES.FISCALE"
PROMPT 59 14 ""
PROMPT 59 13 ""
FIELD 213@->PROVCOM
END
STRINGA 12
BEGIN
KEY "VIA di RES."
PROMPT 67 14 ""
PROMPT 67 13 ""
FIELD 116@->INDRF
FIELD 116@->INDRES
FLAGS "H"
@ -137,7 +137,7 @@ END
STRINGA 15
BEGIN
KEY "NUM. CIVICO di RES."
PROMPT 103 14 ""
PROMPT 103 13 ""
FIELD 116@->CIVRF
FIELD 116@->CIVRES
FLAGS "H"
@ -147,13 +147,13 @@ END
STRINGA 17
BEGIN
KEY "VIA + NUM CIV. DI RES."
PROMPT 67 14 ""
PROMPT 67 13 ""
END
STRINGA 16
BEGIN
KEY "CAP"
PROMPT 124 14 ""
PROMPT 124 13 ""
FIELD 116@->CAPRF
FIELD 116@->CAPRES
END
@ -161,13 +161,13 @@ END
STRINGA 13
BEGIN
KEY "CODICE FISCALE DICHIARANTE"
PROMPT 105 17 ""
PROMPT 105 16 ""
END
NUMBER 14
BEGIN
KEY "NUM. FOGLIO"
PROMPT 125 20 ""
PROMPT 125 19 ""
END
END
@ -329,7 +329,7 @@ BEGIN
PROMPT 91 5 ""
PICTURE "###.###.###^^^"
MESSAGE ADD,FL->17
FIELD 61->IMPONIBILE
// FIELD 61->IMPONIBILE
END
NUMBER 18
@ -338,7 +338,7 @@ BEGIN
PROMPT 105 5 ""
PICTURE "###.###.###^^^"
MESSAGE ADD,FL->18
FIELD 61->RITENUTE
// FIELD 61->RITENUTE
END
NUMBER 19
@ -347,7 +347,7 @@ BEGIN
PROMPT 120 5 ""
PICTURE "###.###.###^^^"
MESSAGE ADD,FL->19
FIELD 61->NETTO
// FIELD 61->NETTO
END
END
@ -395,5 +395,12 @@ BEGIN
PROMPT 120 1 ""
PICTURE "###.###.###^^^"
END
STRINGA 2
BEGIN
KEY "FIRMA"
PROMPT 83 5 ""
FIELD 116@->RAGSOC
END
END

View File

@ -8,8 +8,8 @@ JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES)
JOIN 6 TO 62 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
JOIN 13 TO 218@ ALIAS 313 INTO COM=COMNASC
JOIN 13 TO 216@ ALIAS 413 INTO COM=COMRES
JOIN 13 TO 216@ ALIAS 513 INTO COM=COMRF(COMRES)
JOIN 13 TO 216@ ALIAS 413 INTO STATO=STATORES COM=COMRES
JOIN 13 TO 216@ ALIAS 513 INTO STATO=""(STATORES) COM=COMRF(COMRES)
JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES
END
@ -37,7 +37,7 @@ BEGIN
FI 131
END
SECTION HEADER FIRST 19
SECTION HEADER FIRST 20
LISTA 9
BEGIN
@ -348,14 +348,14 @@ END
STRING 15
BEGIN
KEY "DESCR. CAUSALE"
PROMPT 11 7 ""
FIELD 14@->S0[1,20]
PROMPT 12 7 ""
FIELD 14@->S2
END
NUMBER 16
BEGIN
KEY "TOTALE"
PROMPT 42 7 ""
PROMPT 26 7 ""
// FIELD 62->TOTALE
PICTURE "###.###.###^^^"
MESSAGE ADD,FL->16
@ -364,7 +364,7 @@ END
NUMBER 17
BEGIN
KEY "SOMME NON SOGGETTE A RITENUTA"
PROMPT 61 7 ""
PROMPT 47 7 ""
// FIELD 62->SOMME
PICTURE "###.###.###^^^"
MESSAGE ADD,FL->17
@ -373,7 +373,7 @@ END
NUMBER 18
BEGIN
KEY "IMPONIBILE"
PROMPT 82 7 ""
PROMPT 67 7 ""
// FIELD 62->IMPONIBILE
PICTURE "###.###.###^^^"
MESSAGE ADD,FL->18
@ -382,7 +382,7 @@ END
STRING 19
BEGIN
KEY "ALIQUOTA"
PROMPT 93 7 ""
PROMPT 84 7 ""
FIELD 62->PERC
PICTURE "###@@"
END
@ -390,7 +390,7 @@ END
NUMBER 20
BEGIN
KEY "IMPORTO"
PROMPT 106 7 ""
PROMPT 100 7 ""
// FIELD 62->IMPORTO
PICTURE "###.###.###^^^"
MESSAGE ADD,FL->20
@ -399,7 +399,7 @@ END
NUMBER 21
BEGIN
KEY "NETTO"
PROMPT 126 7 ""
PROMPT 120 7 ""
// FIELD 62->NETTO
PICTURE "###.###.###^^^"
MESSAGE ADD,FL->21
@ -407,33 +407,33 @@ END
END
SECTION FOOTER LAST 1
SECTION FOOTER LAST 5
NUMBER 16
BEGIN
KEY "TOTALE TOTALE"
PROMPT 36 1 ""
PROMPT 26 1 ""
PICTURE "###.###.###^^^"
END
NUMBER 17
BEGIN
KEY "TOTALE SOMME NON SOGGETTE"
PROMPT 55 1 ""
PROMPT 47 1 ""
PICTURE "###.###.###^^^"
END
NUMBER 18
BEGIN
KEY "TOTALE IMPONIBILE"
PROMPT 75 1 ""
PROMPT 67 1 ""
PICTURE "###.###.###^^^"
END
NUMBER 20
BEGIN
KEY "TOTALE IMPORTO"
PROMPT 101 1 ""
PROMPT 100 1 ""
PICTURE "###.###.###^^^"
END
@ -444,4 +444,12 @@ BEGIN
PICTURE "###.###.###^^^"
END
STRINGA 2
BEGIN
KEY "FIRMA"
PROMPT 83 5 ""
FIELD 116@->RAGSOC
GROUP 2
END
END

View File

@ -8,8 +8,8 @@ JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES)
JOIN 6 TO 63 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
JOIN 13 TO 218@ ALIAS 313 INTO COM=COMNASC
JOIN 13 TO 216@ ALIAS 413 INTO COM=COMRES
JOIN 13 TO 216@ ALIAS 513 INTO COM=COMRF(COMRES)
JOIN 13 TO 216@ ALIAS 413 INTO STATO=STATORES COM=COMRES
JOIN 13 TO 216@ ALIAS 513 INTO STATO=""(STATORES) COM=COMRF(COMRES)
JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES
END
@ -170,6 +170,8 @@ BEGIN
PROMPT 125 22 ""
END
END
STRINGA 21
BEGIN
KEY "Ritenuta d'acconto"
@ -181,9 +183,6 @@ BEGIN
KEY "Ritenuta d'imposta"
PROMPT 110 22 ""
END
END
SECTION BODY ODD 6
LISTA 100
@ -456,4 +455,12 @@ BEGIN
PICTURE "###.###.###^^^"
END
STRINGA 2
BEGIN
KEY "FIRMA"
PROMPT 83 5 ""
FIELD 116@->RAGSOC
GROUP 2
END
END

File diff suppressed because it is too large Load Diff

View File

@ -1,315 +1,315 @@
#ifndef _77STBA_H
#define _77STBA_H
#include "77stq.h"
HIDDEN const int BASE_FORMLEN = 73;
HIDDEN const int BASE_PAGINE = 4;
class TBase1 : public TDicForm
{
private:
long _codditta;
TRelation* r; // usate per contare i soci
TCursor* c;
bool _bAllegSoci;
long iContaSoci();
protected:
void stampa_corpo(TPrinter& pr);
void stampa_soci(TPrinter& pr);
bool bAllegSoci() const { return _bAllegSoci; }
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:
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 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);
bool aggiuntivoL() const { return _bAggiuntivoL; }
int stampa_L(TPrinter& pr,const int iChiaveL);
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
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); }
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; // data vers.
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; }
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 _righeNR; // array dei record N e R
TRigheQT _righeQT;
TRighePS _righePS;
void stampa_righe_vuote(TPrinter& pr,const int righe);
void fill_riga_QT(TPrint_section& sec,const int num);
void fill_riga_PS(TPrint_section& sec,const int num);
void fill_riga_NR(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();
public:
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() {}
};
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 _rRitEff, _rRitVer;
protected:
void stampa_testata(TPrinter& pr);
void stampa_totali_L(TPrinter& pr);
bool stampa_L(TPrinter& pr,const 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);
void CalcolaTotalePrecedenti(TCursor* cur, const int _START_AGG_L);
public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TQuadroL(const char* sNomeForm, const char* quadro) : _rRitEff(ZERO),_rRitVer(ZERO),TDicForm(sNomeForm, quadro) {}
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;
public:
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);
void stampa_testata(TPrinter& pr);
virtual int prima_riga(PaginaQuadro p) const;
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TQuadroN(const char* sNomeForm, const char* quadro) : TBase4(sNomeForm, quadro) { _IdFirma=2; }
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() { }
};
#endif
#ifndef _77STBA_H
#define _77STBA_H
#include "77stq.h"
HIDDEN const int BASE_FORMLEN = 73;
HIDDEN const int BASE_PAGINE = 4;
class TBase1 : public TDicForm
{
private:
long _codditta;
TRelation* r; // usate per contare i soci
TCursor* c;
bool _bAllegSoci;
long iContaSoci();
protected:
void stampa_corpo(TPrinter& pr);
void stampa_soci(TPrinter& pr);
bool bAllegSoci() const { return _bAllegSoci; }
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:
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 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);
bool aggiuntivoL() const { return _bAggiuntivoL; }
int stampa_L(TPrinter& pr,const int iChiaveL);
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
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); }
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; // data vers.
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; }
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 _righeNR; // array dei record N e R
TRigheQT _righeQT;
TRighePS _righePS;
void stampa_righe_vuote(TPrinter& pr,const int righe);
void fill_riga_QT(TPrint_section& sec,const int num);
void fill_riga_PS(TPrint_section& sec,const int num);
void fill_riga_NR(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();
public:
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() {}
};
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 _rRitEff, _rRitVer;
protected:
void stampa_testata(TPrinter& pr);
void stampa_totali_L(TPrinter& pr);
bool stampa_L(TPrinter& pr,const 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);
void CalcolaTotalePrecedenti(TCursor* cur, const int _START_AGG_L);
public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TQuadroL(const char* sNomeForm, const char* quadro) : _rRitEff(ZERO),_rRitVer(ZERO),TDicForm(sNomeForm, quadro) {}
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;
public:
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);
void stampa_testata(TPrinter& pr);
virtual int prima_riga(PaginaQuadro p) const;
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TQuadroN(const char* sNomeForm, const char* quadro) : TBase4(sNomeForm, quadro) { _IdFirma=2; }
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() { }
};
#endif

View File

@ -50,6 +50,11 @@ void TDicForm::set_cofi_dic(const char* cofi)
_codditta_dic = sogg_estinto(_codditta);
}
/*TCursor& TDicForm::cur()
{
return *_cur;
} */
void TDicForm::set_cursor(TCursor* cur)
{
CHECK(cur, "NULL cursor in TDicForm");
@ -589,7 +594,7 @@ void TDicForm::jump_to_line(TPrinter& pr, const int lin)
void TDicForm::stampa_totali(TPrinter& pr)
{
TPrint_section& totali = section('F', last_page);
totali.update();
totali.update();
for (int i = 0; i < totali.items(); i++)
{
pr.print(totali.row(i));
@ -675,6 +680,32 @@ void TDicForm::set_body(TPrinter& pr, const char tipo)
progind()->addstatus(1);
}
void TDicForm::firma_dichiarante()
{
TPrint_section& footer = section('F', last_page);
TForm_item& firma = footer.find_field(FIRMADIC);
if (_PaginaCorrente == PRIMA)
firma.hide();
if (_PaginaCorrente == QUARTA)
{
firma.show();
const int y = firma.y()-1;
TString cognome = firma.get();
if (cognome.len() > 30 && cognome[29] == ' ')
{
TString nome = cognome.mid(30, -1);
cognome.cut(30); cognome.trim();
cognome << ' ' << nome;
firma.set(cognome);
footer.row(y).reset();
footer.row(y).put(cognome, firma.x()-1);
}
}
// footer.update();
}
void TDicForm::posiziona()
{
@ -702,7 +733,7 @@ class TQuadroG : public TDicForm
void stampa_prospetti3_4(TPrinter& pr);
protected:
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
virtual void inc_curr_page();
virtual void next_page(TPrinter& pr);
virtual void stampa_totali(TPrinter& pr) {}
@ -1699,7 +1730,7 @@ public:
bool controlla_percentuale(TCursor* cur, const real& perc_p);
void set_body(TPrinter& pr, const char tipo);
void setta_importi(TPrint_section& body);
void leggi_importi();
void leggi_importi();
TQuadroD(const char* form, const char* quadro) : TDicForm(form, quadro) {}
virtual ~TQuadroD() {}
@ -1843,7 +1874,7 @@ bool TQuadroD::print(const long codditta, const long NumFis, const long NumNoFis
_CtrFisStampati = _CtrNoFisStampati = 0;
_finite_fis = _finite_nofis = FALSE;
_GiaStampatiFis = _GiaStampatiNoFis = FALSE;
_GiaStampatiFis = _GiaStampatiNoFis = FALSE;
_EndPrintDitta = FALSE; // Vero se stampato l'ultimo record
bool LastRecord = FALSE; // Vero se letto l'ultimo record
bool stampa = TRUE;
@ -1859,10 +1890,11 @@ bool TQuadroD::print(const long codditta, const long NumFis, const long NumNoFis
{
for (int pagina=1; pagina <= QD_PAGINE; pagina++, next_page(pr))
{
pr.formlen(QD_FORMLEN);
// pr.formlen(QD_FORMLEN);
firma_dichiarante();
if (_PaginaCorrente == PRIMA)
{
{
pr.formlen(dic_form_len());
if (_modulaser) ClearFlagModulaser();
bool testata = TRUE;
@ -1872,7 +1904,11 @@ bool TQuadroD::print(const long codditta, const long NumFis, const long NumNoFis
// Stampa intestazione, solo sul primo foglio.
if (testata)
{
(*cur) = PtrFis >= 0L ? PtrFis : 0L;
(*cur) = PtrFis >= 0L ? PtrFis : 0L;
if (_PaginaPosizionamento)
fill_page(pr, 9);
else
fill_page(pr, 12);
stampa_testata(pr);
testata = FALSE;
}
@ -1943,7 +1979,7 @@ bool TQuadroD::print(const long codditta, const long NumFis, const long NumNoFis
{
// Reset del flag di pagina con posiz.
if (_posiziona && _PaginaPosizionamento) _PaginaPosizionamento = FALSE;
pr.formlen(dic_form_len());
bool testata = TRUE;
for (int righe=0; righe < QD_RIGHE_SECONDA; righe++)
{
@ -1991,7 +2027,8 @@ bool TQuadroD::print(const long codditta, const long NumFis, const long NumNoFis
if (_PaginaCorrente == TERZA)
{
bool testata = TRUE;
pr.formlen(dic_form_len());
bool testata = TRUE;
for (int righe=0; righe < QD_RIGHE_TERZA; righe++)
{
stampa = TRUE;
@ -2040,8 +2077,8 @@ bool TQuadroD::print(const long codditta, const long NumFis, const long NumNoFis
if (_PaginaCorrente == QUARTA)
{
pr.formlen(dic_form_len());
azzera_totali();
bool testata = TRUE;
for (int righe=0; righe < QD_RIGHE_QUARTA; righe++)
{
@ -2115,7 +2152,8 @@ bool TQuadroD::print(const long codditta, const long NumFis, const long NumNoFis
}
}
}
PtrNoFis = cur->pos();
PtrNoFis = cur->pos();
firma_dichiarante();
}
} // for pagina..
} // while !_EndPrintDitta
@ -2223,14 +2261,14 @@ bool TQuadroD1::controlla_percentuale(TCursor* cur, const real& perc_p)
void TQuadroD1::leggi_importi()
{
TRectype& cur = cursor()->curr();
TCursor* cur = cursor();
_totale = cur.get_real(QD1_TOTALE);
_quotapro = cur.get_real(QD1_QUOTAPRO);
_speseant = cur.get_real(QD1_SPESEANT);
_imponibile = cur.get_real(QD1_IMPONIBILE);
_importo = cur.get_real(QD1_IMPORTO);
_netto = cur.get_real(QD1_NETTO);
_totale = cur->curr().get_real(QD1_TOTALE);
_quotapro = cur->curr().get_real(QD1_QUOTAPRO);
_speseant = cur->curr().get_real(QD1_SPESEANT);
_imponibile = cur->curr().get_real(QD1_IMPONIBILE);
_importo = cur->curr().get_real(QD1_IMPORTO);
_netto = cur->curr().get_real(QD1_NETTO);
}
void TQuadroD1::setta_importi(TPrint_section& body)
@ -2314,9 +2352,8 @@ void TQuadroD1::next_page(TPrinter& pr)
bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFis)
{
bool StabilitaInesistenzaNoFis = FALSE;
bool StabilitaInesistenzaFis = FALSE;
bool StabilitaInesistenzaFis = FALSE;
bool StampatoRitenutaImposta = FALSE;
long CtrFis = NumFis;
long CtrNoFis = NumNoFis;
long PtrFis = -1L, PtrNoFis=-1L;
@ -2328,7 +2365,7 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
_EndPrintDitta = FALSE; // Vero se stampato l'ultimo record
bool LastRecord = FALSE; // Vero se letto l'ultimo record
bool stampa = TRUE;
_PaginaCorrente = PRIMA;
if (!InitPrint(codditta))
@ -2340,17 +2377,19 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
{
for (int pagina=1; pagina <= QD_PAGINE; pagina++, next_page(pr))
{
pr.formlen(dic_form_len());
// pr.formlen(QD_FORMLEN);
firma_dichiarante();
if (_PaginaCorrente == PRIMA)
{
pr.formlen(dic_form_len());
if (_modulaser) ClearFlagModulaser();
bool testata = TRUE;
for (int righe=0; righe < QD1_RIGHE_PRIMA; righe++)
{
stampa = TRUE;
// Stampa intestazione, solo sul primo foglio.
if (righe == 0)
if (testata)
{
(*cur) = PtrFis >= 0L ? PtrFis : 0L;
@ -2370,6 +2409,7 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
head.find_field(22).set("");
}
stampa_testata(pr);
testata = FALSE;
}
if (_finite_fis || StabilitaInesistenzaFis)
@ -2404,21 +2444,19 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
(*cur) = PtrFis;
const char tipo = cur->curr().get(QD1_TIPOA)[0];
if (tipo == 'F')
{
const bool rit_imp = !cur->curr(-14).get_bool("B0");
if (righe > 0 && rit_imp && !StampatoRitenutaImposta)
break;
if (tipo != 'F')
break;
else
{
const bool rit_acc = cur->curr(-14).get_bool("B0");
if (righe > 0 && !rit_acc && !StampatoRitenutaImposta) break;
CtrFis--;
if (CtrFis == 0L) _finite_fis = TRUE;
real perc_p = cur->curr().get_real(QD1_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
{
set_body(pr, 'F');
}
else
{
leggi_importi();
@ -2434,8 +2472,6 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
LastRecord = cur->pos() >= _Items-1;
}
}
else
break;
} // for righe..
PtrFis = cur->pos();
}
@ -2445,6 +2481,7 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
// Reset del flag di pagina con posiz.
if (_posiziona && _PaginaPosizionamento) _PaginaPosizionamento = FALSE;
pr.formlen(dic_form_len());
bool testata = TRUE;
for (int righe=0; righe < QD1_RIGHE_SECONDA; righe++)
{
@ -2461,21 +2498,20 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
(*cur) = PtrFis;
const char tipo = cur->curr().get(QD1_TIPOA)[0];
if (tipo == 'F')
if (tipo != 'F')
break;
else
{
const bool rit_imp = !cur->curr(-14).get_bool("B0");
if (rit_imp && !StampatoRitenutaImposta)
break;
const bool rit_acc = cur->curr(-14).get_bool("B0");
if (!rit_acc && !StampatoRitenutaImposta) break;
CtrFis--;
if (CtrFis == 0L) _finite_fis = TRUE;
real perc_p = cur->curr().get_real(QD1_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
{
set_body(pr, 'F');
}
else
{
leggi_importi();
@ -2490,8 +2526,6 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
LastRecord = cur->pos() >= _Items-1;
}
}
else
break;
}
PtrFis = cur->pos();
}
@ -2499,6 +2533,7 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
if (_PaginaCorrente == TERZA)
{
bool testata = TRUE;
pr.formlen(dic_form_len());
for (int righe=0; righe < QD1_RIGHE_TERZA; righe++)
{
stampa = TRUE;
@ -2515,20 +2550,20 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
(*cur) = PtrFis;
const char tipo = cur->curr().get(QD1_TIPOA)[0];
if (tipo == 'F')
if (tipo != 'F')
break;
else
{
const bool rit_imp = !cur->curr(-14).get_bool("B0");
if (rit_imp && !StampatoRitenutaImposta)
break;
const bool rit_acc = cur->curr(-14).get_bool("B0");
if (!rit_acc && !StampatoRitenutaImposta) break;
CtrFis--;
if (CtrFis == 0L) _finite_fis = TRUE;
real perc_p = cur->curr().get_real(QD1_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
{
set_body(pr, 'F');
}
else
{
leggi_importi();
@ -2544,14 +2579,13 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
LastRecord = cur->pos() >= _Items-1;
}
}
else
break;
}
PtrFis = cur->pos();
}
if (_PaginaCorrente == QUARTA)
{
pr.formlen(dic_form_len());
azzera_totali();
bool testata = TRUE;
@ -2628,6 +2662,7 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
}
}
PtrNoFis = cur->pos();
firma_dichiarante();
}
} // for pagina..
} // while !_EndPrintDitta
@ -2662,7 +2697,7 @@ bool TStampaQuadroD1::user_create()
_form = new TQuadroD1("77QD1", quadro());
TString sortkey(80);
sortkey.format("CODDITTA|TIPOA|14@->B0-|216@->RAGSOC|CODANAGR|CODCAUS|PERC");
sortkey.format("CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC", LF_QUAD1, LF_QUAD1);
_cur = new TSorted_cursor(_form->TForm::relation(), sortkey);
return TRUE;
@ -3203,7 +3238,7 @@ class TQuadroF : public TDicForm
void azzera_contatori();
void aggiorna_totali(char tipoprosp, TRectype& r);
void stampa_totali(char tipoprosp, TPrinter& pr);
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
public:
virtual bool print(const long codditta, const long numfis=0L, const long numnofis=0L);
@ -3769,9 +3804,9 @@ bool get_alleg_730(const long codditta)
base.put("CODDITTA",(long)codditta);
if (base.read()==NOERR)
{
const long allegA=base.get_long("N730ALLA");
const long allegA2=base.get_long("N730ALLA2");
return allegA || allegA2;
const long allegA=base.get_long("N730ALLA");
const long allegA2=base.get_long("N730ALLA2");
return allegA || allegA2;
}
else
return FALSE;
@ -3800,29 +3835,29 @@ bool TBusta::print(const long codditta, const long, const long)
all730.set(bAlleg730 ? "X" : "");
TPrinter& pr=printer();
TPrint_section& body = section('B', odd_page);
const int body_righe = body.height();
TPrint_section& body = section('B', odd_page);
const int body_righe = body.height();
TCursor* cur=cursor();
bool finito=FALSE;
bool finito=FALSE;
(*cur)=0L;
pr.formlen(BUSTA_CON_POSIZ);
if (!_PaginaPosizionamento)
jump_to_line(pr,prima_riga(PRIMA));
while (!finito)
{
body.reset();
body.update();
for (int i=0; i < body_righe; i++)
{
pr.print(body.row(i));
_RigaCorr++;
}
if (usa_progind())
progind()->addstatus(1);
++(*cur);
finito= cur->pos() >= cur->items()-1;
while (!finito)
{
body.reset();
body.update();
for (int i=0; i < body_righe; i++)
{
pr.print(body.row(i));
_RigaCorr++;
}
if (usa_progind())
progind()->addstatus(1);
++(*cur);
finito= cur->pos() >= cur->items()-1;
pr.formlen(BUSTA_SENZA_POSIZ);
_PaginaPosizionamento=FALSE;
_PaginaPosizionamento=FALSE;
}
// TForm::print(0);
}
@ -3978,10 +4013,6 @@ int stampa_quadro(int argc, char* argv[])
{
app = new TStampaQuadroAggL(quadro, livello);
}
else if (quadro == "N")
{
app = new TStampaQuadroAggN(quadro, livello);
}
if (app != NULL)
{

View File

@ -1,281 +1,284 @@
#ifndef __77STQ_H
#define __77STQ_H
#include <xvt.h>
#include <applicat.h>
#include <relation.h>
#include <config.h>
#include <mask.h>
#include <form.h>
#include <printer.h>
#include <progind.h>
#include "base.h"
#include <urldefid.h>
#include <nditte.h>
#include <anagr.h>
#include "quadroc.h"
#include "quadrod.h"
#include "quadrod1.h"
#include "quadrogd.h"
#include "quadrif.h"
#include "77stqd.h"
#include "77lib.h"
// Righe da saltare nelle prime pag. dei moduli successivi al primo (che' son
// senza le righe del posizionamento...)
HIDDEN int HEADER_PRIMA_NOPOS = 3;
// Chincaglieria che serve per posiziona()
typedef long HWND;
HIDDEN const int MAX_LEN = 300;
extern "C" {
BOOLEAN PrintLineNow( char *pData, word cbBytes, HWND hInst );
};
HIDDEN TString16 __dep16;
HIDDEN TString80 __dep80;
// Vega-Key di Modulaser
HIDDEN const char* VK_STARTDOC = "<VK>&MA796&0&1";
HIDDEN const char* VK_ENDDOC = "<VK>!0";
typedef enum { STARTDOC, STARTDITTA, STARTPAGE, ENDDOC } ModulaserKey;
// Campi form
#define TOT_TOTALE 1
#define TOT_SNSRIT 2
#define TOT_IMPON 3
#define TOT_IMPOR 4
#define TOT_NETTO 5
#define D_TOTALE 16
#define D_SNSRIT 17
#define D_IMPONIBILE 18
#define D_IMPORTO 20
#define D_NETTO 21
#define D1_TOTALE 12
#define D1_QUOTAPRO 13
#define D1_SPESEANT 14
#define D1_IMPONIBILE 15
#define D1_IMPORTO 17
#define D1_NETTO 18
#define C_TOTALE 14
#define C_CONTSSN 15
#define C_SOMME 16
#define C_IMPONIBILE 17
#define C_RITENUTE 18
#define C_NETTO 19
#define H_COFI_DIC 13
#define H_NUM_FOGLIO 14
#define QD_STATO_ESTERO 12
// Quadro D
HIDDEN const int QD_FORMLEN = 72;
HIDDEN const int POS_DITTA = 120; // Colonna del codice ditta a pie' di modulo
HIDDEN const int QD_PAGINE = 4;
HIDDEN const int QD_RIGHE_PRIMA = 4;
HIDDEN const int QD_RIGHE_SECONDA = 7;
HIDDEN const int QD_RIGHE_TERZA = 7;
HIDDEN const int QD_RIGHE_QUARTA = 7;
HIDDEN const int QD1_RIGHE_PRIMA = 6;
HIDDEN const int QD1_RIGHE_SECONDA = 9;
HIDDEN const int QD1_RIGHE_TERZA = 9;
HIDDEN const int QD1_RIGHE_QUARTA = 8;
HIDDEN const int HEADER_SECONDA = 8;
HIDDEN const int HEADER_TERZA = 8; // Sarebbero 9 col righello...
HIDDEN const int HEADER_QUARTA = 13; // 15 col righello...
HIDDEN const int HEADER_D1_SECONDA = 8;
HIDDEN const int HEADER_D1_TERZA = 8;
HIDDEN const int HEADER_D1_QUARTA = 14;
typedef enum { PRIMA=1, SECONDA, TERZA, QUARTA } PaginaQuadro;
typedef enum { fisiche, nofisiche } TipoPagina;
const char* get_ragsoc_anagr(char tipo, long codanagr);
class TDicForm : public TForm
{
private:
real _f_tot_totale, _f_tot_snsrit, _f_tot_impon, _f_tot_impor, _f_tot_netto;
real _nf_tot_totale, _nf_tot_snsrit, _nf_tot_impon, _nf_tot_impor, _nf_tot_netto;
TCursor* _cur;
protected:
long _Items; // numero di record che hanno passato il filtro
PaginaQuadro _PaginaCorrente;
void set_curr_page(PaginaQuadro pagina) { _PaginaCorrente = pagina; }
virtual int dic_form_len() const;
virtual void inc_curr_page();
virtual void next_page(TPrinter& pr);
bool _modulaser; // se stampa per modulaser
bool _posiziona;
TipoDitta _tipo_ditta; // tipo ditta: normale, estinto, dichiarante
int _num_foglio; // numero foglio
TString _cofi_dic; // cod.fis. dichiarante
bool _can_print_tot_fis, _can_print_tot_nofis;
bool _finite_fis, _finite_nofis, _LastDitta, _EndPrintDitta;
bool _GiaStampatiFis, _GiaStampatiNoFis, _PaginaPosizionamento;
bool _GiaPosizionato, _GiaMessoStartDoc, _GiaMessoStartPage[QD_PAGINE]; // flag per modulaser
int _CtrNoFisStampati, _CtrFisStampati; // contatori p.f. e p.g. stampate
long _codditta, _codditta_dic; // cod.ditta e cod.ditta dichiarante
int _RigaCorr; // contatore riga corrente
TString16 _quadro; // codice quadro in stampa
void stampa_testata(TPrinter& pr);
virtual bool ultima_pagina() const { return _PaginaCorrente==QUARTA; }
virtual void stampa_totali(TPrinter& pr);
// virtual void aggiorna_totali(const char tipo);
virtual void set_body(TPrinter& pr, const char tipo);
void StampaPagina(PaginaQuadro PaginaCorrente, const bool StampaTotali, const long Fis, const long NoFis);
void posiziona();
void fill_page(TPrinter& pr, const int righe);
void jump_to_line(TPrinter& pr, const int riga);
const char* BuildModulaserStartPage();
void put_modulaser(TPrintrow& row, ModulaserKey key, int page=0);
void ClearFlagModulaser();
bool PaginaPosizionamento() const;
virtual bool InitPrint(const long codditta);
public:
virtual TCursor* cursor() const { return _cur; }
virtual TRelation* relation() const { return _cur->relation(); }
virtual long filtra(const long codditta);
TProgind* _prog; // progind usata in print()
long codditta() const { return _codditta; }
void set_codditta(const long ditta) { _codditta = ditta; }
void set_posiziona(const bool posiz) { _GiaPosizionato = FALSE; }
void can_print_tot_fis(const bool canpr) { _can_print_tot_fis = canpr; }
void can_print_tot_nofis(const bool canpr) { _can_print_tot_nofis = canpr; }
void set_last_ditta(const bool last) { _LastDitta = last; }
bool last_ditta() const { return _LastDitta; }
bool EndJob() const { return _LastDitta && _EndPrintDitta; }
bool ultima_fis();
bool ultima_nofis();
TString& cofi_dic() { return _cofi_dic; }
void set_cofi_dic(const char* cofi);
TipoDitta tipo_ditta() const { return _tipo_ditta; }
void set_tipo_ditta(TipoDitta tipo) { _tipo_ditta = tipo; }
bool modulaser() const { return _modulaser; }
void set_modulaser(const bool modul) { _modulaser = modul; }
void set_num_foglio(const int foglio) { _num_foglio = foglio; }
int num_foglio() const { return _num_foglio; }
virtual void azzera_totali();
PaginaQuadro curr_page() const { return _PaginaCorrente; }
// TCursor& cur();
void set_progind(TProgind* prog) { _prog = prog; }
TProgind* progind() { return _prog; }
bool usa_progind() const { return _prog != NULL; }
virtual void set_cursor(TCursor* cur);
virtual void close_print();
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
virtual int prima_riga(PaginaQuadro p) const;
const TString& quadro() const { return _quadro; }
TDicForm(const char* form, const char* quadro);
virtual ~TDicForm() {}
};
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
//
// TStDicArray
//
// Array delle ditte da stampare. Contiene una riga per ogni ditta che si vuole stampare
// Il formato della riga e':
// codditta|estinti|numfis|numnofis|ultimafis|ultimanofis
//
/////////////////////////////////////////////////////////////////////////////////////////////
class TStDicArray : public TObject
{
private:
TString_array _store;
public:
TToken_string& operator[](int i) const;
int curr_index() const { return _store.last(); }
void set(const int index, const TipoDitta tipo=normale, const int num_fis=0, const int num_nofis=0,
bool ultima_con_fis=FALSE, bool ultima_con_nofis=FALSE, const char* cofidic=NULL);
void set_tipo(const int index, const TipoDitta tipo);
void set_ultima_con_fis(const int index, const bool ultima_fis);
void set_ultima_con_nofis(const int index, const bool ultima_nofis);
void set_flag_tipi(const int index, const bool ultima_fis, const bool ultima_nofis);
void set_ctr_tipi(const int index, const int num_fis, const int num_nofis);
void add(const long codditta, const TipoDitta tipo=normale, const int num_fis=0, const int num_nofis=0,
bool ultima_con_fis=FALSE, bool ultima_con_nofis=FALSE, const char* cofidic=NULL);
int items() const { return _store.items(); }
void destroy() { _store.destroy(); }
};
/////////////////////////////////////////////////////////////////////////////////////////////
//
// STAMPA QUADRO
//
/////////////////////////////////////////////////////////////////////////////////////////////
class TStampaQuadro : public TApplication
{
TMask* _m; // Maschera di stampa
TConfig* _cnf; // Configurazione
TString16 _section; // Paragrafo del config
long _codditta;
int _anno_dic;
TString _quadro;
char _livello; // "S" studio, "D" singola ditta
TString _title;
TStDicArray _ditte;
protected: // TApplication
virtual bool menu(MENU_TAG);
virtual void on_config_change();
virtual bool create();
virtual bool destroy();
protected:
virtual bool user_create() pure;
virtual bool user_destroy() pure;
virtual TDicForm* get_form() const pure;
virtual TCursor* get_cursor() const pure;
virtual const char* mask_name() const;
virtual const char* form_name() const;
virtual bool conta_tipi_per() const { return TRUE; }
void fill_estinti(const long CodDic);
const TStDicArray& ditte() const { return _ditte; }
virtual bool print_quadro(const int OffsetDitta, const bool modulaser);
virtual void print(const bool modulaser);
bool singola_ditta() const { return _livello == 'D'; }
const TString& quadro() const { return _quadro; }
void set_taitol(const char* t) { _title = t; }
TStampaQuadro(const char* quad, char liv);
public:
const TString& taitol() const { return _title; }
virtual ~TStampaQuadro() { }
};
#endif
#ifndef __77STQ_H
#define __77STQ_H
#include <xvt.h>
#include <applicat.h>
#include <relation.h>
#include <config.h>
#include <mask.h>
#include <form.h>
#include <printer.h>
#include <progind.h>
#include "base.h"
#include <urldefid.h>
#include <nditte.h>
#include <anagr.h>
#include "quadroc.h"
#include "quadrod.h"
#include "quadrod1.h"
#include "quadrogd.h"
#include "quadrif.h"
#include "77stqd.h"
#include "77lib.h"
// Righe da saltare nelle prime pag. dei moduli successivi al primo (che' son
// senza le righe del posizionamento...)
HIDDEN int HEADER_PRIMA_NOPOS = 3;
// Chincaglieria che serve per posiziona()
typedef long HWND;
HIDDEN const int MAX_LEN = 300;
extern "C" {
BOOLEAN PrintLineNow( char *pData, word cbBytes, HWND hInst );
};
HIDDEN TString16 __dep16;
HIDDEN TString80 __dep80;
// Vega-Key di Modulaser
HIDDEN const char* VK_STARTDOC = "<VK>&MA796&0&1";
HIDDEN const char* VK_ENDDOC = "<VK>!0";
typedef enum { STARTDOC, STARTDITTA, STARTPAGE, ENDDOC } ModulaserKey;
// Campi form
#define FIRMADIC 2 // Per usare la funzione firma_dichiarante() ricordarsi di definire
// nel footer il blocco dellla firma con id = 2
#define TOT_TOTALE 1
#define TOT_SNSRIT 2
#define TOT_IMPON 3
#define TOT_IMPOR 4
#define TOT_NETTO 5
#define D_TOTALE 16
#define D_SNSRIT 17
#define D_IMPONIBILE 18
#define D_IMPORTO 20
#define D_NETTO 21
#define D1_TOTALE 12
#define D1_QUOTAPRO 13
#define D1_SPESEANT 14
#define D1_IMPONIBILE 15
#define D1_IMPORTO 17
#define D1_NETTO 18
#define C_TOTALE 14
#define C_CONTSSN 15
#define C_SOMME 16
#define C_IMPONIBILE 17
#define C_RITENUTE 18
#define C_NETTO 19
#define H_COFI_DIC 13
#define H_NUM_FOGLIO 14
#define QD_STATO_ESTERO 12
// Quadro D
HIDDEN const int QD_FORMLEN = 72;
HIDDEN const int POS_DITTA = 120; // Colonna del codice ditta a pie' di modulo
HIDDEN const int QD_PAGINE = 4;
HIDDEN const int QD_RIGHE_PRIMA = 4;
HIDDEN const int QD_RIGHE_SECONDA = 7;
HIDDEN const int QD_RIGHE_TERZA = 7;
HIDDEN const int QD_RIGHE_QUARTA = 7;
HIDDEN const int QD1_RIGHE_PRIMA = 6;
HIDDEN const int QD1_RIGHE_SECONDA = 9;
HIDDEN const int QD1_RIGHE_TERZA = 9;
HIDDEN const int QD1_RIGHE_QUARTA = 8;
HIDDEN const int HEADER_SECONDA = 8;
HIDDEN const int HEADER_TERZA = 8; // Sarebbero 9 col righello...
HIDDEN const int HEADER_QUARTA = 13; // 15 col righello...
HIDDEN const int HEADER_D1_SECONDA = 8;
HIDDEN const int HEADER_D1_TERZA = 8;
HIDDEN const int HEADER_D1_QUARTA = 14;
typedef enum { PRIMA=1, SECONDA, TERZA, QUARTA } PaginaQuadro;
typedef enum { fisiche, nofisiche } TipoPagina;
const char* get_ragsoc_anagr(char tipo, long codanagr);
class TDicForm : public TForm
{
private:
real _f_tot_totale, _f_tot_snsrit, _f_tot_impon, _f_tot_impor, _f_tot_netto;
real _nf_tot_totale, _nf_tot_snsrit, _nf_tot_impon, _nf_tot_impor, _nf_tot_netto;
TCursor* _cur;
protected:
long _Items; // numero di record che hanno passato il filtro
PaginaQuadro _PaginaCorrente;
void set_curr_page(PaginaQuadro pagina) { _PaginaCorrente = pagina; }
virtual int dic_form_len() const;
virtual void inc_curr_page();
virtual void next_page(TPrinter& pr);
bool _modulaser; // se stampa per modulaser
bool _posiziona;
TipoDitta _tipo_ditta; // tipo ditta: normale, estinto, dichiarante
int _num_foglio; // numero foglio
TString _cofi_dic; // cod.fis. dichiarante
bool _can_print_tot_fis, _can_print_tot_nofis;
bool _finite_fis, _finite_nofis, _LastDitta, _EndPrintDitta;
bool _GiaStampatiFis, _GiaStampatiNoFis, _PaginaPosizionamento;
bool _GiaPosizionato, _GiaMessoStartDoc, _GiaMessoStartPage[QD_PAGINE]; // flag per modulaser
int _CtrNoFisStampati, _CtrFisStampati; // contatori p.f. e p.g. stampate
long _codditta, _codditta_dic; // cod.ditta e cod.ditta dichiarante
int _RigaCorr; // contatore riga corrente
TString16 _quadro; // codice quadro in stampa
void stampa_testata(TPrinter& pr);
virtual bool ultima_pagina() const { return _PaginaCorrente==QUARTA; }
virtual void stampa_totali(TPrinter& pr);
// virtual void aggiorna_totali(const char tipo);
virtual void set_body(TPrinter& pr, const char tipo);
void StampaPagina(PaginaQuadro PaginaCorrente, const bool StampaTotali, const long Fis, const long NoFis);
void posiziona();
void fill_page(TPrinter& pr, const int righe);
void jump_to_line(TPrinter& pr, const int riga);
const char* BuildModulaserStartPage();
void put_modulaser(TPrintrow& row, ModulaserKey key, int page=0);
void ClearFlagModulaser();
bool PaginaPosizionamento() const;
virtual bool InitPrint(const long codditta);
public:
virtual TCursor* cursor() const { return _cur; }
virtual TRelation* relation() const { return _cur->relation(); }
virtual long filtra(const long codditta);
TProgind* _prog; // progind usata in print()
long codditta() const { return _codditta; }
void set_codditta(const long ditta) { _codditta = ditta; }
void set_posiziona(const bool posiz) { _GiaPosizionato = FALSE; }
void can_print_tot_fis(const bool canpr) { _can_print_tot_fis = canpr; }
void can_print_tot_nofis(const bool canpr) { _can_print_tot_nofis = canpr; }
void set_last_ditta(const bool last) { _LastDitta = last; }
bool last_ditta() const { return _LastDitta; }
bool EndJob() const { return _LastDitta && _EndPrintDitta; }
bool ultima_fis();
bool ultima_nofis();
TString& cofi_dic() { return _cofi_dic; }
void set_cofi_dic(const char* cofi);
TipoDitta tipo_ditta() const { return _tipo_ditta; }
void set_tipo_ditta(TipoDitta tipo) { _tipo_ditta = tipo; }
bool modulaser() const { return _modulaser; }
void set_modulaser(const bool modul) { _modulaser = modul; }
void set_num_foglio(const int foglio) { _num_foglio = foglio; }
int num_foglio() const { return _num_foglio; }
virtual void azzera_totali();
void firma_dichiarante();
PaginaQuadro curr_page() const { return _PaginaCorrente; }
// TCursor& cur();
void set_progind(TProgind* prog) { _prog = prog; }
TProgind* progind() { return _prog; }
bool usa_progind() const { return _prog != NULL; }
virtual void set_cursor(TCursor* cur);
virtual void close_print();
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
virtual int prima_riga(PaginaQuadro p) const;
const TString& quadro() const { return _quadro; }
TDicForm(const char* form, const char* quadro);
virtual ~TDicForm() {}
};
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
//
// TStDicArray
//
// Array delle ditte da stampare. Contiene una riga per ogni ditta che si vuole stampare
// Il formato della riga e':
// codditta|estinti|numfis|numnofis|ultimafis|ultimanofis
//
/////////////////////////////////////////////////////////////////////////////////////////////
class TStDicArray : public TObject
{
private:
TString_array _store;
public:
TToken_string& operator[](int i) const;
int curr_index() const { return _store.last(); }
void set(const int index, const TipoDitta tipo=normale, const int num_fis=0, const int num_nofis=0,
bool ultima_con_fis=FALSE, bool ultima_con_nofis=FALSE, const char* cofidic=NULL);
void set_tipo(const int index, const TipoDitta tipo);
void set_ultima_con_fis(const int index, const bool ultima_fis);
void set_ultima_con_nofis(const int index, const bool ultima_nofis);
void set_flag_tipi(const int index, const bool ultima_fis, const bool ultima_nofis);
void set_ctr_tipi(const int index, const int num_fis, const int num_nofis);
void add(const long codditta, const TipoDitta tipo=normale, const int num_fis=0, const int num_nofis=0,
bool ultima_con_fis=FALSE, bool ultima_con_nofis=FALSE, const char* cofidic=NULL);
int items() const { return _store.items(); }
void destroy() { _store.destroy(); }
};
/////////////////////////////////////////////////////////////////////////////////////////////
//
// STAMPA QUADRO
//
/////////////////////////////////////////////////////////////////////////////////////////////
class TStampaQuadro : public TApplication
{
TMask* _m; // Maschera di stampa
TConfig* _cnf; // Configurazione
TString16 _section; // Paragrafo del config
long _codditta;
int _anno_dic;
TString _quadro;
char _livello; // "S" studio, "D" singola ditta
TString _title;
TStDicArray _ditte;
protected: // TApplication
virtual bool menu(MENU_TAG);
virtual void on_config_change();
virtual bool create();
virtual bool destroy();
protected:
virtual bool user_create() pure;
virtual bool user_destroy() pure;
virtual TDicForm* get_form() const pure;
virtual TCursor* get_cursor() const pure;
virtual const char* mask_name() const;
virtual const char* form_name() const;
virtual bool conta_tipi_per() const { return TRUE; }
void fill_estinti(const long CodDic);
const TStDicArray& ditte() const { return _ditte; }
virtual bool print_quadro(const int OffsetDitta, const bool modulaser);
virtual void print(const bool modulaser);
bool singola_ditta() const { return _livello == 'D'; }
const TString& quadro() const { return _quadro; }
void set_taitol(const char* t) { _title = t; }
TStampaQuadro(const char* quad, char liv);
public:
const TString& taitol() const { return _title; }
virtual ~TStampaQuadro() { }
};
#endif

View File

@ -1,337 +1,337 @@
///////////////////////////////////////////////////////////
// Quadro 770/C
///////////////////////////////////////////////////////////
#include "77stqc.h"
/////////////////////////////////////////////////////////////////////////////////
// Quadro C
/////////////////////////////////////////////////////////////////////////////////
bool TQuadroC::controlla_percentuale(TCursor& cur, const real& perc_p)
{
bool stampa = TRUE;
long ditta_p = cur.curr().get_long(QUC_CODDITTA);
char tipo_p = cur.curr().get_char(QUC_TIPOA);
long codana_p = cur.curr().get_long(QUC_CODANAGR);
TString codcaus_p = cur.curr().get (QUC_CODCAUS);
TString ragsoc_p = get_ragsoc_anagr(tipo_p,codana_p);
if (perc_p == ZERO)
{
++(cur);
long ditta = cur.curr().get_long(QUC_CODDITTA);
char tipo = cur.curr().get_char(QUC_TIPOA);
long codana = cur.curr().get_long(QUC_CODANAGR);
TString codcaus = cur.curr().get (QUC_CODCAUS);
TString ragsoc = get_ragsoc_anagr(tipo,codana);
real perc = cur.curr().get_real(QUC_PERC);
if (ditta == ditta_p && tipo == tipo_p && ragsoc == ragsoc_p
&& codana == codana_p && codcaus == codcaus_p)
{
if (perc != ZERO)
{
stampa = FALSE;
_devo_sommare = TRUE;
}
else
stampa = FALSE;
}
--(cur);
}
else
if (perc_p != ZERO)
{
++(cur);
long ditta = cur.curr().get_long(QUC_CODDITTA);
char tipo = cur.curr().get_char(QUC_TIPOA);
long codana = cur.curr().get_long(QUC_CODANAGR);
TString codcaus = cur.curr().get (QUC_CODCAUS);
TString ragsoc = get_ragsoc_anagr(tipo,codana);
real perc = cur.curr().get_real(QUC_PERC);
if (ditta == ditta_p && tipo == tipo_p && ragsoc == ragsoc_p &&
codana == codana_p && codcaus == codcaus_p && perc_p == perc)
stampa = FALSE;
else
_devo_sommare = TRUE;
--(cur);
}
return stampa;
}
void TQuadroC::leggi_importi()
{
TCursor* cur = cursor();
_totale += cur->curr().get_real(QUC_TOTALE);
_contssn += cur->curr().get_real(QUC_CONTSSN);
_somme += cur->curr().get_real(QUC_SOMME);
_imponibile += cur->curr().get_real(QUC_IMPONIBILE);
_ritenute += cur->curr().get_real(QUC_RITENUTE);
_netto += cur->curr().get_real(QUC_NETTO);
}
void TQuadroC::setta_importi(TPrint_section& body)
{
TCursor* cur = cursor();
real totale = cur->curr().get_real(QUC_TOTALE);
real contssn = cur->curr().get_real(QUC_CONTSSN);
real somme = cur->curr().get_real(QUC_SOMME);
real imponibile = cur->curr().get_real(QUC_IMPONIBILE);
real ritenute = cur->curr().get_real(QUC_RITENUTE);
real netto = cur->curr().get_real(QUC_NETTO);
if (_devo_sommare)
{
totale += _totale;
contssn += _contssn;
somme += _somme;
imponibile += _imponibile;
ritenute += _ritenute;
netto += _netto;
_devo_sommare = FALSE;
_totale = ZERO;
_contssn = ZERO;
_somme = ZERO;
_imponibile = ZERO;
_ritenute = ZERO;
_netto = ZERO;
}
TForm_item& ftotale = body.find_field(C_TOTALE);
TForm_item& fcontssn = body.find_field(C_CONTSSN);
TForm_item& fsomme = body.find_field(C_SOMME);
TForm_item& fimponibile = body.find_field(C_IMPONIBILE);
TForm_item& fritenute = body.find_field(C_RITENUTE);
TForm_item& fnetto = body.find_field(C_NETTO);
TString stotale (totale.string());
TString scontssn (contssn.string());
TString ssomme (somme.string());
TString simponibile(imponibile.string());
TString sritenute (ritenute.string());
TString snetto (netto.string());
// Setta i campi
ftotale.set(stotale);
fcontssn.set(scontssn);
fsomme.set(ssomme);
fimponibile.set(simponibile);
fritenute.set(sritenute);
fnetto.set(snetto);
}
void TQuadroC::stampa_corpo(TPrinter& pr)
{
TPrint_section& body = section('B', odd_page);
const int body_righe = body.height();
body.reset();
// body.update();
setta_importi(body);
body.update();
// const int body_righe = body.height();
for (int i=0; i < body_righe; i++)
{
pr.print(body.row(i));
_RigaCorr++;
}
body.reset();
if (usa_progind())
progind()->addstatus(1);
}
int TQuadroC::elementi_pagina(PaginaQuadro p) const
{
const int n[4] = { 6, 10, 10, 9 };
return n[p-PRIMA];
}
int TQuadroC::prima_riga(PaginaQuadro p) const
{
// old return p == PRIMA ? 27 : 8;
// nik1 return p == PRIMA ? 26 : 7;
return p == PRIMA ? 27 : 9;
}
bool TQuadroC::print(const long codditta, const long NumFis, const long NumNoFis)
{
TCursor& cur = *cursor();
TPrinter& pr = printer();
bool stampa = TRUE;
if (!InitPrint(codditta))
return FALSE;
// pr.formlen(QA_FORMLEN);
int elementi = 0; // Numero di elementi stampati in questa pagina
int ele_bis = 0;
bool stampato_ultimo = FALSE;
bool stampati_totali = FALSE;
int pos = 0;
TDipendenti indice;
if (quadro() == "A" || quadro() == "B")
{
const int i = indice.fill(cur);
if (i > 0)
{
if (usa_progind())
progind()->addstatus(cur.items()-i); // Segna come elaborati tutti gli ignorati
cur = indice[0].pos();
}
else
return FALSE;
}
else
cur = 0;
while (!stampati_totali)
{
bool stampa = TRUE;
bool stampero_ultimo = stampato_ultimo == FALSE;
if (stampero_ultimo)
{
if (indice.items() > 0) // Usa indice alternativo
stampero_ultimo &= pos == indice.items()-1;
else // Usa indice del cursore
stampero_ultimo &= cur.pos() == cur.items()-1;
}
_EndPrintDitta=stampato_ultimo;
switch(_PaginaCorrente)
{
case PRIMA:
pr.formlen(dic_form_len());
if (_modulaser)
ClearFlagModulaser();
if (ele_bis == 0)
{
stampa_testata(pr);
jump_to_line(pr, prima_riga(PRIMA));
}
if (!stampato_ultimo)
{
real perc_p = cur.curr().get_real(QUC_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
stampa_corpo(pr);
else
{
leggi_importi();
elementi--;
}
stampato_ultimo = stampero_ultimo;
}
elementi++;
ele_bis++;
if (elementi >= elementi_pagina(PRIMA))
{
next_page(pr);
elementi = 0;
ele_bis = 0;
}
break;
_PaginaPosizionamento=FALSE;
case SECONDA:
case TERZA:
pr.formlen(dic_form_len());
if (!stampato_ultimo)
{
if (ele_bis == 0)
jump_to_line(pr, prima_riga(_PaginaCorrente));
real perc_p = cur.curr().get_real(QUC_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
stampa_corpo(pr);
else
{
leggi_importi();
elementi--;
}
stampato_ultimo = stampero_ultimo;
}
elementi++;
ele_bis++;
if (elementi >= elementi_pagina(_PaginaCorrente))
{
next_page(pr);
elementi = 0;
ele_bis = 0;
}
break;
case QUARTA:
pr.formlen(dic_form_len());
if (!stampato_ultimo)
{
if (ele_bis == 0)
jump_to_line(pr, prima_riga(QUARTA));
real perc_p = cur.curr().get_real(QUC_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
stampa_corpo(pr);
else
{
leggi_importi();
elementi--;
}
stampato_ultimo = stampero_ultimo;
}
elementi++;
ele_bis++;
if (elementi >= elementi_pagina(QUARTA))
{
if (stampato_ultimo)
{
jump_to_line(pr, riga_totali(QUARTA));
stampa_totali(pr);
stampati_totali = TRUE;
}
next_page(pr);
elementi = 0;
ele_bis = 0;
}
break;
default:
CHECK(0, "Invalid Quadro A page");
break;
}
if (!stampato_ultimo)
{
if (indice.items() > 0)
cur = indice[++pos].pos();
else
++cur;
}
}
close_print();
return TRUE;
}
bool TStampaQuadroC::user_create()
{
_form = new TQuadroC("77QC", quadro());
TString sortkey(80);
sortkey.format("CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC", LF_QUAC, LF_QUAC);
_cur = new TSorted_cursor(_form->TForm::relation(), sortkey);
return TRUE;
}
///////////////////////////////////////////////////////////
// Quadro 770/C
///////////////////////////////////////////////////////////
#include "77stqc.h"
/////////////////////////////////////////////////////////////////////////////////
// Quadro C
/////////////////////////////////////////////////////////////////////////////////
bool TQuadroC::controlla_percentuale(TCursor& cur, const real& perc_p)
{
bool stampa = TRUE;
long ditta_p = cur.curr().get_long(QUC_CODDITTA);
char tipo_p = cur.curr().get_char(QUC_TIPOA);
long codana_p = cur.curr().get_long(QUC_CODANAGR);
TString codcaus_p = cur.curr().get (QUC_CODCAUS);
TString ragsoc_p = get_ragsoc_anagr(tipo_p,codana_p);
if (perc_p == ZERO)
{
++(cur);
long ditta = cur.curr().get_long(QUC_CODDITTA);
char tipo = cur.curr().get_char(QUC_TIPOA);
long codana = cur.curr().get_long(QUC_CODANAGR);
TString codcaus = cur.curr().get (QUC_CODCAUS);
TString ragsoc = get_ragsoc_anagr(tipo,codana);
real perc = cur.curr().get_real(QUC_PERC);
if (ditta == ditta_p && tipo == tipo_p && ragsoc == ragsoc_p
&& codana == codana_p && codcaus == codcaus_p)
{
if (perc != ZERO)
{
stampa = FALSE;
_devo_sommare = TRUE;
}
else
stampa = FALSE;
}
--(cur);
}
else
if (perc_p != ZERO)
{
++(cur);
long ditta = cur.curr().get_long(QUC_CODDITTA);
char tipo = cur.curr().get_char(QUC_TIPOA);
long codana = cur.curr().get_long(QUC_CODANAGR);
TString codcaus = cur.curr().get (QUC_CODCAUS);
TString ragsoc = get_ragsoc_anagr(tipo,codana);
real perc = cur.curr().get_real(QUC_PERC);
if (ditta == ditta_p && tipo == tipo_p && ragsoc == ragsoc_p &&
codana == codana_p && codcaus == codcaus_p && perc_p == perc)
stampa = FALSE;
else
_devo_sommare = TRUE;
--(cur);
}
return stampa;
}
void TQuadroC::leggi_importi()
{
TCursor* cur = cursor();
_totale += cur->curr().get_real(QUC_TOTALE);
_contssn += cur->curr().get_real(QUC_CONTSSN);
_somme += cur->curr().get_real(QUC_SOMME);
_imponibile += cur->curr().get_real(QUC_IMPONIBILE);
_ritenute += cur->curr().get_real(QUC_RITENUTE);
_netto += cur->curr().get_real(QUC_NETTO);
}
void TQuadroC::setta_importi(TPrint_section& body)
{
TCursor* cur = cursor();
real totale = cur->curr().get_real(QUC_TOTALE);
real contssn = cur->curr().get_real(QUC_CONTSSN);
real somme = cur->curr().get_real(QUC_SOMME);
real imponibile = cur->curr().get_real(QUC_IMPONIBILE);
real ritenute = cur->curr().get_real(QUC_RITENUTE);
real netto = cur->curr().get_real(QUC_NETTO);
if (_devo_sommare)
{
totale += _totale;
contssn += _contssn;
somme += _somme;
imponibile += _imponibile;
ritenute += _ritenute;
netto += _netto;
_devo_sommare = FALSE;
_totale = ZERO;
_contssn = ZERO;
_somme = ZERO;
_imponibile = ZERO;
_ritenute = ZERO;
_netto = ZERO;
}
TForm_item& ftotale = body.find_field(C_TOTALE);
TForm_item& fcontssn = body.find_field(C_CONTSSN);
TForm_item& fsomme = body.find_field(C_SOMME);
TForm_item& fimponibile = body.find_field(C_IMPONIBILE);
TForm_item& fritenute = body.find_field(C_RITENUTE);
TForm_item& fnetto = body.find_field(C_NETTO);
TString stotale (totale.string());
TString scontssn (contssn.string());
TString ssomme (somme.string());
TString simponibile(imponibile.string());
TString sritenute (ritenute.string());
TString snetto (netto.string());
// Setta i campi
ftotale.set(stotale);
fcontssn.set(scontssn);
fsomme.set(ssomme);
fimponibile.set(simponibile);
fritenute.set(sritenute);
fnetto.set(snetto);
}
void TQuadroC::stampa_corpo(TPrinter& pr)
{
TPrint_section& body = section('B', odd_page);
const int body_righe = body.height();
body.reset();
// body.update();
setta_importi(body);
body.update();
// const int body_righe = body.height();
for (int i=0; i < body_righe; i++)
{
pr.print(body.row(i));
_RigaCorr++;
}
body.reset();
if (usa_progind())
progind()->addstatus(1);
}
int TQuadroC::elementi_pagina(PaginaQuadro p) const
{
const int n[4] = { 6, 10, 10, 9 };
return n[p-PRIMA];
}
int TQuadroC::prima_riga(PaginaQuadro p) const
{
// old return p == PRIMA ? 27 : 8;
// nik1 return p == PRIMA ? 26 : 7;
return p == PRIMA ? 26 : 8;
}
bool TQuadroC::print(const long codditta, const long NumFis, const long NumNoFis)
{
TCursor& cur = *cursor();
TPrinter& pr = printer();
bool stampa = TRUE;
if (!InitPrint(codditta))
return FALSE;
// pr.formlen(QA_FORMLEN);
int elementi = 0; // Numero di elementi stampati in questa pagina
int ele_bis = 0;
bool stampato_ultimo = FALSE;
bool stampati_totali = FALSE;
int pos = 0;
TDipendenti indice;
if (quadro() == "A" || quadro() == "B")
{
const int i = indice.fill(cur);
if (i > 0)
{
if (usa_progind())
progind()->addstatus(cur.items()-i); // Segna come elaborati tutti gli ignorati
cur = indice[0].pos();
}
else
return FALSE;
}
else
cur = 0;
while (!stampati_totali)
{
bool stampa = TRUE;
bool stampero_ultimo = stampato_ultimo == FALSE;
if (stampero_ultimo)
{
if (indice.items() > 0) // Usa indice alternativo
stampero_ultimo &= pos == indice.items()-1;
else // Usa indice del cursore
stampero_ultimo &= cur.pos() == cur.items()-1;
}
_EndPrintDitta=stampato_ultimo;
switch(_PaginaCorrente)
{
case PRIMA:
pr.formlen(dic_form_len());
if (_modulaser)
ClearFlagModulaser();
if (ele_bis == 0)
{
stampa_testata(pr);
jump_to_line(pr, prima_riga(PRIMA));
}
if (!stampato_ultimo)
{
real perc_p = cur.curr().get_real(QUC_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
stampa_corpo(pr);
else
{
leggi_importi();
elementi--;
}
stampato_ultimo = stampero_ultimo;
}
elementi++;
ele_bis++;
if (elementi >= elementi_pagina(PRIMA))
{
next_page(pr);
elementi = 0;
ele_bis = 0;
}
break;
_PaginaPosizionamento=FALSE;
case SECONDA:
case TERZA:
pr.formlen(dic_form_len());
if (!stampato_ultimo)
{
if (ele_bis == 0)
jump_to_line(pr, prima_riga(_PaginaCorrente));
real perc_p = cur.curr().get_real(QUC_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
stampa_corpo(pr);
else
{
leggi_importi();
elementi--;
}
stampato_ultimo = stampero_ultimo;
}
elementi++;
ele_bis++;
if (elementi >= elementi_pagina(_PaginaCorrente))
{
next_page(pr);
elementi = 0;
ele_bis = 0;
}
break;
case QUARTA:
pr.formlen(dic_form_len());
if (!stampato_ultimo)
{
if (ele_bis == 0)
jump_to_line(pr, prima_riga(QUARTA));
real perc_p = cur.curr().get_real(QUC_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
stampa_corpo(pr);
else
{
leggi_importi();
elementi--;
}
stampato_ultimo = stampero_ultimo;
}
elementi++;
ele_bis++;
if (elementi >= elementi_pagina(QUARTA))
{
if (stampato_ultimo)
{
jump_to_line(pr, riga_totali(QUARTA));
stampa_totali(pr);
stampati_totali = TRUE;
}
next_page(pr);
elementi = 0;
ele_bis = 0;
}
break;
default:
CHECK(0, "Invalid Quadro A page");
break;
}
if (!stampato_ultimo)
{
if (indice.items() > 0)
cur = indice[++pos].pos();
else
++cur;
}
}
close_print();
return TRUE;
}
bool TStampaQuadroC::user_create()
{
_form = new TQuadroC("77QC", quadro());
TString sortkey(80);
sortkey.format("CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC", LF_QUAC, LF_QUAC);
_cur = new TSorted_cursor(_form->TForm::relation(), sortkey);
return TRUE;
}

View File

@ -1,39 +1,39 @@
#ifndef __77STQC_H
#define __77STQC_H
#include "77stq.h"
#include "77stqab.h"
class TQuadroC : public TQuadroA
{
enum { QA_FORMLEN = 72 };
real _totale, _contssn, _somme, _imponibile, _ritenute, _netto;
bool _devo_sommare;
protected:
virtual int elementi_pagina(PaginaQuadro p) const;
virtual int prima_riga(PaginaQuadro p) const;
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
public:
bool controlla_percentuale(TCursor& cur, const real& perc_p);
void stampa_corpo(TPrinter& pr);
void setta_importi(TPrint_section& body);
void leggi_importi();
TQuadroC(const char* form, const char* quadro) : TQuadroA(form, quadro) { }
virtual ~TQuadroC() { }
};
class TStampaQuadroC : public TStampaQuadroA
{
protected:
virtual bool user_create();
public:
TStampaQuadroC(const char* quadro, char livel) : TStampaQuadroA(quadro, livel) { }
virtual ~TStampaQuadroC() { }
};
#endif
#ifndef __77STQC_H
#define __77STQC_H
#include "77stq.h"
#include "77stqab.h"
class TQuadroC : public TQuadroA
{
enum { QA_FORMLEN = 72 };
real _totale, _contssn, _somme, _imponibile, _ritenute, _netto;
bool _devo_sommare;
protected:
virtual int elementi_pagina(PaginaQuadro p) const;
virtual int prima_riga(PaginaQuadro p) const;
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
public:
bool controlla_percentuale(TCursor& cur, const real& perc_p);
void stampa_corpo(TPrinter& pr);
void setta_importi(TPrint_section& body);
void leggi_importi();
TQuadroC(const char* form, const char* quadro) : TQuadroA(form, quadro) { }
virtual ~TQuadroC() { }
};
class TStampaQuadroC : public TStampaQuadroA
{
protected:
virtual bool user_create();
public:
TStampaQuadroC(const char* quadro, char livel) : TStampaQuadroA(quadro, livel) { }
virtual ~TStampaQuadroC() { }
};
#endif

View File

@ -1,59 +1,59 @@
#ifndef _ANADIP_H
#define _ANADIP_H
// Campi maschera manutenzione anagrafica dipendenti
#define ADF_CODDITTA 181
#define F_RAGSOCIALE 102
#define ADF_DIP_CODDIP 103
#define F_DIP_CODFI 104
#define F_DIP_COGNOME 105
#define F_DIP_NOME 106
#define F_DIP_SESSO 107
#define F_DIP_DATANA 108
#define F_DIP_COMUNENA 109
#define F_DIP_PROVNA 110
#define F_DIP_COMUNERE 111
#define F_DIP_PROVRE 112
#define F_DIP_INDRE 113
#define F_DIP_QUALIFICA 114
#define F_DIP_STATOCIV 115
#define F_DIP_EREDE 116
#define F_DIP_CODEREDE0 117
#define F_DIP_CODEREDE1 118
#define F_DIP_CODEREDE2 119
#define F_DIP_CODEREDE3 120
#define F_DIP_CODEREDE4 121
#define F_DIP_CODEREDE5 122
#define F_DIP_CODEREDE6 123
#define F_DIP_CODEREDE7 124
#define F_DIP_CODEREDE8 125
#define F_DIP_CODEREDE9 126
#define F_DIP_COGNEREDE0 127
#define F_DIP_COGNEREDE1 128
#define F_DIP_COGNEREDE2 129
#define F_DIP_COGNEREDE3 130
#define F_DIP_COGNEREDE4 131
#define F_DIP_COGNEREDE5 132
#define F_DIP_COGNEREDE6 133
#define F_DIP_COGNEREDE7 134
#define F_DIP_COGNEREDE8 135
#define F_DIP_COGNEREDE9 136
#define F_DIP_NOMEREDE0 137
#define F_DIP_NOMEREDE1 138
#define F_DIP_NOMEREDE2 139
#define F_DIP_NOMEREDE3 140
#define F_DIP_NOMEREDE4 141
#define F_DIP_NOMEREDE5 142
#define F_DIP_NOMEREDE6 143
#define F_DIP_NOMEREDE7 144
#define F_DIP_NOMEREDE8 145
#define F_DIP_NOMEREDE9 146
// Aggiunte 96
#define ADF_CODDIPDEC 147
#define ADF_ASSFIS 148
#define ADF_COMNASC 149
#define ADF_COMRES 150
#define ADF_CODCOMNASC 151
#endif
#ifndef _ANADIP_H
#define _ANADIP_H
// Campi maschera manutenzione anagrafica dipendenti
#define ADF_CODDITTA 181
#define F_RAGSOCIALE 102
#define ADF_DIP_CODDIP 103
#define F_DIP_CODFI 104
#define F_DIP_COGNOME 105
#define F_DIP_NOME 106
#define F_DIP_SESSO 107
#define F_DIP_DATANA 108
#define F_DIP_COMUNENA 109
#define F_DIP_PROVNA 110
#define F_DIP_COMUNERE 111
#define F_DIP_PROVRE 112
#define F_DIP_INDRE 113
#define F_DIP_QUALIFICA 114
#define F_DIP_STATOCIV 115
#define F_DIP_EREDE 116
#define F_DIP_CODEREDE0 117
#define F_DIP_CODEREDE1 118
#define F_DIP_CODEREDE2 119
#define F_DIP_CODEREDE3 120
#define F_DIP_CODEREDE4 121
#define F_DIP_CODEREDE5 122
#define F_DIP_CODEREDE6 123
#define F_DIP_CODEREDE7 124
#define F_DIP_CODEREDE8 125
#define F_DIP_CODEREDE9 126
#define F_DIP_COGNEREDE0 127
#define F_DIP_COGNEREDE1 128
#define F_DIP_COGNEREDE2 129
#define F_DIP_COGNEREDE3 130
#define F_DIP_COGNEREDE4 131
#define F_DIP_COGNEREDE5 132
#define F_DIP_COGNEREDE6 133
#define F_DIP_COGNEREDE7 134
#define F_DIP_COGNEREDE8 135
#define F_DIP_COGNEREDE9 136
#define F_DIP_NOMEREDE0 137
#define F_DIP_NOMEREDE1 138
#define F_DIP_NOMEREDE2 139
#define F_DIP_NOMEREDE3 140
#define F_DIP_NOMEREDE4 141
#define F_DIP_NOMEREDE5 142
#define F_DIP_NOMEREDE6 143
#define F_DIP_NOMEREDE7 144
#define F_DIP_NOMEREDE8 145
#define F_DIP_NOMEREDE9 146
// Aggiunte 96
#define ADF_CODDIPDEC 147
#define ADF_ASSFIS 148
#define ADF_COMNASC 149
#define ADF_COMRES 150
#define ADF_CODCOMNASC 151
#endif

View File

@ -1,104 +1,104 @@
// Mod.770 - Archivio BASE
#define BSE_CODDITTA "CODDITTA"
#define BSE_CODDIC "CODDIC"
#define BSE_TIPOQUA "TIPOQUA"
#define BSE_CODDATLAV "CODDATLAV"
#define BSE_ANNODIC "ANNODIC"
#define BSE_ER92C93 "ER92C93"
#define BSE_ER93C94 "ER93C94"
#define BSE_NATTVER "NATTVER"
#define BSE_EVNATTEC "EVNATTEC"
#define BSE_CODCAAF "CODCAAF"
#define BSE_CODPRO "CODPRO"
#define BSE_N73093ALL "N73093ALL"
#define BSE_SERIE "SERIE"
#define BSE_DATAVERS "DATAVERS"
#define BSE_NUMERO "NUMERO"
#define BSE_A0NFCOM "A0NFCOM"
#define BSE_A0NLDIP "A0NLDIP"
#define BSE_A0COBB "A0COBB"
#define BSE_A0CNET "A0CNET"
#define BSE_A0EPREV "A0EPREV"
#define BSE_A0IITRA "A0IITRA"
#define BSE_A0CTER "A0CTER"
#define BSE_A0TIMP "A0TIMP"
#define BSE_A0ILOR "A0ILOR"
#define BSE_A0TDET "A0TDET"
#define BSE_A0RTER "A0RTER"
#define BSE_A0RDAT "A0RDAT"
#define BSE_A0ERIT "A0ERIT"
#define BSE_A0CARR "A0CARR"
#define BSE_A0AARR "A0AARR"
#define BSE_A0DARR "A0DARR"
#define BSE_A0RARR "A0RARR"
#define BSE_A0RITSI "A0RITSI"
#define BSE_A0CINPS "A0CINPS"
#define BSE_A0RITOPEVA "A0RITOPEVA"
#define BSE_A0RITOPESA "A0RITOPESA"
#define BSE_A0CIIAUT "A0CIIAUT"
#define BSE_A0NADLAV "A0NADLAV"
#define BSE_A0NACAAF "A0NACAAF"
#define BSE_A0CRIMPRAS "A0CRIMPRAS"
#define BSE_A3NFCOM "A3NFCOM"
#define BSE_A3NUMPER "A3NUMPER"
#define BSE_A3REPT10 "A3REPT10"
#define BSE_A3REPT12 "A3REPT12"
#define BSE_B0NFCOM "B0NFCOM"
#define BSE_B0NLDIP "B0NLDIP"
#define BSE_B0TFR93 "B0TFR93"
#define BSE_B0AI "B0AI"
#define BSE_B0COLAV "B0COLAV"
#define BSE_B0TFR7492 "B0TFR7492"
#define BSE_B0AI7492 "B0AI7492"
#define BSE_B0RITSI "B0RITSI"
#define BSE_B0IMP "B0IMP"
#define BSE_B0TIMP "B0TIMP"
#define BSE_B0ROP "B0ROP"
#define BSE_B0AIINPS "B0AIINPS"
#define BSE_B0ROPESA "B0ROPESA"
#define BSE_B0CIIAUT "B0CIIAUT"
#define BSE_B1NFCOM "B1NFCOM"
#define BSE_B1NPER "B1NPER"
#define BSE_B1TIND "B1TIND"
#define BSE_B1TIRM "B1TIRM"
#define BSE_B1TICOM "B1TICOM"
#define BSE_C0NFCOM "C0NFCOM"
#define BSE_C0NLASS "C0NLASS"
#define BSE_C0ACTOT "C0ACTOT"
#define BSE_C0SNSRIT "C0SNSRIT"
#define BSE_C0ROPE "C0ROPE"
#define BSE_C0CIIAUT "C0CIIAUT"
#define BSE_D0NFCOM "D0NFCOM"
#define BSE_D0NLAUT "D0NLAUT"
#define BSE_D0ACTOT "D0ACTOT"
#define BSE_D0SNSRIT "D0SNSRIT"
#define BSE_D0ROPE "D0ROPE"
#define BSE_D0CIIAUT "D0CIIAUT"
#define BSE_D1NFCOM "D1NFCOM"
#define BSE_D1NPER "D1NPER"
#define BSE_D1TACOR "D1TACOR"
#define BSE_D1SNSRIT "D1SNSRIT"
#define BSE_D1ROPE "D1ROPE"
#define BSE_QCOMP "QCOMP"
#define BSE_QSUPPINV "QSUPPINV"
#define BSE_NSUPPM "NSUPPM"
#define BSE_LUOVERS "LUOVERS"
#define BSE_TIPOVERS "TIPOVERS"
#define BSE_RSS "RSS"
#define BSE_FLART4 "FLART4"
#define BSE_QSUPPRIC "QSUPPRIC"
#define BSE_DITTACAAF "DITTACAAF"
#define BSE_C0CONTSSN "C0CONTSSN"
#define I8_1 "B0NFCOM"
#define I8_2 "B0NLDIP"
#define I8_3 "B0TFR93"
#define I8_4 "B0AI"
#define I8_5 "B0COLAV"
#define I8_6 "B0TFR7492"
#define I9_7 "B0AI7492"
#define I9_8 "B0IMP"
#define I9_9 "B0TIMP"
#define I9_10 "B0ROP"
// Mod.770 - Archivio BASE
#define BSE_CODDITTA "CODDITTA"
#define BSE_CODDIC "CODDIC"
#define BSE_TIPOQUA "TIPOQUA"
#define BSE_CODDATLAV "CODDATLAV"
#define BSE_ANNODIC "ANNODIC"
#define BSE_ER92C93 "ER92C93"
#define BSE_ER93C94 "ER93C94"
#define BSE_NATTVER "NATTVER"
#define BSE_EVNATTEC "EVNATTEC"
#define BSE_CODCAAF "CODCAAF"
#define BSE_CODPRO "CODPRO"
#define BSE_N73093ALL "N73093ALL"
#define BSE_SERIE "SERIE"
#define BSE_DATAVERS "DATAVERS"
#define BSE_NUMERO "NUMERO"
#define BSE_A0NFCOM "A0NFCOM"
#define BSE_A0NLDIP "A0NLDIP"
#define BSE_A0COBB "A0COBB"
#define BSE_A0CNET "A0CNET"
#define BSE_A0EPREV "A0EPREV"
#define BSE_A0IITRA "A0IITRA"
#define BSE_A0CTER "A0CTER"
#define BSE_A0TIMP "A0TIMP"
#define BSE_A0ILOR "A0ILOR"
#define BSE_A0TDET "A0TDET"
#define BSE_A0RTER "A0RTER"
#define BSE_A0RDAT "A0RDAT"
#define BSE_A0ERIT "A0ERIT"
#define BSE_A0CARR "A0CARR"
#define BSE_A0AARR "A0AARR"
#define BSE_A0DARR "A0DARR"
#define BSE_A0RARR "A0RARR"
#define BSE_A0RITSI "A0RITSI"
#define BSE_A0CINPS "A0CINPS"
#define BSE_A0RITOPEVA "A0RITOPEVA"
#define BSE_A0RITOPESA "A0RITOPESA"
#define BSE_A0CIIAUT "A0CIIAUT"
#define BSE_A0NADLAV "A0NADLAV"
#define BSE_A0NACAAF "A0NACAAF"
#define BSE_A0CRIMPRAS "A0CRIMPRAS"
#define BSE_A3NFCOM "A3NFCOM"
#define BSE_A3NUMPER "A3NUMPER"
#define BSE_A3REPT10 "A3REPT10"
#define BSE_A3REPT12 "A3REPT12"
#define BSE_B0NFCOM "B0NFCOM"
#define BSE_B0NLDIP "B0NLDIP"
#define BSE_B0TFR93 "B0TFR93"
#define BSE_B0AI "B0AI"
#define BSE_B0COLAV "B0COLAV"
#define BSE_B0TFR7492 "B0TFR7492"
#define BSE_B0AI7492 "B0AI7492"
#define BSE_B0RITSI "B0RITSI"
#define BSE_B0IMP "B0IMP"
#define BSE_B0TIMP "B0TIMP"
#define BSE_B0ROP "B0ROP"
#define BSE_B0AIINPS "B0AIINPS"
#define BSE_B0ROPESA "B0ROPESA"
#define BSE_B0CIIAUT "B0CIIAUT"
#define BSE_B1NFCOM "B1NFCOM"
#define BSE_B1NPER "B1NPER"
#define BSE_B1TIND "B1TIND"
#define BSE_B1TIRM "B1TIRM"
#define BSE_B1TICOM "B1TICOM"
#define BSE_C0NFCOM "C0NFCOM"
#define BSE_C0NLASS "C0NLASS"
#define BSE_C0ACTOT "C0ACTOT"
#define BSE_C0SNSRIT "C0SNSRIT"
#define BSE_C0ROPE "C0ROPE"
#define BSE_C0CIIAUT "C0CIIAUT"
#define BSE_D0NFCOM "D0NFCOM"
#define BSE_D0NLAUT "D0NLAUT"
#define BSE_D0ACTOT "D0ACTOT"
#define BSE_D0SNSRIT "D0SNSRIT"
#define BSE_D0ROPE "D0ROPE"
#define BSE_D0CIIAUT "D0CIIAUT"
#define BSE_D1NFCOM "D1NFCOM"
#define BSE_D1NPER "D1NPER"
#define BSE_D1TACOR "D1TACOR"
#define BSE_D1SNSRIT "D1SNSRIT"
#define BSE_D1ROPE "D1ROPE"
#define BSE_QCOMP "QCOMP"
#define BSE_QSUPPINV "QSUPPINV"
#define BSE_NSUPPM "NSUPPM"
#define BSE_LUOVERS "LUOVERS"
#define BSE_TIPOVERS "TIPOVERS"
#define BSE_RSS "RSS"
#define BSE_FLART4 "FLART4"
#define BSE_QSUPPRIC "QSUPPRIC"
#define BSE_DITTACAAF "DITTACAAF"
#define BSE_C0CONTSSN "C0CONTSSN"
#define I8_1 "B0NFCOM"
#define I8_2 "B0NLDIP"
#define I8_3 "B0TFR93"
#define I8_4 "B0AI"
#define I8_5 "B0COLAV"
#define I8_6 "B0TFR7492"
#define I9_7 "B0AI7492"
#define I9_8 "B0IMP"
#define I9_9 "B0TIMP"
#define I9_10 "B0ROP"

View File

@ -1,5 +1,5 @@
// caus77.h - campi tabella causali
#define bCONTRIBUTO_INPS "B4"
#define bCODICE_QUADRO "S1"
#define bSOMME_ASSOG_RAC "B0"
#define rPERC_RAC "R0"
// caus77.h - campi tabella causali
#define bCONTRIBUTO_INPS "B4"
#define bCODICE_QUADRO "S1"
#define bSOMME_ASSOG_RAC "B0"
#define rPERC_RAC "R0"

View File

@ -1,18 +1,18 @@
#ifndef _PE1_H
#define _PE1_H
//771230m.uml (prospetto E1)
#define PE1F_CODCAUS 113
#define PE1F_IMPONIBILE 119
#define PE1F_RITENUTA 160
#define PE1F_COMPENSO 161
#define PE1F_CODCAUS2 162
#define F_CODANAGR2 170
#define F_RAGSOC2 171
#define PE1F_HPERC 172
#define PE1F_CODDITTA 181
#define PE1F_DESCRCAUS 184
#define PE1F_RAGDITTA 185
#endif
#ifndef _PE1_H
#define _PE1_H
//771230m.uml (prospetto E1)
#define PE1F_CODCAUS 113
#define PE1F_IMPONIBILE 119
#define PE1F_RITENUTA 160
#define PE1F_COMPENSO 161
#define PE1F_CODCAUS2 162
#define F_CODANAGR2 170
#define F_RAGSOC2 171
#define PE1F_HPERC 172
#define PE1F_CODDITTA 181
#define PE1F_DESCRCAUS 184
#define PE1F_RAGDITTA 185
#endif

View File

@ -1,23 +1,23 @@
// Mod.770 - Scheda percipienti - Righe Pagamenti
#ifndef __RPAG_H
#define __RPAG_H
#define PAG_CODDITTA "CODDITTA"
#define PAG_TIPOA "TIPOA"
#define PAG_CODANAGR "CODANAGR"
#define PAG_NPROG "NPROG"
#define PAG_NRIGA "NRIGA"
#define PAG_DATAPAG "DATAPAG"
#define PAG_IMPONIBILE "IMPONIBILE"
#define PAG_PERC "PERC"
#define PAG_RITENUTA "RITENUTA"
#define PAG_COMPENSO "COMPENSO"
#define PAG_NETTO "NETTO"
#define PAG_NUMVERS "NUMVERS"
#define PAG_NUMPAG "NUMPAG"
#define PAG_SPESA "SPESA"
#define PAG_INPSPERC "CTSSNPERC"
#define PAG_INPSCOMP "CTSSNCOMP"
#endif
// Mod.770 - Scheda percipienti - Righe Pagamenti
#ifndef __RPAG_H
#define __RPAG_H
#define PAG_CODDITTA "CODDITTA"
#define PAG_TIPOA "TIPOA"
#define PAG_CODANAGR "CODANAGR"
#define PAG_NPROG "NPROG"
#define PAG_NRIGA "NRIGA"
#define PAG_DATAPAG "DATAPAG"
#define PAG_IMPONIBILE "IMPONIBILE"
#define PAG_PERC "PERC"
#define PAG_RITENUTA "RITENUTA"
#define PAG_COMPENSO "COMPENSO"
#define PAG_NETTO "NETTO"
#define PAG_NUMVERS "NUMVERS"
#define PAG_NUMPAG "NUMPAG"
#define PAG_SPESA "SPESA"
#define PAG_INPSPERC "CTSSNPERC"
#define PAG_INPSCOMP "CTSSNCOMP"
#endif