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

View File

@ -1,5 +1,5 @@
// 77qaall.h // 77qaall.h
#define QA_ANNO_ALL 101 #define QA_ANNO_ALL 101
#define QA_NUM_ALL 102 #define QA_NUM_ALL 102
#define QA2_NUM_ALL 103 #define QA2_NUM_ALL 103
#define QA2_ANNO_ALL 104 #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 6 TO 61 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
JOIN 13 TO 218@ ALIAS 313 INTO COM=COMNASC 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 JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES
END END
@ -50,14 +50,14 @@ END
STRINGA 1 STRINGA 1
BEGIN BEGIN
KEY "CODICE FISCALE" KEY "CODICE FISCALE"
PROMPT 3 10 "" PROMPT 3 9 ""
FIELD 116@->COFI FIELD 116@->COFI
END END
STRINGA 2 STRINGA 2
BEGIN BEGIN
KEY "RAGIONE SOCIALE" KEY "RAGIONE SOCIALE"
PROMPT 39 10 "" PROMPT 39 9 ""
FIELD 116@->RAGSOC FIELD 116@->RAGSOC
GROUP 2 GROUP 2
END END
@ -65,7 +65,7 @@ END
STRINGA 3 STRINGA 3
BEGIN BEGIN
KEY "COGNOME" KEY "COGNOME"
PROMPT 39 10 "" PROMPT 39 9 ""
FIELD 116@->RAGSOC[1,30] FIELD 116@->RAGSOC[1,30]
GROUP 1 GROUP 1
END END
@ -73,7 +73,7 @@ END
STRINGA 4 STRINGA 4
BEGIN BEGIN
KEY "NOME" KEY "NOME"
PROMPT 17 12 "" PROMPT 17 11 ""
FIELD 116@->RAGSOC[31,50] FIELD 116@->RAGSOC[31,50]
GROUP 1 GROUP 1
END END
@ -81,7 +81,7 @@ END
STRINGA 5 STRINGA 5
BEGIN BEGIN
KEY "SESSO" KEY "SESSO"
PROMPT 59 12 "" PROMPT 59 11 ""
FIELD 118@->SESSO FIELD 118@->SESSO
GROUP 1 GROUP 1
END END
@ -89,7 +89,7 @@ END
STRINGA 6 STRINGA 6
BEGIN BEGIN
KEY "DATA DI NASCITA" KEY "DATA DI NASCITA"
PROMPT 63 12 "" PROMPT 67 11 ""
FIELD 118@->DATANASC FIELD 118@->DATANASC
GROUP 1 GROUP 1
END END
@ -97,7 +97,7 @@ END
STRINGA 7 STRINGA 7
BEGIN BEGIN
KEY "COMUNE DI NASCITA" KEY "COMUNE DI NASCITA"
PROMPT 83 12 "" PROMPT 83 11 ""
FIELD 113@->DENCOM FIELD 113@->DENCOM
GROUP 1 GROUP 1
END END
@ -105,7 +105,7 @@ END
STRINGA 8 STRINGA 8
BEGIN BEGIN
KEY "PROV. DI NASCITA" KEY "PROV. DI NASCITA"
PROMPT 125 12 "" PROMPT 125 11 ""
FIELD 113@->PROVCOM FIELD 113@->PROVCOM
GROUP 1 GROUP 1
END END
@ -113,21 +113,21 @@ END
STRINGA 10 STRINGA 10
BEGIN BEGIN
KEY "COMUNE DI RES.FISCALE" KEY "COMUNE DI RES.FISCALE"
PROMPT 17 14 "" PROMPT 17 13 ""
FIELD 213@->DENCOM FIELD 213@->DENCOM
END END
STRINGA 11 STRINGA 11
BEGIN BEGIN
KEY "PROV DI RES.FISCALE" KEY "PROV DI RES.FISCALE"
PROMPT 59 14 "" PROMPT 59 13 ""
FIELD 213@->PROVCOM FIELD 213@->PROVCOM
END END
STRINGA 12 STRINGA 12
BEGIN BEGIN
KEY "VIA di RES." KEY "VIA di RES."
PROMPT 67 14 "" PROMPT 67 13 ""
FIELD 116@->INDRF FIELD 116@->INDRF
FIELD 116@->INDRES FIELD 116@->INDRES
FLAGS "H" FLAGS "H"
@ -137,7 +137,7 @@ END
STRINGA 15 STRINGA 15
BEGIN BEGIN
KEY "NUM. CIVICO di RES." KEY "NUM. CIVICO di RES."
PROMPT 103 14 "" PROMPT 103 13 ""
FIELD 116@->CIVRF FIELD 116@->CIVRF
FIELD 116@->CIVRES FIELD 116@->CIVRES
FLAGS "H" FLAGS "H"
@ -147,13 +147,13 @@ END
STRINGA 17 STRINGA 17
BEGIN BEGIN
KEY "VIA + NUM CIV. DI RES." KEY "VIA + NUM CIV. DI RES."
PROMPT 67 14 "" PROMPT 67 13 ""
END END
STRINGA 16 STRINGA 16
BEGIN BEGIN
KEY "CAP" KEY "CAP"
PROMPT 124 14 "" PROMPT 124 13 ""
FIELD 116@->CAPRF FIELD 116@->CAPRF
FIELD 116@->CAPRES FIELD 116@->CAPRES
END END
@ -161,13 +161,13 @@ END
STRINGA 13 STRINGA 13
BEGIN BEGIN
KEY "CODICE FISCALE DICHIARANTE" KEY "CODICE FISCALE DICHIARANTE"
PROMPT 105 17 "" PROMPT 105 16 ""
END END
NUMBER 14 NUMBER 14
BEGIN BEGIN
KEY "NUM. FOGLIO" KEY "NUM. FOGLIO"
PROMPT 125 20 "" PROMPT 125 19 ""
END END
END END
@ -329,7 +329,7 @@ BEGIN
PROMPT 91 5 "" PROMPT 91 5 ""
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
MESSAGE ADD,FL->17 MESSAGE ADD,FL->17
FIELD 61->IMPONIBILE // FIELD 61->IMPONIBILE
END END
NUMBER 18 NUMBER 18
@ -338,7 +338,7 @@ BEGIN
PROMPT 105 5 "" PROMPT 105 5 ""
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
MESSAGE ADD,FL->18 MESSAGE ADD,FL->18
FIELD 61->RITENUTE // FIELD 61->RITENUTE
END END
NUMBER 19 NUMBER 19
@ -347,7 +347,7 @@ BEGIN
PROMPT 120 5 "" PROMPT 120 5 ""
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
MESSAGE ADD,FL->19 MESSAGE ADD,FL->19
FIELD 61->NETTO // FIELD 61->NETTO
END END
END END
@ -395,5 +395,12 @@ BEGIN
PROMPT 120 1 "" PROMPT 120 1 ""
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
STRINGA 2
BEGIN
KEY "FIRMA"
PROMPT 83 5 ""
FIELD 116@->RAGSOC
END
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 6 TO 62 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
JOIN 13 TO 218@ ALIAS 313 INTO COM=COMNASC 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 13 TO 216@ ALIAS 513 INTO COM=COMRF(COMRES) JOIN 13 TO 216@ ALIAS 513 INTO STATO=""(STATORES) COM=COMRF(COMRES)
JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES
END END
@ -37,7 +37,7 @@ BEGIN
FI 131 FI 131
END END
SECTION HEADER FIRST 19 SECTION HEADER FIRST 20
LISTA 9 LISTA 9
BEGIN BEGIN
@ -348,14 +348,14 @@ END
STRING 15 STRING 15
BEGIN BEGIN
KEY "DESCR. CAUSALE" KEY "DESCR. CAUSALE"
PROMPT 11 7 "" PROMPT 12 7 ""
FIELD 14@->S0[1,20] FIELD 14@->S2
END END
NUMBER 16 NUMBER 16
BEGIN BEGIN
KEY "TOTALE" KEY "TOTALE"
PROMPT 42 7 "" PROMPT 26 7 ""
// FIELD 62->TOTALE // FIELD 62->TOTALE
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
MESSAGE ADD,FL->16 MESSAGE ADD,FL->16
@ -364,7 +364,7 @@ END
NUMBER 17 NUMBER 17
BEGIN BEGIN
KEY "SOMME NON SOGGETTE A RITENUTA" KEY "SOMME NON SOGGETTE A RITENUTA"
PROMPT 61 7 "" PROMPT 47 7 ""
// FIELD 62->SOMME // FIELD 62->SOMME
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
MESSAGE ADD,FL->17 MESSAGE ADD,FL->17
@ -373,7 +373,7 @@ END
NUMBER 18 NUMBER 18
BEGIN BEGIN
KEY "IMPONIBILE" KEY "IMPONIBILE"
PROMPT 82 7 "" PROMPT 67 7 ""
// FIELD 62->IMPONIBILE // FIELD 62->IMPONIBILE
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
MESSAGE ADD,FL->18 MESSAGE ADD,FL->18
@ -382,7 +382,7 @@ END
STRING 19 STRING 19
BEGIN BEGIN
KEY "ALIQUOTA" KEY "ALIQUOTA"
PROMPT 93 7 "" PROMPT 84 7 ""
FIELD 62->PERC FIELD 62->PERC
PICTURE "###@@" PICTURE "###@@"
END END
@ -390,7 +390,7 @@ END
NUMBER 20 NUMBER 20
BEGIN BEGIN
KEY "IMPORTO" KEY "IMPORTO"
PROMPT 106 7 "" PROMPT 100 7 ""
// FIELD 62->IMPORTO // FIELD 62->IMPORTO
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
MESSAGE ADD,FL->20 MESSAGE ADD,FL->20
@ -399,7 +399,7 @@ END
NUMBER 21 NUMBER 21
BEGIN BEGIN
KEY "NETTO" KEY "NETTO"
PROMPT 126 7 "" PROMPT 120 7 ""
// FIELD 62->NETTO // FIELD 62->NETTO
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
MESSAGE ADD,FL->21 MESSAGE ADD,FL->21
@ -407,33 +407,33 @@ END
END END
SECTION FOOTER LAST 1 SECTION FOOTER LAST 5
NUMBER 16 NUMBER 16
BEGIN BEGIN
KEY "TOTALE TOTALE" KEY "TOTALE TOTALE"
PROMPT 36 1 "" PROMPT 26 1 ""
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
NUMBER 17 NUMBER 17
BEGIN BEGIN
KEY "TOTALE SOMME NON SOGGETTE" KEY "TOTALE SOMME NON SOGGETTE"
PROMPT 55 1 "" PROMPT 47 1 ""
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
NUMBER 18 NUMBER 18
BEGIN BEGIN
KEY "TOTALE IMPONIBILE" KEY "TOTALE IMPONIBILE"
PROMPT 75 1 "" PROMPT 67 1 ""
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
NUMBER 20 NUMBER 20
BEGIN BEGIN
KEY "TOTALE IMPORTO" KEY "TOTALE IMPORTO"
PROMPT 101 1 "" PROMPT 100 1 ""
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
@ -444,4 +444,12 @@ BEGIN
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
STRINGA 2
BEGIN
KEY "FIRMA"
PROMPT 83 5 ""
FIELD 116@->RAGSOC
GROUP 2
END
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 6 TO 63 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
JOIN 13 TO 218@ ALIAS 313 INTO COM=COMNASC 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 13 TO 216@ ALIAS 513 INTO COM=COMRF(COMRES) JOIN 13 TO 216@ ALIAS 513 INTO STATO=""(STATORES) COM=COMRF(COMRES)
JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES
END END
@ -170,6 +170,8 @@ BEGIN
PROMPT 125 22 "" PROMPT 125 22 ""
END END
END
STRINGA 21 STRINGA 21
BEGIN BEGIN
KEY "Ritenuta d'acconto" KEY "Ritenuta d'acconto"
@ -181,9 +183,6 @@ BEGIN
KEY "Ritenuta d'imposta" KEY "Ritenuta d'imposta"
PROMPT 110 22 "" PROMPT 110 22 ""
END END
END
SECTION BODY ODD 6 SECTION BODY ODD 6
LISTA 100 LISTA 100
@ -456,4 +455,12 @@ BEGIN
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
STRINGA 2
BEGIN
KEY "FIRMA"
PROMPT 83 5 ""
FIELD 116@->RAGSOC
GROUP 2
END
END END

