Modifica al file.frm del quadro D: ho tolto il campo flg I.C.

git-svn-id: svn://10.65.10.50/trunk@3201 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
ale 1996-07-18 09:19:40 +00:00
parent 46e79cfdfd
commit d4c7ef3b76
4 changed files with 2158 additions and 2163 deletions

View File

@ -1,419 +1,412 @@
USE 62 USE 62
JOIN %CA7 TO 62 ALIAS 14 INTO CODTAB=CODCAUS JOIN %CA7 TO 62 ALIAS 14 INTO CODTAB=CODCAUS
JOIN 9 INTO CODDITTA=CODDITTA JOIN 9 INTO CODDITTA=CODDITTA
JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR
JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC
JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) 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 216@ ALIAS 313 INTO COM=COMNASC JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC
JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES) JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES)
JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES
END END
DESCRIPTION DESCRIPTION
BEGIN BEGIN
62->* "Quadro D 770" 62->* "Quadro D 770"
9->* "Ditte" 9->* "Ditte"
6->* "Anagrafica persone fisiche e giuridiche" 6->* "Anagrafica persone fisiche e giuridiche"
8->* "Anagrafica persone fisiche" 8->* "Anagrafica persone fisiche"
113@->* "Comuni" 113@->* "Comuni"
213@->* "Comuni" 213@->* "Comuni"
216@->* "Anagrafica persone fisiche e giuridiche" 216@->* "Anagrafica persone fisiche e giuridiche"
218@->* "Anagrafica persone giuridiche" 218@->* "Anagrafica persone giuridiche"
313@->* "Comuni" 313@->* "Comuni"
413@->* "Comuni" 413@->* "Comuni"
END END
GENERAL GENERAL
BEGIN BEGIN
OFFSET 0 0 OFFSET 0 0
FONT "Courier 17cpi" FONT "Courier 17cpi"
SIZE 10 SIZE 10
CA "X" CA "X"
IN 3 2 IN 3 2
FI 131 FI 131
END END
SECTION HEADER FIRST 28 SECTION HEADER FIRST 28
STRINGA 1 STRINGA 1
BEGIN BEGIN
KEY "CODICE FISCALE" KEY "CODICE FISCALE"
PROMPT 4 9 "" PROMPT 4 9 ""
FIELD 116@->COFI FIELD 116@->COFI
END END
STRINGA 2 STRINGA 2
BEGIN BEGIN
KEY "RAGIONE SOCIALE" KEY "RAGIONE SOCIALE"
PROMPT 39 9 "" PROMPT 39 9 ""
FIELD 116@->RAGSOC FIELD 116@->RAGSOC
GROUP 2 GROUP 2
END END
STRINGA 3 STRINGA 3
BEGIN BEGIN
KEY "COGNOME" KEY "COGNOME"
PROMPT 39 9 "" PROMPT 39 9 ""
FIELD 116@->RAGSOC[1,30] FIELD 116@->RAGSOC[1,30]
GROUP 1 GROUP 1
END END
STRINGA 4 STRINGA 4
BEGIN BEGIN
KEY "NOME" KEY "NOME"
PROMPT 17 11 "" PROMPT 17 11 ""
FIELD 116@->RAGSOC[31,50] FIELD 116@->RAGSOC[31,50]
GROUP 1 GROUP 1
END END
STRINGA 5 STRINGA 5
BEGIN BEGIN
KEY "SESSO" KEY "SESSO"
PROMPT 58 11 "" PROMPT 58 11 ""
FIELD 118@->SESSO FIELD 118@->SESSO
GROUP 1 GROUP 1
END END
STRINGA 6 STRINGA 6
BEGIN BEGIN
KEY "DATA DI NASCITA" KEY "DATA DI NASCITA"
PROMPT 66 11 "" PROMPT 66 11 ""
FIELD 118@->DATANASC FIELD 118@->DATANASC
GROUP 1 GROUP 1
END END
STRINGA 7 STRINGA 7
BEGIN BEGIN
KEY "COMUNE DI NASCITA" KEY "COMUNE DI NASCITA"
PROMPT 84 11 "" PROMPT 84 11 ""
FIELD 113@->DENCOM FIELD 113@->DENCOM
GROUP 1 GROUP 1
END END
STRINGA 8 STRINGA 8
BEGIN BEGIN
KEY "PROV. DI NASCITA" KEY "PROV. DI NASCITA"
PROMPT 126 11 "" PROMPT 126 11 ""
FIELD 113@->PROVCOM FIELD 113@->PROVCOM
GROUP 1 GROUP 1
END END
LISTA 9 LISTA 9
BEGIN BEGIN
KEY "Tipo anagrafica" KEY "Tipo anagrafica"
FIELD 116@->TIPOA FIELD 116@->TIPOA
ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@
ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@
END END
STRINGA 10 STRINGA 10
BEGIN BEGIN
KEY "COMUNE DI RES.FISCALE" KEY "COMUNE DI RES.FISCALE"
PROMPT 17 13 "" 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 13 "" 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 66 13 "" PROMPT 66 13 ""
FIELD 116@->INDRF FIELD 116@->INDRF
END END
STRINGA 13 STRINGA 13
BEGIN BEGIN
KEY "NUM. CIVICO di RES." KEY "NUM. CIVICO di RES."
PROMPT 102 13 "" PROMPT 102 13 ""
FIELD 116@->CIVRF FIELD 116@->CIVRF
END END
STRINGA 14 STRINGA 14
BEGIN BEGIN
KEY "CAP" KEY "CAP"
PROMPT 120 13 "" PROMPT 120 13 ""
FIELD 116@->CAPRF FIELD 116@->CAPRF
END END
STRINGA 15 STRINGA 15
BEGIN BEGIN
KEY "CODICE FISCALE DICHIARANTE" KEY "CODICE FISCALE DICHIARANTE"
PROMPT 118 16 "" PROMPT 118 16 ""
END END
NUMBER 16 NUMBER 16
BEGIN BEGIN
KEY "NUM. FOGLIO" KEY "NUM. FOGLIO"
PROMPT 123 20 "" PROMPT 123 20 ""
END END
END END
SECTION BODY ODD 8 SECTION BODY ODD 8
LISTA 100 LISTA 100
BEGIN BEGIN
KEY "Tipo anagrafica" KEY "Tipo anagrafica"
FIELD 216@->TIPOA FIELD 216@->TIPOA
ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@
ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@
END END
STRINGA 1 STRINGA 1
BEGIN BEGIN
KEY "COD.FIS" KEY "COD.FIS"
PROMPT 10 2 "" PROMPT 10 2 ""
FIELD 216@->COFI FIELD 216@->COFI
END END
STRING 2 STRING 2
BEGIN BEGIN
KEY "COGNOME" KEY "COGNOME"
PROMPT 42 2 "" PROMPT 42 2 ""
FIELD 216@->RAGSOC[1,30] FIELD 216@->RAGSOC[1,30]
GROUP 1 GROUP 1
END END
STRING 3 STRING 3
BEGIN BEGIN
KEY "NOME" KEY "NOME"
PROMPT 81 2 "" PROMPT 81 2 ""
FIELD 216@->RAGSOC[31,50] FIELD 216@->RAGSOC[31,50]
GROUP 1 GROUP 1
END END
STRING 102 STRING 102
BEGIN BEGIN
KEY "RAGSOC GIURIDICHE" KEY "RAGSOC GIURIDICHE"
PROMPT 54 2 "" PROMPT 54 2 ""
FIELD 216@->RAGSOC FIELD 216@->RAGSOC
GROUP 2 GROUP 2
END END
STRING 4 STRING 4
BEGIN BEGIN
KEY "DATA NASCITA" KEY "DATA NASCITA"
PROMPT 114 2 "" PROMPT 114 2 ""
FIELD 218@->DATANASC FIELD 218@->DATANASC
END END
STRING 5 STRING 5
BEGIN BEGIN
KEY "SESSO" KEY "SESSO"
PROMPT 129 2 "" PROMPT 129 2 ""
FIELD 218@->SESSO FIELD 218@->SESSO
END END
STRING 6 STRING 6
BEGIN BEGIN
KEY "COMUNE DI NASCITA" KEY "COMUNE DI NASCITA"
PROMPT 10 4 "" PROMPT 10 4 ""
FIELD 313@->DENCOM FIELD 313@->DENCOM
GROUP 1 GROUP 1
END END
STRING 101 STRING 101
BEGIN BEGIN
KEY "COMUNE DI RESIDENZA GIURIDICHE" KEY "COMUNE DI RESIDENZA GIURIDICHE"
PROMPT 10 4 "" PROMPT 10 4 ""
FIELD 413@->DENCOM FIELD 413@->DENCOM
GROUP 2 GROUP 2
END END
STRING 7 STRING 7
BEGIN BEGIN
KEY "PROV DI NASCITA" KEY "PROV DI NASCITA"
PROMPT 47 4 "" PROMPT 47 4 ""
FIELD 313@->PROVCOM FIELD 313@->PROVCOM
GROUP 1 GROUP 1
END END
STRING 8 STRING 8
BEGIN BEGIN
KEY "COMUNE DI RESIDENZA" KEY "COMUNE DI RESIDENZA"
PROMPT 53 4 "" PROMPT 53 4 ""
FIELD 413@->DENCOM FIELD 413@->DENCOM
GROUP 1 GROUP 1
END END
STRING 9 STRING 9
BEGIN BEGIN
KEY "PROV. RESIDENZA" KEY "PROV. RESIDENZA"
PROMPT 88 4 "" PROMPT 88 4 ""
FIELD 413@->PROVCOM FIELD 413@->PROVCOM
END END
STRING 106 STRING 106
BEGIN BEGIN
KEY "PROV. RESIDENZA GIURIDICHE" KEY "PROV. RESIDENZA GIURIDICHE"
PROMPT 61 4 "" PROMPT 61 4 ""
FIELD 413@->PROVCOM FIELD 413@->PROVCOM
GROUP 2 GROUP 2
END END
STRING 10 STRING 10
BEGIN BEGIN
KEY "VIA RES." KEY "VIA RES."
PROMPT 94 4 "" PROMPT 94 4 ""
FIELD 216@->INDRES[1,18] FIELD 216@->INDRES[1,18]
FLAGS "H" FLAGS "H"
MESSAGE COPY,12|COPY,107 MESSAGE COPY,12|COPY,107
END END
STRING 11 STRING 11
BEGIN BEGIN
KEY "NUM.CIV" KEY "NUM.CIV"
PROMPT 93 4 "" PROMPT 93 4 ""
FLAGS "H" FLAGS "H"
FIELD 216@->CIVRES FIELD 216@->CIVRES
MESSAGE APPEND,12|APPEND,107 MESSAGE APPEND,12|APPEND,107
END END
STRING 12 STRING 12
BEGIN BEGIN
KEY "VIA RES. + numcivres" KEY "VIA RES. + numcivres"
PROMPT 95 4 "" PROMPT 95 4 ""
GROUP 1 GROUP 1
END END
STRING 107 STRING 107
BEGIN BEGIN
KEY "VIA RES GIURIDICHE" KEY "VIA RES GIURIDICHE"
PROMPT 69 4 "" PROMPT 69 4 ""
GROUP 2 GROUP 2
END END
STRING 13 STRING 14
BEGIN BEGIN
KEY "FLAG I.C." KEY "FLAG DI NON RESIDENTE"
PROMPT 129 4 "" PROMPT 11 6 ""
FIELD 14@->B1 FIELD 216@->SOGGNRES
END END
STRING 14 STRING 15
BEGIN BEGIN
KEY "FLAG DI NON RESIDENTE" KEY "STATO ESTERO DI RES."
PROMPT 11 6 "" PROMPT 16 6 ""
FIELD 216@->SOGGNRES FIELD 24@->S0
END END
STRING 15 STRING 16
BEGIN BEGIN
KEY "STATO ESTERO DI RES." KEY "CODICE STATO ESTERO DI RES."
PROMPT 16 6 "" PROMPT 75 6 ""
FIELD 24@->S0 FIELD 216@->STATORES
END END
STRING 16 STRING 17
BEGIN BEGIN
KEY "CODICE STATO ESTERO DI RES." KEY "CODICE FISCALE ESTERO"
PROMPT 75 6 "" PROMPT 89 6 ""
FIELD 216@->STATORES FIELD 216@->COFIEST
END END
STRING 17 STRING 18
BEGIN BEGIN
KEY "CODICE FISCALE ESTERO" KEY "DESCR. CAUSALE"
PROMPT 89 6 "" PROMPT 10 8 ""
FIELD 216@->COFIEST FIELD 14@->S0[1,20]
END END
STRING 18 STRING 19
BEGIN BEGIN
KEY "DESCR. CAUSALE" KEY "TOTALE"
PROMPT 10 8 "" PROMPT 36 8 ""
FIELD 14@->S0[1,20] FIELD 62->TOTALE
END PICTURE "#########^^^"
END
STRING 19
BEGIN STRING 20
KEY "TOTALE" BEGIN
PROMPT 36 8 "" KEY "SOMME NON SOGGETTE A RITENUTA"
FIELD 62->TOTALE PROMPT 55 8 ""
PICTURE "#########^^^" FIELD 62->SOMME
END PICTURE "#########^^^"
END
STRING 20
BEGIN STRING 21
KEY "SOMME NON SOGGETTE A RITENUTA" BEGIN
PROMPT 55 8 "" KEY "IMPONIBILE"
FIELD 62->SOMME PROMPT 75 8 ""
PICTURE "#########^^^" FIELD 62->IMPONIBILE
END PICTURE "#########^^^"
END
STRING 21
BEGIN STRING 22
KEY "IMPONIBILE" BEGIN
PROMPT 75 8 "" KEY "ALIQUOTA"
FIELD 62->IMPONIBILE PROMPT 88 8 ""
PICTURE "#########^^^" FIELD 62->PERC
END PICTURE "###@@"
END
STRING 22
BEGIN STRING 23
KEY "ALIQUOTA" BEGIN
PROMPT 88 8 "" KEY "IMPORTO"
FIELD 62->PERC PROMPT 100 8 ""
PICTURE "###@@" FIELD 62->IMPORTO
END PICTURE "#########^^^"
END
STRING 23
BEGIN STRING 24
KEY "IMPORTO" BEGIN
PROMPT 100 8 "" KEY "NETTO"
FIELD 62->IMPORTO PROMPT 119 8 ""
PICTURE "#########^^^" FIELD 62->NETTO
END PICTURE "#########^^^"
END
STRING 24
BEGIN END
KEY "NETTO"
PROMPT 119 8 "" SECTION BODY EVEN 2
FIELD 62->NETTO
PICTURE "#########^^^" NUMBER 1
END BEGIN
KEY "TOTALE TOTALE"
END PROMPT 36 1 ""
END
SECTION BODY EVEN 2
NUMBER 2
NUMBER 1 BEGIN
BEGIN KEY "TOTALE SOMME NON SOGGETTE"
KEY "TOTALE TOTALE" PROMPT 55 1 ""
PROMPT 36 1 "" END
END
NUMBER 3
NUMBER 2 BEGIN
BEGIN KEY "TOTALE IMPONIBILE"
KEY "TOTALE SOMME NON SOGGETTE" PROMPT 75 1 ""
PROMPT 55 1 "" END
END
NUMBER 4
NUMBER 3 BEGIN
BEGIN KEY "TOTALE IMPORTO"
KEY "TOTALE IMPONIBILE" PROMPT 101 1 ""
PROMPT 75 1 "" END
END
NUMBER 5
NUMBER 4 BEGIN
BEGIN KEY "TOTALE NETTO"
KEY "TOTALE IMPORTO" PROMPT 120 1 ""
PROMPT 101 1 "" END
END
END
NUMBER 5
BEGIN
KEY "TOTALE NETTO"
PROMPT 120 1 ""
END
END

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,370 +1,370 @@
// quadn_t.cpp // quadn_t.cpp
#include <relapp.h> #include <relapp.h>
#include <urldefid.h> #include <urldefid.h>
#include <tabutil.h> #include <tabutil.h>
#include <config.h> #include <config.h>
#include "774200.h" #include "774200.h"
#include "77lib.h" #include "77lib.h"
#include "quadron.h" #include "quadron.h"
#include "77qn.h" #include "77qn.h"
#include "77qq.h" #include "77qq.h"
#include "77qp.h" #include "77qp.h"
#define CODDITTA77 181 #define CODDITTA77 181
#define ANNODIC77 182 #define ANNODIC77 182
class TQuadriNT_application : public TRelation_application class TQuadriNT_application : public TRelation_application
{ {
static bool codditta77_handler (TMask_field& m, KEY k); static bool codditta77_handler (TMask_field& m, KEY k);
static bool nprog_handler (TMask_field& m, KEY k); static bool nprog_handler (TMask_field& m, KEY k);
static bool anno_handler (TMask_field& m, KEY k); static bool anno_handler (TMask_field& m, KEY k);
static bool mese_handler (TMask_field& f, KEY k); static bool mese_handler (TMask_field& f, KEY k);
static bool codreg_handler (TMask_field& f, KEY k); static bool codreg_handler (TMask_field& f, KEY k);
static bool codtrib_handler (TMask_field& f, KEY k); static bool codtrib_handler (TMask_field& f, KEY k);
static bool tipo (TMask_field& f , KEY k); static bool tipo (TMask_field& f , KEY k);
static bool luogo (TMask_field& f , KEY k); static bool luogo (TMask_field& f , KEY k);
const char* _maskname; const char* _maskname;
int _num; int _num;
int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp
TString16 _quadro; TString16 _quadro;
TRiporti _rip; TRiporti _rip;
TRelation* _rel; TRelation* _rel;
TMask* _msk; TMask* _msk;
bool _registra; bool _registra;
int _anno_dic; int _anno_dic;
bool _MaskConAnnoDic, _MaskConCodditta; bool _MaskConAnnoDic, _MaskConCodditta;
bool MaskConAnnoDic() const; bool MaskConAnnoDic() const;
bool MaskConCodditta() const { return _MaskConCodditta; } bool MaskConCodditta() const { return _MaskConCodditta; }
void LeggiMask(); void LeggiMask();
bool EsisteUnRec(); bool EsisteUnRec();
bool QuadroNoR() const { return _num == LF_QUAN || _num == LF_QUAR; } bool QuadroNoR() const { return _num == LF_QUAN || _num == LF_QUAR; }
bool QuadroPoS() const { return _num == LF_QUAP || _num == LF_QUAS; } bool QuadroPoS() const { return _num == LF_QUAP || _num == LF_QUAS; }
bool QuadroQoT() const { return _num == LF_QUAQ || _num == LF_QUAT; } bool QuadroQoT() const { return _num == LF_QUAQ || _num == LF_QUAT; }
bool CheckImporti(const TMask& m); bool CheckImporti(const TMask& m);
long _codditta; long _codditta;
protected: protected:
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
virtual int rewrite(const TMask& m); virtual int rewrite(const TMask& m);
virtual int write (const TMask& m); virtual int write (const TMask& m);
virtual bool remove(); virtual bool remove();
virtual void on_config_change(); virtual void on_config_change();
virtual TMask* get_mask(int) { return _msk; } virtual TMask* get_mask(int) { return _msk; }
virtual bool changing_mask(int) { return FALSE;} virtual bool changing_mask(int) { return FALSE;}
virtual TRelation* get_relation() const { return _rel; } virtual TRelation* get_relation() const { return _rel; }
virtual void init_mask(TMask&); virtual void init_mask(TMask&);
virtual void init_query_mode(TMask&); virtual void init_query_mode(TMask&);
virtual void init_insert_mode(TMask&); virtual void init_insert_mode(TMask&);
virtual void init_query_insert_mode(TMask&); virtual void init_query_insert_mode(TMask&);
public: public:
TQuadriNT_application(const char* name, const int num, const char* quadro); TQuadriNT_application(const char* name, const int num, const char* quadro);
}; };
TQuadriNT_application::TQuadriNT_application(const char* name, const int num, const char* quadro) TQuadriNT_application::TQuadriNT_application(const char* name, const int num, const char* quadro)
: _maskname(name), _num(num), : _maskname(name), _num(num),
_MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE), _MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE),
_msk(NULL), _rel(NULL), _quadro(quadro) _msk(NULL), _rel(NULL), _quadro(quadro)
{ {
switch (_num) switch (_num)
{ {
case LF_QUAN: case LF_QUAN:
_pos_quadro = N; _pos_quadro = N;
break; break;
case LF_QUAR: case LF_QUAR:
_pos_quadro = R; _pos_quadro = R;
break; break;
case LF_QUAP: case LF_QUAP:
_pos_quadro = P; _pos_quadro = P;
break; break;
case LF_QUAQ: case LF_QUAQ:
_pos_quadro = Q; _pos_quadro = Q;
break; break;
case LF_QUAS: case LF_QUAS:
_pos_quadro = S; _pos_quadro = S;
break; break;
case LF_QUAT: case LF_QUAT:
_pos_quadro = T; _pos_quadro = T;
break; break;
} }
} }
TQuadriNT_application& app() { return (TQuadriNT_application&)main_app(); } TQuadriNT_application& app() { return (TQuadriNT_application&)main_app(); }
void TQuadriNT_application::LeggiMask() void TQuadriNT_application::LeggiMask()
{ {
_MaskConAnnoDic = _msk->id2pos(ANNODIC77) > 0; _MaskConAnnoDic = _msk->id2pos(ANNODIC77) > 0;
_MaskConCodditta = _msk->id2pos(CODDITTA77) > 0; _MaskConCodditta = _msk->id2pos(CODDITTA77) > 0;
} }
bool TQuadriNT_application::MaskConAnnoDic() const bool TQuadriNT_application::MaskConAnnoDic() const
{ {
return _MaskConAnnoDic; return _MaskConAnnoDic;
} }
void TQuadriNT_application::on_config_change() void TQuadriNT_application::on_config_change()
{ {
TConfig conf(CONFIG_STUDIO); TConfig conf(CONFIG_STUDIO);
_anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); _anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year());
} }
bool TQuadriNT_application::user_create() bool TQuadriNT_application::user_create()
{ {
_msk = new TMask(_maskname); _msk = new TMask(_maskname);
_rel = new TRelation(_num); _rel = new TRelation(_num);
_codditta = get_firm_770(); _codditta = get_firm_770();
_msk->set_handler(CODDITTA77, codditta77_handler); _msk->set_handler(CODDITTA77, codditta77_handler);
_msk->set_handler(QNF_NPROG, nprog_handler); _msk->set_handler(QNF_NPROG, nprog_handler);
if (QuadroNoR()) if (QuadroNoR())
{ {
_msk->set_handler(QNF_ANNORIF, anno_handler); _msk->set_handler(QNF_ANNORIF, anno_handler);
_msk->set_handler(QNF_MESERIF, mese_handler); _msk->set_handler(QNF_MESERIF, mese_handler);
} }
if (QuadroQoT()) if (QuadroQoT())
{ {
_msk->set_handler(QNF_ANNORIF, anno_handler); _msk->set_handler(QNF_ANNORIF, anno_handler);
_msk->set_handler(QNF_MESERIF, mese_handler); _msk->set_handler(QNF_MESERIF, mese_handler);
_msk->set_handler(QQF_CODREG, codreg_handler); _msk->set_handler(QQF_CODREG, codreg_handler);
} }
if (QuadroPoS()) if (QuadroPoS())
_msk->set_handler(QPF_CODTRIB, codtrib_handler); _msk->set_handler(QPF_CODTRIB, codtrib_handler);
_registra = FALSE; _registra = FALSE;
set_search_field(QNF_NPROG); set_search_field(QNF_NPROG);
return TRUE; return TRUE;
} }
bool TQuadriNT_application::EsisteUnRec() bool TQuadriNT_application::EsisteUnRec()
{ {
TLocalisamfile qn(_num); TLocalisamfile qn(_num);
qn.zero(); qn.zero();
qn.put(QN_CODDITTA, (long)app()._codditta); qn.put(QN_CODDITTA, (long)app()._codditta);
TRectype dep(qn.curr()); TRectype dep(qn.curr());
qn.read(_isgteq); qn.read(_isgteq);
if (qn.curr() > dep || qn.eof()) if (qn.curr() > dep || qn.eof())
return FALSE; return FALSE;
else else
return TRUE; return TRUE;
} }
bool TQuadriNT_application::user_destroy() bool TQuadriNT_application::user_destroy()
{ {
if (_quadro != "") if (_quadro != "")
if (_registra) if (_registra)
_rip.set_compilato(_codditta, _pos_quadro, EsisteUnRec()); _rip.set_compilato(_codditta, _pos_quadro, EsisteUnRec());
delete _msk; delete _msk;
delete _rel; delete _rel;
return TRUE; return TRUE;
} }
// Controlla che ci siano o l'imposta o i compensi // Controlla che ci siano o l'imposta o i compensi
// NB che siano uguali QNF_IMPOSTA anche nei corrispondenti campi dei // NB che siano uguali QNF_IMPOSTA anche nei corrispondenti campi dei
// quadri Q, R e T (107 e 106) // quadri Q, R e T (107 e 106)
bool TQuadriNT_application::CheckImporti(const TMask& m) bool TQuadriNT_application::CheckImporti(const TMask& m)
{ {
TString impost(m.get(QNF_IMPOSTA)); TString impost(m.get(QNF_IMPOSTA));
TString compen(m.get(QNF_COMPENSI)); TString compen(m.get(QNF_COMPENSI));
return impost.not_empty() || compen.not_empty(); return impost.not_empty() || compen.not_empty();
} }
int TQuadriNT_application::rewrite(const TMask& m) int TQuadriNT_application::rewrite(const TMask& m)
{ {
m.autosave(_rel); m.autosave(*_rel);
const int err = _rel->rewrite(); const int err = _rel->rewrite();
_registra = err == NOERR; _registra = err == NOERR;
return err; return err;
} }
int TQuadriNT_application::write(const TMask& m) int TQuadriNT_application::write(const TMask& m)
{ {
m.autosave(_rel); m.autosave(*_rel);
const int err = _rel->write(); const int err = _rel->write();
_registra = err == NOERR; _registra = err == NOERR;
return err; return err;
} }
bool TQuadriNT_application::remove() bool TQuadriNT_application::remove()
{ {
_registra = TRUE; _registra = TRUE;
return TRelation_application::remove(); return TRelation_application::remove();
} }
void TQuadriNT_application::init_mask(TMask& m) void TQuadriNT_application::init_mask(TMask& m)
{ {
m.set(ANNODIC77, _anno_dic); m.set(ANNODIC77, _anno_dic);
} }
void TQuadriNT_application::init_query_mode(TMask& m) void TQuadriNT_application::init_query_mode(TMask& m)
{ {
init_mask(m); init_mask(m);
} }
void TQuadriNT_application::init_insert_mode(TMask& m) void TQuadriNT_application::init_insert_mode(TMask& m)
{ {
init_mask(m); init_mask(m);
} }
void TQuadriNT_application::init_query_insert_mode(TMask& m) void TQuadriNT_application::init_query_insert_mode(TMask& m)
{ {
init_mask(m); init_mask(m);
} }
bool TQuadriNT_application::codditta77_handler(TMask_field& f, KEY k) bool TQuadriNT_application::codditta77_handler(TMask_field& f, KEY k)
{ {
TString16 codditta; codditta << app()._codditta; TString16 codditta; codditta << app()._codditta;
TMask& m = f.mask(); TMask& m = f.mask();
if (codditta != "0") if (codditta != "0")
{ {
m.set(CODDITTA77, codditta); m.set(CODDITTA77, codditta);
m.field(CODDITTA77).check(); m.field(CODDITTA77).check();
} }
return TRUE; return TRUE;
} }
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// 2 modi : // 2 modi :
// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml] // RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml]
// oppure // oppure
// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu] // 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu]
// QUADRO N: // QUADRO N:
// 773,-2,77qn,72,"Quadro N","N" // 773,-2,77qn,72,"Quadro N","N"
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
int quadriN_T(int argc, char* argv[]) int quadriN_T(int argc, char* argv[])
{ {
TFilename mask; TFilename mask;
int num = 0; int num = 0;
if (argc > 1) if (argc > 1)
mask = argv[2]; mask = argv[2];
num = atoi(argv[3]); num = atoi(argv[3]);
const char* title = argv[4]; const char* title = argv[4];
const char* quadro = argv[5]; const char* quadro = argv[5];
TQuadriNT_application a(mask, num, quadro); TQuadriNT_application a(mask, num, quadro);
a.run(argc, argv, title ? title : "Test Relation Application"); a.run(argc, argv, title ? title : "Test Relation Application");
return 0; return 0;
} }
bool TQuadriNT_application::anno_handler(TMask_field& f, KEY k) bool TQuadriNT_application::anno_handler(TMask_field& f, KEY k)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
if (k == K_ENTER && (modifica(m) || inserimento(m)) ) if (k == K_ENTER && (modifica(m) || inserimento(m)) )
{ {
TString dep(f.get()); TString dep(f.get());
if (dep.empty()) if (dep.empty())
return f.warning_box("Manca l'anno"); return f.warning_box("Manca l'anno");
else else
if (!app().CheckImporti(m)) if (!app().CheckImporti(m))
return f.warning_box("Manca almeno un importo"); return f.warning_box("Manca almeno un importo");
} }
return TRUE; return TRUE;
} }
bool TQuadriNT_application::mese_handler(TMask_field& f, KEY k) bool TQuadriNT_application::mese_handler(TMask_field& f, KEY k)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
if (k == K_ENTER && (modifica(m) || inserimento(m)) ) if (k == K_ENTER && (modifica(m) || inserimento(m)) )
{ {
TString dep(f.get()); TString dep(f.get());
if (dep.empty()) if (dep.empty())
return f.warning_box("Manca il mese"); return f.warning_box("Manca il mese");
} }
return TRUE; return TRUE;
} }
// Per i Quadri Q e T // Per i Quadri Q e T
bool TQuadriNT_application::codreg_handler(TMask_field& f, KEY k) bool TQuadriNT_application::codreg_handler(TMask_field& f, KEY k)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
if (k == K_ENTER && (modifica(m) || inserimento(m)) ) if (k == K_ENTER && (modifica(m) || inserimento(m)) )
{ {
TString dep(f.get()); TString dep(f.get());
if (dep.empty()) if (dep.empty())
return f.warning_box("Manca il codice regione"); return f.warning_box("Manca il codice regione");
} }
return TRUE; return TRUE;
} }
// Per i Quadri P e S. Codice tributo REQUIRED // Per i Quadri P e S. Codice tributo REQUIRED
bool TQuadriNT_application::codtrib_handler(TMask_field& f, KEY k) bool TQuadriNT_application::codtrib_handler(TMask_field& f, KEY k)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
if (k == K_ENTER && (modifica(m) || inserimento(m)) ) if (k == K_ENTER && (modifica(m) || inserimento(m)) )
{ {
TString dep(f.get()); TString dep(f.get());
if (dep.empty()) if (dep.empty())
return f.warning_box("Manca il codice tributo"); return f.warning_box("Manca il codice tributo");
} }
return TRUE; return TRUE;
} }
bool TQuadriNT_application::nprog_handler(TMask_field& f, KEY k) bool TQuadriNT_application::nprog_handler(TMask_field& f, KEY k)
{ {
if (k == K_TAB) if (k == K_TAB)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
// Propone il primo numero disponibile quando la maschera e' ancora "off" // Propone il primo numero disponibile quando la maschera e' ancora "off"
if (!m.is_running()) if (!m.is_running())
{ {
long nprog = 0L; long nprog = 0L;
TLocalisamfile qnr(app()._num); TLocalisamfile qnr(app()._num);
qnr.zero(); qnr.zero();
qnr.put(QN_CODDITTA, (long)app()._codditta); qnr.put(QN_CODDITTA, (long)app()._codditta);
TRectype dep(qnr.curr()); TRectype dep(qnr.curr());
for (qnr.read(_isgteq); !qnr.eof(); qnr.next()) for (qnr.read(_isgteq); !qnr.eof(); qnr.next())
{ {
if (qnr.curr() > dep) break; if (qnr.curr() > dep) break;
nprog = qnr.get_long(QN_NPROG); nprog = qnr.get_long(QN_NPROG);
} }
nprog++; nprog++;
TString16 nprog_str; nprog_str << nprog; TString16 nprog_str; nprog_str << nprog;
f.mask().set(QNF_NPROG, nprog_str); f.mask().set(QNF_NPROG, nprog_str);
} }
// Quando la maschera e' running, se c'e' NPROG la chiude // Quando la maschera e' running, se c'e' NPROG la chiude
else else
{ {
TString nprogstr(f.get()); TString nprogstr(f.get());
if (nprogstr.not_empty()) if (nprogstr.not_empty())
m.stop_run(K_AUTO_ENTER); m.stop_run(K_AUTO_ENTER);
} }
} }
return TRUE; return TRUE;
} }
bool TQuadriNT_application::tipo(TMask_field& f , KEY k) bool TQuadriNT_application::tipo(TMask_field& f , KEY k)
{ {
/* /*
if (k == K_SPACE) if (k == K_SPACE)
{ {
char tipo = f.mask().get(F_QLTIPOVERS)[0]; char tipo = f.mask().get(F_QLTIPOVERS)[0];
char luogo = f.mask().get(F_QLLUOVERS)[0]; char luogo = f.mask().get(F_QLLUOVERS)[0];
if (tipo == 'D' && luogo == 'T') if (tipo == 'D' && luogo == 'T')
f.mask().hide(F_QLSERIE); f.mask().hide(F_QLSERIE);
else else
f.mask().show(F_QLSERIE); f.mask().show(F_QLSERIE);
} }
*/ */
return TRUE; return TRUE;
} }
bool TQuadriNT_application::luogo(TMask_field& f , KEY k) bool TQuadriNT_application::luogo(TMask_field& f , KEY k)
{ {
/* /*
if (k == K_SPACE) if (k == K_SPACE)
{ {
char tipo = f.mask().get(F_QLTIPOVERS)[0]; char tipo = f.mask().get(F_QLTIPOVERS)[0];
char luogo = f.mask().get(F_QLLUOVERS)[0]; char luogo = f.mask().get(F_QLLUOVERS)[0];
if (tipo == 'D' && luogo == 'T') if (tipo == 'D' && luogo == 'T')
f.mask().hide(F_QLSERIE); f.mask().hide(F_QLSERIE);
else else
f.mask().show(F_QLSERIE); f.mask().show(F_QLSERIE);
} }
*/ */
return TRUE; return TRUE;
} }