File diff suppressed because it is too large Load Diff

View File

@ -1,315 +1,315 @@
#ifndef _77STBA_H #ifndef _77STBA_H
#define _77STBA_H #define _77STBA_H
#include "77stq.h" #include "77stq.h"
HIDDEN const int BASE_FORMLEN = 73; HIDDEN const int BASE_FORMLEN = 73;
HIDDEN const int BASE_PAGINE = 4; HIDDEN const int BASE_PAGINE = 4;
class TBase1 : public TDicForm class TBase1 : public TDicForm
{ {
private: private:
long _codditta; long _codditta;
TRelation* r; // usate per contare i soci TRelation* r; // usate per contare i soci
TCursor* c; TCursor* c;
bool _bAllegSoci; bool _bAllegSoci;
long iContaSoci(); long iContaSoci();
protected: protected:
void stampa_corpo(TPrinter& pr); void stampa_corpo(TPrinter& pr);
void stampa_soci(TPrinter& pr); void stampa_soci(TPrinter& pr);
bool bAllegSoci() const { return _bAllegSoci; } bool bAllegSoci() const { return _bAllegSoci; }
virtual int dic_form_len() const; virtual int dic_form_len() const;
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); } virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void stampa_totali(TPrinter& pr) {} virtual void stampa_totali(TPrinter& pr) {}
virtual void aggiorna_totali(const char tipo) {} virtual void aggiorna_totali(const char tipo) {}
virtual void set_body(TPrinter& pr, const char tipo) {} virtual void set_body(TPrinter& pr, const char tipo) {}
virtual int prima_riga(PaginaQuadro p) const; virtual int prima_riga(PaginaQuadro p) const;
public: public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis); virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TBase1(const char* sNomeForm, const char* quadro); TBase1(const char* sNomeForm, const char* quadro);
virtual ~TBase1(); virtual ~TBase1();
}; };
class TBase2 : public TDicForm class TBase2 : public TDicForm
{ {
private: private:
long _codditta; long _codditta;
protected: protected:
void stampa_corpo(TPrinter& pr); void stampa_corpo(TPrinter& pr);
virtual int dic_form_len() const { return BASE_FORMLEN; } virtual int dic_form_len() const { return BASE_FORMLEN; }
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); } virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void set_body(TPrinter& pr, const char tipo) {} virtual void set_body(TPrinter& pr, const char tipo) {}
virtual int prima_riga(PaginaQuadro p) const { return 4;} virtual int prima_riga(PaginaQuadro p) const { return 4;}
public: public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis); virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TBase2(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {} TBase2(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
virtual ~TBase2() {} virtual ~TBase2() {}
}; };
class TBase3 : public TDicForm class TBase3 : public TDicForm
{ {
private: private:
bool _bAggiuntivoL; // se necessario stampare aggiuntivo L bool _bAggiuntivoL; // se necessario stampare aggiuntivo L
protected: protected:
void stampa_testata(TPrinter& pr); void stampa_testata(TPrinter& pr);
void stampa_totali_L(TPrinter& pr); void stampa_totali_L(TPrinter& pr);
bool aggiuntivoL() const { return _bAggiuntivoL; } bool aggiuntivoL() const { return _bAggiuntivoL; }
int stampa_L(TPrinter& pr,const int iChiaveL); int stampa_L(TPrinter& pr,const int iChiaveL);
virtual int dic_form_len() const { return BASE_FORMLEN; } virtual int dic_form_len() const { return BASE_FORMLEN; }
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); } virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void set_body(TPrinter& pr, const char tipo) {} virtual void set_body(TPrinter& pr, const char tipo) {}
virtual int prima_riga(PaginaQuadro p) const { return 4;} virtual int prima_riga(PaginaQuadro p) const { return 4;}
virtual long filtra(const long codditta); virtual long filtra(const long codditta);
public: public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis); virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TBase3(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {} TBase3(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
virtual ~TBase3() {} virtual ~TBase3() {}
}; };
const int _RIGA_TOTALI_L = 65; const int _RIGA_TOTALI_L = 65;
class TRigaN : public TSortable class TRigaN : public TSortable
{ {
TRecnotype _pos; TRecnotype _pos;
int _MeseRif,_AnnoRif; // periodo di riferimento int _MeseRif,_AnnoRif; // periodo di riferimento
real _ImpRimb,_CompAss; // importi real _ImpRimb,_CompAss; // importi
public: public:
virtual int compare(const TSortable& s) const; virtual int compare(const TSortable& s) const;
TRecnotype pos() const { return _pos; } TRecnotype pos() const { return _pos; }
const char* sMeseRif() const; const char* sMeseRif() const;
const char* sAnnoRif() const; const char* sAnnoRif() const;
const int iMeseRif() const { return _MeseRif; } const int iMeseRif() const { return _MeseRif; }
const int iAnnoRif() const { return _AnnoRif; } const int iAnnoRif() const { return _AnnoRif; }
const char* ImpRimb(const char* pic) const { return _ImpRimb.string(pic); } const char* ImpRimb(const char* pic) const { return _ImpRimb.string(pic); }
const char* CompAss(const char* pic) const { return _CompAss.string(pic); } const char* CompAss(const char* pic) const { return _CompAss.string(pic); }
TRigaN(const TLocalisamfile& qn); TRigaN(const TLocalisamfile& qn);
virtual ~TRigaN() { } virtual ~TRigaN() { }
}; };
class TRigheNR : public TObject class TRigheNR : public TObject
{ {
TArray _data; TArray _data;
protected: protected:
const TRigaN& rigaN(int i) const { return (const TRigaN&)_data[i]; } const TRigaN& rigaN(int i) const { return (const TRigaN&)_data[i]; }
public: public:
const TRigaN& operator[](int i) const { return rigaN(i); } const TRigaN& operator[](int i) const { return rigaN(i); }
int fill(const long codditta,TLocalisamfile& qnr); int fill(const long codditta,TLocalisamfile& qnr);
int items() const { return _data.items(); } int items() const { return _data.items(); }
void destroy() { _data.destroy(); } void destroy() { _data.destroy(); }
TRigheNR() { } TRigheNR() { }
virtual ~TRigheNR() { } virtual ~TRigheNR() { }
}; };
class TRigaQT : public TSortable class TRigaQT : public TSortable
{ {
int _MesePag,_AnnoPag; // periodo di riferimento int _MesePag,_AnnoPag; // periodo di riferimento
real _ContVers,_ContRimb,_Interessi; // importi real _ContVers,_ContRimb,_Interessi; // importi
TString _sCodReg; TString _sCodReg;
TRecnotype _pos; TRecnotype _pos;
public: public:
virtual int compare(const TSortable& s) const; virtual int compare(const TSortable& s) const;
TRecnotype pos() const { return _pos; } TRecnotype pos() const { return _pos; }
const char* sMesePag() const; const char* sMesePag() const;
const char* sAnnoPag() const; const char* sAnnoPag() const;
const int iMesePag() const { return _MesePag; } const int iMesePag() const { return _MesePag; }
const int iAnnoPag() const { return _AnnoPag; } const int iAnnoPag() const { return _AnnoPag; }
const char* ContVers(const char* pic) const { return _ContVers.string(pic); } const char* ContVers(const char* pic) const { return _ContVers.string(pic); }
const char* ContRimb(const char* pic) const { return _ContRimb.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* Interessi(const char* pic) const { return _Interessi.string(pic); }
const char* CodReg() const { return (const char*)_sCodReg; } const char* CodReg() const { return (const char*)_sCodReg; }
TRigaQT(const TLocalisamfile& qt); TRigaQT(const TLocalisamfile& qt);
virtual ~TRigaQT() { } virtual ~TRigaQT() { }
}; };
class TRigheQT : public TObject class TRigheQT : public TObject
{ {
TArray _data; TArray _data;
protected: protected:
const TRigaQT& rigaQT(int i) const { return (const TRigaQT&)_data[i]; } const TRigaQT& rigaQT(int i) const { return (const TRigaQT&)_data[i]; }
public: public:
const TRigaQT& operator[](int i) const { return rigaQT(i); } const TRigaQT& operator[](int i) const { return rigaQT(i); }
void destroy() { _data.destroy(); } void destroy() { _data.destroy(); }
int fill(const long codditta,TLocalisamfile& qt); int fill(const long codditta,TLocalisamfile& qt);
int items() const { return _data.items(); } int items() const { return _data.items(); }
TRigheQT() {} TRigheQT() {}
virtual ~TRigheQT() {} virtual ~TRigheQT() {}
}; };
class TRigaPS : public TSortable class TRigaPS : public TSortable
{ {
TDate _dDv; // data vers. TDate _dDv; // data vers.
real _rImp,_rIntDip,_rIntDat; // importi real _rImp,_rIntDip,_rIntDat; // importi
TString _sTipoV,_sCodTrib,_sSerie,_sNumero; TString _sTipoV,_sCodTrib,_sSerie,_sNumero;
TRecnotype _pos; TRecnotype _pos;
public: public:
virtual int compare(const TSortable& s) const; virtual int compare(const TSortable& s) const;
TRecnotype pos() const { return _pos; } TRecnotype pos() const { return _pos; }
TDate dDataVers() const { return _dDv; } TDate dDataVers() const { return _dDv; }
const char* sDataVers() const { return _dDv.string(); } const char* sDataVers() const { return _dDv.string(); }
const char* sImposta() const; const char* sImposta() const;
const char* sIntDip() const; const char* sIntDip() const;
const char* sIntDat() const; const char* sIntDat() const;
const char* sImposta(const char* pic) const { return _rImp.string(pic); } const char* sImposta(const char* pic) const { return _rImp.string(pic); }
const char* sIntDip(const char* pic) const { return _rIntDip.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* sIntDat(const char* pic) const { return _rIntDat.string(pic); }
const char* sTipoVers() const { return (const char*)_sTipoV; } const char* sTipoVers() const { return (const char*)_sTipoV; }
const char* sCodTrib() const { return (const char*)_sCodTrib; } const char* sCodTrib() const { return (const char*)_sCodTrib; }
const char* sSerie() const { return (const char*)_sSerie; } const char* sSerie() const { return (const char*)_sSerie; }
const char* sNumero() const { return (const char*)_sNumero; } const char* sNumero() const { return (const char*)_sNumero; }
TRigaPS(const TLocalisamfile& qt); TRigaPS(const TLocalisamfile& qt);
virtual ~TRigaPS() { } virtual ~TRigaPS() { }
}; };
class TRighePS : public TObject class TRighePS : public TObject
{ {
TArray _data; TArray _data;
protected: protected:
const TRigaPS& rigaPS(int i) const { return (const TRigaPS&)_data[i]; } const TRigaPS& rigaPS(int i) const { return (const TRigaPS&)_data[i]; }
public: public:
const TRigaPS& operator[](int i) const { return rigaPS(i); } const TRigaPS& operator[](int i) const { return rigaPS(i); }
int fill(const long codditta,TLocalisamfile& ps); int fill(const long codditta,TLocalisamfile& ps);
void destroy() { _data.destroy(); } void destroy() { _data.destroy(); }
int items() const { return _data.items(); } int items() const { return _data.items(); }
TRighePS() {} TRighePS() {}
virtual ~TRighePS() {} virtual ~TRighePS() {}
}; };
class TBase4 : public TDicForm class TBase4 : public TDicForm
{ {
private: private:
long _codditta; long _codditta;
bool _bAggN,_bAggP,_bAggR,_bAggQ,_bAggS,_bAggT; bool _bAggN,_bAggP,_bAggR,_bAggQ,_bAggS,_bAggT;
protected: protected:
int _IdFirma; int _IdFirma;
TRigheNR _righeNR; // array dei record N e R TRigheNR _righeNR; // array dei record N e R
TRigheQT _righeQT; TRigheQT _righeQT;
TRighePS _righePS; TRighePS _righePS;
void stampa_righe_vuote(TPrinter& pr,const int righe); void stampa_righe_vuote(TPrinter& pr,const int righe);
void fill_riga_QT(TPrint_section& sec,const int num); void fill_riga_QT(TPrint_section& sec,const int num);
void fill_riga_PS(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 fill_riga_NR(TPrint_section& sec,const int num, const int side);
void stampa_testata(TPrinter& pr); void stampa_testata(TPrinter& pr);
void stampa_fine(TPrinter& pr); void stampa_fine(TPrinter& pr);
void stampa_N(TPrinter& pr); void stampa_N(TPrinter& pr);
void stampa_P(TPrinter& pr); void stampa_P(TPrinter& pr);
void stampa_Q(TPrinter& pr); void stampa_Q(TPrinter& pr);
void stampa_R(TPrinter& pr); void stampa_R(TPrinter& pr);
void stampa_S(TPrinter& pr); void stampa_S(TPrinter& pr);
void stampa_T(TPrinter& pr); void stampa_T(TPrinter& pr);
virtual int dic_form_len() const { return BASE_FORMLEN; } virtual int dic_form_len() const { return BASE_FORMLEN; }
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); } virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void set_body(TPrinter& pr, const char tipo) {} virtual void set_body(TPrinter& pr, const char tipo) {}
virtual int prima_riga(PaginaQuadro p) const { return 4;} virtual int prima_riga(PaginaQuadro p) const { return 4;}
int calcola_firma(); int calcola_firma();
public: public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis); virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TBase4(const char* sNomeForm, const char* quadro) : _IdFirma(824), TDicForm(sNomeForm, quadro) {} TBase4(const char* sNomeForm, const char* quadro) : _IdFirma(824), TDicForm(sNomeForm, quadro) {}
virtual ~TBase4() {} virtual ~TBase4() {}
}; };
const int _FIELD_L = 740; const int _FIELD_L = 740;
class TStampaBase : public TStampaQuadro class TStampaBase : public TStampaQuadro
{ {
private: private:
TBase1* _fBase1; TBase1* _fBase1;
TBase2* _fBase2; TBase2* _fBase2;
TBase3* _fBase3; TBase3* _fBase3;
TBase4* _fBase4; TBase4* _fBase4;
TRelation* _rel; TRelation* _rel;
protected: protected:
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
virtual bool conta_tipi_per() const { return FALSE; } virtual bool conta_tipi_per() const { return FALSE; }
virtual TDicForm* get_form() const { return _fBase1; } virtual TDicForm* get_form() const { return _fBase1; }
virtual TCursor* get_cursor() const { return NULL; } virtual TCursor* get_cursor() const { return NULL; }
virtual bool print_quadro(const int OffsetDitta, const bool modulaser); virtual bool print_quadro(const int OffsetDitta, const bool modulaser);
public: public:
TStampaBase(char livel) : TStampaQuadro("Base", livel) { } TStampaBase(char livel) : TStampaQuadro("Base", livel) { }
}; };
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// //
// Quadro L aggiuntivo // Quadro L aggiuntivo
// //
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
class TQuadroL : public TDicForm class TQuadroL : public TDicForm
{ {
private: private:
long _codditta; long _codditta;
real _rRitEff, _rRitVer; real _rRitEff, _rRitVer;
protected: protected:
void stampa_testata(TPrinter& pr); void stampa_testata(TPrinter& pr);
void stampa_totali_L(TPrinter& pr); void stampa_totali_L(TPrinter& pr);
bool stampa_L(TPrinter& pr,const long lStartRec,const int iRecL); bool stampa_L(TPrinter& pr,const long lStartRec,const int iRecL);
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); } virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
virtual void set_body(TPrinter& pr, const char tipo) {} virtual void set_body(TPrinter& pr, const char tipo) {}
virtual int prima_riga(PaginaQuadro p) const; virtual int prima_riga(PaginaQuadro p) const;
virtual long filtra(const long codditta); virtual long filtra(const long codditta);
void CalcolaTotalePrecedenti(TCursor* cur, const int _START_AGG_L); void CalcolaTotalePrecedenti(TCursor* cur, const int _START_AGG_L);
public: public:
virtual bool print(const long codditta, const long NumFis, const long NumNoFis); 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) {} TQuadroL(const char* sNomeForm, const char* quadro) : _rRitEff(ZERO),_rRitVer(ZERO),TDicForm(sNomeForm, quadro) {}
virtual ~TQuadroL() {} virtual ~TQuadroL() {}
}; };
class TStampaQuadroAggL : public TStampaQuadro class TStampaQuadroAggL : public TStampaQuadro
{ {
TQuadroL* _form; TQuadroL* _form;
TCursor* _cur; TCursor* _cur;
protected: protected:
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
virtual TDicForm* get_form() const { return _form; } virtual TDicForm* get_form() const { return _form; }
virtual TCursor* get_cursor() const { return _cur; } virtual TCursor* get_cursor() const { return _cur; }
virtual bool conta_tipi_per() const { return FALSE; } virtual bool conta_tipi_per() const { return FALSE; }
public: public:
TStampaQuadroAggL(const char* quadro, char liv):TStampaQuadro(quadro, liv) {} TStampaQuadroAggL(const char* quadro, char liv):TStampaQuadro(quadro, liv) {}
virtual ~TStampaQuadroAggL() { } virtual ~TStampaQuadroAggL() { }
}; };
class TQuadroN : public TBase4 class TQuadroN : public TBase4
{ {
long _codditta; long _codditta;
public: public:
void stampa_fine(TPrinter& pr); void stampa_fine(TPrinter& pr);
void stampa_N(TPrinter& pr); void stampa_N(TPrinter& pr);
void stampa_P(TPrinter& pr); void stampa_P(TPrinter& pr);
void stampa_Q(TPrinter& pr); void stampa_Q(TPrinter& pr);
void stampa_R(TPrinter& pr); void stampa_R(TPrinter& pr);
void stampa_S(TPrinter& pr); void stampa_S(TPrinter& pr);
void stampa_T(TPrinter& pr); void stampa_T(TPrinter& pr);
void stampa_testata(TPrinter& pr); void stampa_testata(TPrinter& pr);
virtual int prima_riga(PaginaQuadro p) const; virtual int prima_riga(PaginaQuadro p) const;
virtual bool print(const long codditta, const long NumFis, const long NumNoFis); virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
TQuadroN(const char* sNomeForm, const char* quadro) : TBase4(sNomeForm, quadro) { _IdFirma=2; } TQuadroN(const char* sNomeForm, const char* quadro) : TBase4(sNomeForm, quadro) { _IdFirma=2; }
virtual ~TQuadroN() {} virtual ~TQuadroN() {}
}; };
class TStampaQuadroAggN : public TStampaQuadro class TStampaQuadroAggN : public TStampaQuadro
{ {
TQuadroN* _form; TQuadroN* _form;
TCursor* _cur; TCursor* _cur;
protected: protected:
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
virtual TDicForm* get_form() const { return _form; } virtual TDicForm* get_form() const { return _form; }
virtual TCursor* get_cursor() const { return _cur; } virtual TCursor* get_cursor() const { return _cur; }
virtual bool conta_tipi_per() const { return FALSE; } virtual bool conta_tipi_per() const { return FALSE; }
public: public:
TStampaQuadroAggN(const char* quadro, char liv):TStampaQuadro(quadro, liv) {} TStampaQuadroAggN(const char* quadro, char liv):TStampaQuadro(quadro, liv) {}
virtual ~TStampaQuadroAggN() { } virtual ~TStampaQuadroAggN() { }
}; };
#endif #endif

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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