Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Modifiche al pacchetto gestione 770 (ora denominato Gestione Percipienti), in modo da avere diciture corrette per quanto riguarda i programmi di stampa e gestione quadri, ora chiamati RIEPILOGHI. Commentato l'uso dei quadri che non servivano piu', modificati opportunamente i menus e programmi per gestione parametri ed azzeramenti git-svn-id: svn://10.65.10.50/trunk@7030 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a7867e4a1c
commit
ec5cd6f14d
@ -86,7 +86,7 @@ END
|
||||
NUMBER F_CODCONC2 3
|
||||
BEGIN
|
||||
PROMPT 23 5 "Cod.Concessione "
|
||||
FLAGS "RZ"
|
||||
FLAGS "RZH"
|
||||
USE %UCC
|
||||
INPUT CODTAB F_CODCONC2
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -100,7 +100,7 @@ END
|
||||
NUMBER F_CODCONC3 3
|
||||
BEGIN
|
||||
PROMPT 47 5 "Cod.Concessione "
|
||||
FLAGS "RZ"
|
||||
FLAGS "RZH"
|
||||
COPY USE F_CODCONC2
|
||||
INPUT CODTAB F_CODCONC3
|
||||
COPY DISPLAY F_CODCONC2
|
||||
@ -120,27 +120,28 @@ END
|
||||
NUMBER F_CODTES2 3
|
||||
BEGIN
|
||||
PROMPT 23 6 "Cod.Tesoreria "
|
||||
FLAGS "RZ"
|
||||
FLAGS "RZH"
|
||||
FIELD LF_BASEBIS->L0CTES2
|
||||
END
|
||||
|
||||
NUMBER F_CODTES3 3
|
||||
BEGIN
|
||||
PROMPT 47 6 "Cod.Tesoreria "
|
||||
FLAGS "RZ"
|
||||
FLAGS "RZH"
|
||||
FIELD LF_BASEBIS->L0CTES3
|
||||
END
|
||||
|
||||
|
||||
/*
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 0 8 ""
|
||||
END
|
||||
*/
|
||||
|
||||
NUMBER F_CODUI 3
|
||||
BEGIN
|
||||
PROMPT 1 9 "Ufficio imposte "
|
||||
FLAGS "RZD"
|
||||
FLAGS "RZDH"
|
||||
USE %UID
|
||||
JOIN LF_COMUNI TO %UID INTO COM==S6
|
||||
INPUT CODTAB F_CODUI
|
||||
@ -156,48 +157,51 @@ END
|
||||
STRING F_DESCRUI 50
|
||||
BEGIN
|
||||
PROMPT 25 9 ""
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_INDUI 35
|
||||
BEGIN
|
||||
PROMPT 1 10 "Indirizzo "
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_CIVUI 10
|
||||
BEGIN
|
||||
PROMPT 47 10 ""
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_CAPUI 5
|
||||
BEGIN
|
||||
PROMPT 63 10 "C.A.P. "
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_COMUI 50
|
||||
BEGIN
|
||||
PROMPT 1 11 "Comune "
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_PROVUI 5
|
||||
BEGIN
|
||||
PROMPT 63 11 "Prov. "
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
|
||||
/*
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 0 14 ""
|
||||
PROMPT 0 14 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
*/
|
||||
|
||||
NUMBER F_CODCS 3
|
||||
BEGIN
|
||||
PROMPT 1 15 "Centro servizi "
|
||||
FLAGS "RZD"
|
||||
FLAGS "RZDH"
|
||||
USE %UCS
|
||||
JOIN LF_COMUNI TO %UCS INTO COM==S6
|
||||
INPUT CODTAB F_CODCS
|
||||
@ -213,37 +217,37 @@ END
|
||||
STRING F_DESCRCS 50
|
||||
BEGIN
|
||||
PROMPT 25 15 ""
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_INDCS 35
|
||||
BEGIN
|
||||
PROMPT 1 16 "Indirizzo "
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_CIVCS 10
|
||||
BEGIN
|
||||
PROMPT 47 16 ""
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_CAPCS 5
|
||||
BEGIN
|
||||
PROMPT 63 16 "C.A.P. "
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_COMCS 50
|
||||
BEGIN
|
||||
PROMPT 1 17 "Comune "
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
STRING F_PROVCS 5
|
||||
BEGIN
|
||||
PROMPT 63 17 "Prov. "
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
LISTBOX F_TIPOA2BTN 1
|
||||
|
@ -1191,12 +1191,29 @@ int TQuadroC_E2::write_prospetto_e1() const
|
||||
int quadriC_E2(int argc, char* argv[])
|
||||
{
|
||||
TString16 taitol;
|
||||
taitol << "Quadro ";
|
||||
if (strnicmp(argv[2], "DB", 2) == 0)
|
||||
taitol << "D bis";
|
||||
taitol << "Riepilogo ";
|
||||
const char * nome_quadro = argv[2];
|
||||
if (strnicmp(nome_quadro, "C", 1) == 0)
|
||||
taitol << "SC";
|
||||
else
|
||||
taitol << argv[2];
|
||||
TQuadroC_E2 a(argv[2]);
|
||||
if (strnicmp(nome_quadro, "DB", 2) == 0)
|
||||
taitol << "SG";
|
||||
else
|
||||
if (strnicmp(nome_quadro, "D1", 2) == 0)
|
||||
taitol << "SH";
|
||||
else
|
||||
if (strnicmp(nome_quadro, "D", 1) == 0)
|
||||
taitol << "SF";
|
||||
else
|
||||
if (strnicmp(nome_quadro, "E1", 2) == 0)
|
||||
taitol << "SQ";
|
||||
else
|
||||
if (strnicmp(nome_quadro, "E", 1) == 0)
|
||||
taitol << "SP";
|
||||
else
|
||||
taitol << nome_quadro;
|
||||
|
||||
TQuadroC_E2 a(nome_quadro);
|
||||
a.run(argc, argv, taitol);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Quadro C" -1 -1 78 18
|
||||
PAGE "Riepilogo SC" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
|
@ -9,7 +9,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Quadro D" -1 -1 78 18
|
||||
PAGE "Riepilogo SF" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
|
@ -9,7 +9,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Quadro D1" -1 -1 78 18
|
||||
PAGE "Riepilogo SH" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
|
@ -9,7 +9,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Quadro D bis" -1 -1 78 18
|
||||
PAGE "Riepilogo SG" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
|
@ -9,7 +9,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Quadro E" -1 -1 78 18
|
||||
PAGE "Riepilogo SP" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
|
@ -14,7 +14,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Quadro E1" -1 -1 78 18
|
||||
PAGE "Riepilogo SQ" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
|
@ -487,7 +487,7 @@ bool M71310_application::user_destroy()
|
||||
int m71310(int argc, char* argv[])
|
||||
{
|
||||
M71310_application a;
|
||||
a.run(argc, argv, "Quadro L");
|
||||
a.run(argc, argv, "Riepilogo SL/SK");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ END
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Quadro L" -1 -1 78 18
|
||||
PAGE "Riepilogo SL/SK" -1 -1 78 18
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include <checks.h>
|
||||
#include "772.h"
|
||||
|
||||
#define usage "Error - usage : %s -{0|1|2|3|4}"
|
||||
#define usage "Error - usage : %s -{0|1|2|3|4|5}"
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
@ -20,6 +20,8 @@ int main(int argc,char** argv)
|
||||
m72400(argc,argv); break;
|
||||
case 4:
|
||||
stampa_quadro(argc,argv); break;
|
||||
case 5:
|
||||
stampa_riepilogo(argc,argv); break;
|
||||
default:
|
||||
error_box(usage, argv[0]) ;
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ int m72200 (int argc, char* argv[]); // Stampa delle certificazioni
|
||||
int m72300 (int argc, char* argv[]); // Stampa movimenti per percipiente
|
||||
int m72400 (int argc, char* argv[]); // Stampa versamenti ritenute
|
||||
int stampa_quadro(int argc, char* argv[]); // Stampa quadro dichiarazione
|
||||
int stampa_riepilogo(int argc, char* argv[]); // Stampa riepilogo SC/SF/SG/SM/SP/SQ/SL-SK
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -42,6 +42,7 @@ class TSt_certif : public TPrintapp
|
||||
real impo;
|
||||
real rite;
|
||||
real netto;
|
||||
real inps;
|
||||
};
|
||||
righe_pag* _rig;
|
||||
TRelation* _rel;
|
||||
@ -65,9 +66,9 @@ class TSt_certif : public TPrintapp
|
||||
int _mese_da, _mese_a, _codc_p;
|
||||
int _riga, _off_lung, _conta;
|
||||
long _num_att, _codanagER, _codanagPE_p, _codanagPE;
|
||||
real _tot_corr, _tot_somme, _tot_quote, _tot_impo, _tot_rite, _tot_netto;
|
||||
real _t_corr, _t_somme, _t_quote, _t_impo, _t_rite, _t_netto;
|
||||
real _corr, _quote, _impo, _rite, _netto, _somme;
|
||||
real _tot_corr, _tot_somme, _tot_quote, _tot_impo, _tot_rite, _tot_netto, _tot_inps;
|
||||
real _t_corr, _t_somme, _t_quote, _t_impo, _t_rite, _t_netto, _t_inps;
|
||||
real _corr, _quote, _impo, _rite, _netto, _somme, _inps;
|
||||
bool _intesta, _stampa, _settato_totale, _fai_footer;
|
||||
bool _st_modulo, _st_data;
|
||||
|
||||
@ -100,7 +101,7 @@ public:
|
||||
int stampa_riga(int,int,const char*);
|
||||
void dati_erogante();
|
||||
void dati_percipiente();
|
||||
void riempi_record(long,char,long,const real&,int,const real&,const real&,const real&,const real&,const real&,const real&);
|
||||
void riempi_record(long,char,long,const real&,int,const real&,const real&,const real&,const real&,const real&,const real&,const real&);
|
||||
|
||||
// D = stampa ditta, S = stampa a livello di studio
|
||||
TSt_certif(char livello='D') : _intesta(TRUE), _liv(toupper(livello)) {}
|
||||
@ -152,7 +153,8 @@ bool TSt_certif::mese_handler (TMask_field& f, KEY k)
|
||||
|
||||
TRectype& TSt_certif::look_schperc (long cod, char t, long codan, int np)
|
||||
{
|
||||
TLocalisamfile schede(LF_SCPERC);
|
||||
// TLocalisamfile schede(LF_SCPERC); // Gosen
|
||||
TLocalisamfile& schede = *_scperc;
|
||||
schede.zero();
|
||||
schede.put(SPR_CODDITTA, cod);
|
||||
schede.put(SPR_TIPOA, t);
|
||||
@ -184,11 +186,14 @@ void TSt_certif::init_sort()
|
||||
_rig = new righe_pag;
|
||||
_sort = new TSort(sizeof(righe_pag));
|
||||
|
||||
/*
|
||||
_sort->addsortkey ((char*)&(_rig->ditta) - (char*)&(_rig->ditta),5);
|
||||
_sort->addsortkey ((char*)&(_rig->tipoa) - (char*)&(_rig->ditta),1);
|
||||
_sort->addsortkey ((char*)&(_rig->codan) - (char*)&(_rig->ditta),5);
|
||||
_sort->addsortkey ((char*)&(_rig->perc) - (char*)&(_rig->ditta),6);
|
||||
_sort->addsortkey ((char*)&(_rig->codc) - (char*)&(_rig->ditta),2);
|
||||
*/
|
||||
_sort->addsortkey (0, 23);
|
||||
_sort->init();
|
||||
}
|
||||
|
||||
@ -197,7 +202,7 @@ void TSt_certif::crea_sort()
|
||||
long ditta, dittac, codan, codanc;
|
||||
char tipoa, tipoac;
|
||||
int nprog, nprogc, codc, mese, anno;
|
||||
real corrisp, somme, impo, rite, netto, quote, perc;
|
||||
real corrisp, somme, impo, rite, netto, quote, perc, inps;
|
||||
TDate datapag;
|
||||
|
||||
dittac = codanc = 0l;
|
||||
@ -216,7 +221,7 @@ void TSt_certif::crea_sort()
|
||||
datapag = _cur->curr().get(PAG_DATAPAG);
|
||||
if (ditta == dittac && tipoa == tipoac && codan == codanc && nprog == nprogc)
|
||||
continue;
|
||||
TRectype dep = look_schperc(ditta, tipoa, codan, nprog);
|
||||
const TRectype& dep = look_schperc(ditta, tipoa, codan, nprog);
|
||||
mese = dep.get_int(SPR_MESEC);
|
||||
anno = dep.get_int(SPR_ANNOC);
|
||||
codc = dep.get_int(SPR_CODCAUS);
|
||||
@ -246,15 +251,17 @@ void TSt_certif::crea_sort()
|
||||
rite = _cur->curr().get_real(PAG_RITENUTA);
|
||||
impo = _cur->curr().get_real(PAG_IMPONIBILE);
|
||||
netto = _cur->curr().get_real(PAG_NETTO);
|
||||
inps = _cur->curr().get_real(PAG_INPSPERC);
|
||||
quote = corrisp-impo;
|
||||
|
||||
riempi_record(ditta,tipoa,codan,perc,codc,corrisp,somme,quote,impo,rite,netto);
|
||||
riempi_record(ditta,tipoa,codan,perc,codc,corrisp,somme,quote,impo,rite,netto,inps);
|
||||
}
|
||||
}
|
||||
|
||||
void TSt_certif::riempi_record(long d,char t,long ca,const real& p,int c,
|
||||
const real& co,const real& so,
|
||||
const real& qu,const real& im,const real& ri,const real& ne)
|
||||
const real& qu,const real& im,const real& ri,
|
||||
const real& ne, const real& inps)
|
||||
{
|
||||
sprintf(_rig->ditta, "%5ld", d);
|
||||
_rig->tipoa = t;
|
||||
@ -269,6 +276,7 @@ void TSt_certif::riempi_record(long d,char t,long ca,const real& p,int c,
|
||||
_rig->impo = im;
|
||||
_rig->rite = ri;
|
||||
_rig->netto = ne;
|
||||
_rig->inps = inps;
|
||||
|
||||
_sort->sort((const char*)_rig);
|
||||
}
|
||||
@ -278,14 +286,18 @@ int TSt_certif::stampa_riga(int i, int ct, const char* d)
|
||||
if (!_st_modulo)
|
||||
{
|
||||
TString16 app (_perc_p.left(3)); //stampo solo la parte intera
|
||||
app.ltrim();
|
||||
set_row(i,"%02d %4d %-.25s @34g%r@50g%r@66g%r",_codc_p,ct,d,&_tot_corr,&_tot_somme,&_tot_quote);
|
||||
set_row(i++,"@82g%r@98g%s@101g%r@117g%r",&_tot_impo,(const char*)app,&_tot_rite,&_tot_netto);
|
||||
app.ltrim();
|
||||
|
||||
real lordo_netto_iva = _tot_corr + _tot_somme;
|
||||
real somme_quote = _tot_somme + _tot_quote;
|
||||
|
||||
set_row(i,"%02d %4d %-.25s @34g%r@50g%r@66g%r",_codc_p,ct,d,&lordo_netto_iva,&somme_quote,&_tot_impo);
|
||||
set_row(i++,"@83g%s@86g%r@101g%r@117g%r",(const char*)app,&_tot_rite,&_tot_inps,&_tot_netto);
|
||||
}
|
||||
else
|
||||
{
|
||||
real non_sogg = _tot_corr - _tot_impo + _tot_somme;
|
||||
real imp_netto = _tot_impo - _tot_rite;
|
||||
real imp_netto = _tot_impo - _tot_rite /* - _tot_inps */;
|
||||
TString16 app (_perc_p.left(3));
|
||||
app.ltrim();
|
||||
set_row(i++, "@3g%4d@11g%-.28s@43g%12.0r@57g%12.0r@71g%12.0r@85g%s@89g%12.0r@104g%12.0r",
|
||||
@ -295,14 +307,19 @@ int TSt_certif::stampa_riga(int i, int ct, const char* d)
|
||||
return i;
|
||||
}
|
||||
|
||||
// Totale su carta bianca
|
||||
void TSt_certif::stampa_totale(int i)
|
||||
{
|
||||
TString dep(94);
|
||||
dep.fill('-');
|
||||
set_row(i++, "");
|
||||
set_row(i++, "@38g%s", (const char*) dep);
|
||||
set_row(i, "@15gTOTALE@34g%r@50g%r@66g%r@82g%r@101g%r@117g%r",
|
||||
&_t_corr,&_t_somme,&_t_quote,&_t_impo,&_t_rite,&_t_netto);
|
||||
|
||||
real lordo_netto_iva = _t_corr + _t_somme;
|
||||
real somme_quote = _t_somme + _t_quote;
|
||||
|
||||
set_row(i, "@15gTOTALE@34g%r@50g%r@66g%r@86g%r@101g%r@117g%r",
|
||||
&lordo_netto_iva,&somme_quote,&_t_impo,&_t_rite,&_t_inps,&_t_netto);
|
||||
}
|
||||
|
||||
void TSt_certif::salva_totale()
|
||||
@ -314,6 +331,7 @@ void TSt_certif::salva_totale()
|
||||
_tot_impo += _impo;
|
||||
_tot_rite += _rite;
|
||||
_tot_netto+= _netto;
|
||||
_tot_inps += _inps;
|
||||
}
|
||||
|
||||
void TSt_certif::leggi_sort()
|
||||
@ -325,9 +343,7 @@ void TSt_certif::leggi_sort()
|
||||
if ((_buf = _sort->retrieve()) != NULL)
|
||||
{
|
||||
TString16 key1, key2;
|
||||
struct righe_pag* rp;
|
||||
|
||||
rp = (struct righe_pag*)_buf;
|
||||
struct righe_pag* rp = (struct righe_pag*)_buf;
|
||||
long ditta = atol(rp->ditta);
|
||||
_tipoa = rp->tipoa;
|
||||
_codanagPE = atol(rp->codan);
|
||||
@ -346,6 +362,7 @@ void TSt_certif::leggi_sort()
|
||||
_impo = rp->impo;
|
||||
_rite = rp->rite;
|
||||
_netto = rp->netto;
|
||||
_inps = rp->inps;
|
||||
|
||||
key1.format("%c%5ld", _tipoa, _codanagPE);
|
||||
key2.format("%s%02d", (const char*)perc, codc);
|
||||
@ -365,12 +382,13 @@ void TSt_certif::leggi_sort()
|
||||
_t_impo += _tot_impo;
|
||||
_t_rite += _tot_rite;
|
||||
_t_netto += _tot_netto;
|
||||
_t_inps += _tot_inps;
|
||||
|
||||
if (!_st_modulo)
|
||||
{
|
||||
stampa_totale(i);
|
||||
_tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=ZERO; //sono i totali relativi ad ogni singola riga di stampa
|
||||
_t_corr = _t_somme = _t_quote = _t_impo = _t_rite =_t_netto = ZERO; //sono i totali finali (relativi cioe' al percipiente)
|
||||
_tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=_tot_inps=ZERO; //sono i totali relativi ad ogni singola riga di stampa
|
||||
_t_corr = _t_somme = _t_quote = _t_impo = _t_rite =_t_netto = _t_inps=ZERO; //sono i totali finali (relativi cioe' al percipiente)
|
||||
}
|
||||
|
||||
//salvo gli importi del record che sto leggendo
|
||||
@ -392,8 +410,9 @@ void TSt_certif::leggi_sort()
|
||||
_t_impo += _tot_impo;
|
||||
_t_rite += _tot_rite;
|
||||
_t_netto += _tot_netto;
|
||||
_t_inps += _tot_inps;
|
||||
|
||||
_tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=ZERO;
|
||||
_tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=_tot_inps=ZERO;
|
||||
|
||||
if (_st_modulo)
|
||||
_conta += 1;
|
||||
@ -435,6 +454,7 @@ void TSt_certif::leggi_sort()
|
||||
_t_impo += _tot_impo;
|
||||
_t_rite += _tot_rite;
|
||||
_t_netto += _tot_netto;
|
||||
_t_inps += _tot_inps;
|
||||
|
||||
if (!_st_modulo)
|
||||
stampa_totale(i);
|
||||
@ -449,7 +469,7 @@ void TSt_certif::preprocess_footer()
|
||||
{
|
||||
//riga totale
|
||||
real t_non_sogg = _t_corr - _t_impo + _t_somme;
|
||||
real t_imp_netto = _t_impo - _t_rite;
|
||||
real t_imp_netto = _t_impo - _t_rite /* - _t_inps */;
|
||||
|
||||
reset_footer();
|
||||
|
||||
@ -462,15 +482,16 @@ void TSt_certif::preprocess_footer()
|
||||
tr = _t_rite.string();
|
||||
tim = t_imp_netto.string();
|
||||
|
||||
_tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=ZERO;
|
||||
_tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=_tot_inps=ZERO;
|
||||
|
||||
if (_settato_totale)
|
||||
_t_corr = _t_somme = _t_quote = _t_impo = _t_rite =_t_netto = ZERO;
|
||||
_t_corr = _t_somme = _t_quote = _t_impo = _t_rite =_t_netto = _t_inps = ZERO;
|
||||
|
||||
if (_settato_totale)
|
||||
set_footer(r++, "@43g%12s@57g%12s@71g%12s@89g%12s@104g%12s", (const char*)tc,
|
||||
(const char*)tns,(const char*)ti,(const char*)tr,(const char*)tim);
|
||||
else set_footer(r++, "@5gsegue...");
|
||||
else
|
||||
set_footer(r++, "@5gsegue...");
|
||||
|
||||
set_footer(r++, "");
|
||||
set_footer(r++, "");
|
||||
@ -523,8 +544,8 @@ void TSt_certif::preprocess_footer()
|
||||
bool TSt_certif::preprocess_print(int file, int counter)
|
||||
{
|
||||
_key1p = _key2p = "";
|
||||
_tot_corr = _tot_somme = _tot_quote = _tot_impo = _tot_rite = _tot_netto = ZERO;
|
||||
_t_corr = _t_somme = _t_quote = _t_impo = _t_rite = _t_netto = ZERO;
|
||||
_tot_corr = _tot_somme = _tot_quote = _tot_impo = _tot_rite = _tot_netto = _tot_inps = ZERO;
|
||||
_t_corr = _t_somme = _t_quote = _t_impo = _t_rite = _t_netto = _t_inps = ZERO;
|
||||
_stampa = _settato_totale = _fai_footer = FALSE;
|
||||
_conta = 0;
|
||||
|
||||
@ -785,17 +806,17 @@ void TSt_certif::preprocess_header()
|
||||
set_header(i++, "");
|
||||
set_header(i++, "@50g%s,li %d %s %d", (const char*)_luogo, _data.day(), itom(_data.month()), _data.year());
|
||||
set_header(i++, "");
|
||||
set_header(i++, "@7gPer gli adempimenti previsti dall'art.7 bis del D.P.R. 29 Settembre 1973,n. 600 e successive modifica-");
|
||||
set_header(i++, "zioni si attesta che nel corso del periodo dal 01/01/%d al 31/12/%d al percipiente evidenziato in riquadro", _anno_dic, _anno_dic);
|
||||
set_header(i++, "sono stati corrisposti i seguenti compensi debitamente assoggettati a ritenuta d'acconto:");
|
||||
set_header(i++, "@7gPer gli adempimenti previsti dall'art.7 bis del D.P.R. 29 Settembre 1973,n. 600 e successive modificazioni");
|
||||
set_header(i++, "si attesta che nel corso del periodo dal 01/01/%d al 31/12/%d al percipiente evidenziato in riquadro", _anno_dic, _anno_dic);
|
||||
set_header(i++, "sono stati corrisposti i seguenti compensi debitamente assoggettati a ritenuta d'acconto e ad eventuale ritenuta previdenziale:");
|
||||
set_header(i++, "");
|
||||
_intesta = FALSE;
|
||||
}
|
||||
TString sep(132);
|
||||
sep.fill('-');
|
||||
set_header(i++, (const char*)sep);
|
||||
set_header(i++, "Codice@53gSomme@69gQuote");
|
||||
set_header(i++, "Cs Trib Descrizione@36gCorrispettivo@53gNon soggette@69gNon soggette@87gImponibili@98gAl@108gRitenute@123gNet.corr.");
|
||||
set_header(i++, "Codice@36gTotale lordo@53gSomme e Quote@90gRitenute@108gRitenute");
|
||||
set_header(i++, "Cs Trib Descrizione@36gal netto IVA@53gNon soggette@69gImponibile@83gAl@90gFiscali@108gPrevidenz.@123gNet.corr.");
|
||||
set_header(i, (const char*)sep);
|
||||
}
|
||||
|
||||
|
@ -14,3 +14,4 @@
|
||||
#define F_MODULO 114
|
||||
#define F_LUNG 115
|
||||
#define F_LARG 116
|
||||
#define F_INPS 117
|
||||
|
@ -132,17 +132,22 @@ END
|
||||
BOOLEAN F_MODULO
|
||||
BEGIN
|
||||
PROMPT 3 13 "Stampa su modulo "
|
||||
HELP "Indicare se si desidera stampare su modulo"
|
||||
MESSAGE TRUE SHOW,F_LUNG|"8",F_LUNG
|
||||
MESSAGE FALSE HIDE,F_LUNG
|
||||
FLAGS "GH" // Per ora lo ignoriamo
|
||||
MESSAGE TRUE SHOW,F_LUNG|"8",F_LUNG|SHOW,F_INPS
|
||||
MESSAGE FALSE HIDE,F_LUNG|HIDE,F_INPS
|
||||
END
|
||||
|
||||
NUMBER F_LUNG 1
|
||||
BEGIN
|
||||
PROMPT 28 13 "Margine di lunghezza "
|
||||
|
||||
END
|
||||
|
||||
BOOLEAN F_INPS
|
||||
BEGIN
|
||||
PROMPT 28 14 "Stampa importo contributi previdenziali"
|
||||
END
|
||||
|
||||
|
||||
BUTTON DLG_PRINT 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 "~Stampa"
|
||||
@ -156,4 +161,4 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
ENDMASK
|
||||
|
@ -22,3 +22,8 @@ MENUBAR MENU_BAR(4)
|
||||
|
||||
MENU MENU_BAR(4)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
MENUBAR MENU_BAR(5)
|
||||
|
||||
MENU MENU_BAR(5)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "773100.h"
|
||||
|
||||
PAGE "Parametri Modello 770" -1 -1 76 13
|
||||
PAGE "Parametri gestione percipienti" -1 -1 76 13
|
||||
|
||||
//
|
||||
// NB Il parametro AnnoDic e' letto in tutte le stampe
|
||||
@ -33,6 +33,7 @@ BEGIN
|
||||
ITEM "1|Ordine primario data versamento"
|
||||
ITEM "2|Ordine primario periodo riferimento"
|
||||
FIELD FlStQl
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
LIST F_FSTAMPAQCQD 29
|
||||
@ -40,7 +41,8 @@ BEGIN
|
||||
PROMPT 3 8 "Flag per stampa quadri C/D/D1 "
|
||||
ITEM "1|Per codice causale e aliquota"
|
||||
ITEM "2|Per codice tributo e aliquota"
|
||||
FIELD FlStQcQd
|
||||
FIELD FlStQcQd
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
|
@ -287,8 +287,8 @@ bool TAzzeramento_archivi::user_create()
|
||||
|
||||
bool TAzzeramento_archivi::user_destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _rel;
|
||||
delete _msk;
|
||||
delete _cnf_studio;
|
||||
delete _riporti;
|
||||
|
||||
@ -623,6 +623,7 @@ void TAzzeramento_archivi::elab_tutte(const bool azzsch, const bool azzqua)
|
||||
{
|
||||
// creazione istanze d'azzeramento
|
||||
azzera_create(azzsch, azzqua);
|
||||
TProgind pi (3,"Azzeramento riepiloghi...",FALSE,TRUE);
|
||||
|
||||
// richiesto azzeramento schede percipienti
|
||||
if (azzsch)
|
||||
@ -641,6 +642,7 @@ void TAzzeramento_archivi::elab_tutte(const bool azzsch, const bool azzqua)
|
||||
_reset_SCPERC->run();
|
||||
_reset_RPAG->run();
|
||||
_reset_RVER->run();
|
||||
pi.addstatus(1);
|
||||
}
|
||||
|
||||
// richiesto azzeramento quadri
|
||||
@ -703,7 +705,8 @@ void TAzzeramento_archivi::elab_tutte(const bool azzsch, const bool azzqua)
|
||||
_reset_QUAQ->run();
|
||||
_reset_QUAR->run();
|
||||
_reset_QUAS->run();
|
||||
_reset_QUAT->run();
|
||||
_reset_QUAT->run();
|
||||
pi.addstatus(1);
|
||||
}
|
||||
|
||||
// handle log schede percipienti
|
||||
@ -711,7 +714,8 @@ void TAzzeramento_archivi::elab_tutte(const bool azzsch, const bool azzqua)
|
||||
handle_log();
|
||||
|
||||
// distruzione istanze d'azzeramento
|
||||
azzera_destroy(azzsch, azzqua);
|
||||
azzera_destroy(azzsch, azzqua);
|
||||
pi.setstatus(3);
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ END
|
||||
|
||||
GROUPBOX DLG_NULL -1 3
|
||||
BEGIN
|
||||
PROMPT 1 12 "@bAzzeramento quadri dichiarazione"
|
||||
PROMPT 1 12 "@bAzzeramento riepiloghi"
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
|
193
m770/776100.cpp
193
m770/776100.cpp
@ -24,7 +24,7 @@
|
||||
#include "../ba/ba4600.h"
|
||||
|
||||
HIDDEN TString80 __tmp;
|
||||
HIDDEN const int NUM_QUADRI = 29;
|
||||
HIDDEN const int NUM_QUADRI = 30;
|
||||
|
||||
typedef enum { grassetto=0, sottolineato, piano } stile;
|
||||
|
||||
@ -37,8 +37,8 @@ class TManutenzione_quadri : public TApplication
|
||||
TLocalisamfile* _base, *_basebis;
|
||||
int _anno_dic;
|
||||
bool _soci;
|
||||
long _codditta, _coddic;
|
||||
TString _qcomp_prev;
|
||||
long _codditta, _coddic;
|
||||
TString _qcomp_prev;
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
@ -65,7 +65,7 @@ class TManutenzione_quadri : public TApplication
|
||||
|
||||
void init_query_mask (TMask&);
|
||||
void init_menu (TMask&);
|
||||
bool lock(const bool lok=TRUE);
|
||||
bool lock(const bool lok=TRUE);
|
||||
|
||||
public:
|
||||
TManutenzione_quadri ();
|
||||
@ -84,7 +84,7 @@ bool TManutenzione_quadri::filtra_ditte(const TRelation * r)
|
||||
long coddic = 0L;
|
||||
bool ok = FALSE;
|
||||
TLocalisamfile& base = *(app()._base);
|
||||
TString16 tipoq;
|
||||
TString16 tipoq;
|
||||
|
||||
base.zero();
|
||||
base.put("CODDITTA", (long)codditta);
|
||||
@ -248,19 +248,24 @@ const char* TManutenzione_quadri::make_prompt(int i, stile vivid)
|
||||
__tmp << "Quadro B1";
|
||||
break;
|
||||
case 6:
|
||||
__tmp << "Quadro C" ;
|
||||
//__tmp << "Quadro C" ;
|
||||
__tmp << "Riepilogo SC" ;
|
||||
break;
|
||||
case 7:
|
||||
__tmp << "Quadro D" ;
|
||||
//__tmp << "Quadro D" ;
|
||||
__tmp << "Riepilogo SF" ;
|
||||
break;
|
||||
case 8:
|
||||
__tmp << "Quadro D1";
|
||||
//__tmp << "Quadro D1";
|
||||
__tmp << "Riepilogo SH";
|
||||
break;
|
||||
case 9:
|
||||
__tmp << "Quadro E" ;
|
||||
//__tmp << "Quadro E" ;
|
||||
__tmp << "Riepilogo SP" ;
|
||||
break;
|
||||
case 10:
|
||||
__tmp << "Quadro E1";
|
||||
//__tmp << "Quadro E1";
|
||||
__tmp << "Riepilogo SQ";
|
||||
break;
|
||||
case 11:
|
||||
__tmp << "Quadro E2";
|
||||
@ -285,9 +290,10 @@ const char* TManutenzione_quadri::make_prompt(int i, stile vivid)
|
||||
break;
|
||||
case 18:
|
||||
__tmp << "Quadro I" ;
|
||||
break;
|
||||
break;
|
||||
case 19:
|
||||
__tmp << "Quadro L" ;
|
||||
//__tmp << "Quadro L" ;
|
||||
__tmp << "Riepilogo SL/SK" ;
|
||||
break;
|
||||
case 20:
|
||||
__tmp << "Quadro N" ;
|
||||
@ -311,7 +317,8 @@ const char* TManutenzione_quadri::make_prompt(int i, stile vivid)
|
||||
__tmp << "Quadro Ab";
|
||||
break;
|
||||
case 27:
|
||||
__tmp << "Quadro Db";
|
||||
//__tmp << "Quadro Db";
|
||||
__tmp << "Riepilogo SG";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -341,20 +348,20 @@ void TManutenzione_quadri::inibith(TString& qric, TMask& m)
|
||||
// Il quadro L non ha il flag di compilato sul base.
|
||||
void TManutenzione_quadri::enphasize(TString& qcomp,TMask& m)
|
||||
{
|
||||
int start_dlg = DLG_NULL_A;
|
||||
int start_dlg = DLG_NULL_A;
|
||||
const char* prompt;
|
||||
int dlg = 0;
|
||||
int dlg = 0;
|
||||
|
||||
// quadri fino al quadro U non compreso
|
||||
for (int i = 0; i < (NUM_QUADRI-1); i++)
|
||||
{
|
||||
if (qcomp[i] != _qcomp_prev[i])
|
||||
{
|
||||
dlg = start_dlg + (i * 2);
|
||||
prompt = make_prompt(i, qcomp[i] == 'X' ? grassetto : piano);
|
||||
m.field(dlg).set_prompt(prompt);
|
||||
_qcomp_prev[i] = qcomp[i];
|
||||
}
|
||||
dlg = start_dlg + (i * 2);
|
||||
prompt = make_prompt(i, qcomp[i] == 'X' ? grassetto : piano);
|
||||
m.field(dlg).set_prompt(prompt);
|
||||
_qcomp_prev[i] = qcomp[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -364,37 +371,37 @@ if (k == K_SPACE)
|
||||
{
|
||||
if (f.dlg() == DLG_MANUTENZ) // enter su menu
|
||||
{ // dati anagrafici
|
||||
f.mask().hide(-MENU_MAIN);
|
||||
f.mask().show(-MENU_DATIANAG);
|
||||
f.mask().set_focus_field(DLG_STOPREC_DICH);
|
||||
f.mask().set_caption("Manutenzione dati anagrafici");
|
||||
return TRUE;
|
||||
}
|
||||
f.mask().hide(-MENU_MAIN);
|
||||
f.mask().show(-MENU_DATIANAG);
|
||||
f.mask().set_focus_field(DLG_STOPREC_DICH);
|
||||
f.mask().set_caption("Manutenzione dati anagrafici");
|
||||
return TRUE;
|
||||
}
|
||||
if (f.dlg() == DLG_STOPREC_ST) // enter su menu
|
||||
{ // stampe
|
||||
f.mask().hide(-MENU_MAIN);
|
||||
f.mask().show(-MENU_STAMPE);
|
||||
f.mask().set_focus_field(DLG_STOPREC_ST0);
|
||||
f.mask().set_caption("Stampe");
|
||||
return TRUE;
|
||||
{ // stampe
|
||||
f.mask().hide(-MENU_MAIN);
|
||||
f.mask().show(-MENU_STAMPE);
|
||||
f.mask().set_focus_field(DLG_STOPREC_ST0);
|
||||
f.mask().set_caption("Stampe");
|
||||
return TRUE;
|
||||
}
|
||||
if (f.dlg() == DLG_STOPREC_SD) // enter su menu
|
||||
{ // soggetto dichiarante
|
||||
f.mask().hide(-MENU_MAIN);
|
||||
f.mask().show(-MENU_SOGGDICH);
|
||||
f.mask().set_focus_field(DLG_STOPREC_SD0);
|
||||
f.mask().set_caption("Soggetto dichiarante");
|
||||
return TRUE;
|
||||
}
|
||||
f.mask().hide(-MENU_MAIN);
|
||||
f.mask().show(-MENU_SOGGDICH);
|
||||
f.mask().set_focus_field(DLG_STOPREC_SD0);
|
||||
f.mask().set_caption("Soggetto dichiarante");
|
||||
return TRUE;
|
||||
}
|
||||
if (f.dlg() == DLG_STOPREC_STQD) // enter su menu
|
||||
{ // stampe dichiarazioni
|
||||
f.mask().hide(-MENU_STAMPE);
|
||||
f.mask().show(-MENU_STAMPEDICH);
|
||||
f.mask().set_focus_field(B_BASE);
|
||||
f.mask().set_caption("Stampe dichiarazioni");
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
f.mask().hide(-MENU_STAMPE);
|
||||
f.mask().show(-MENU_STAMPEDICH_VIS);
|
||||
f.mask().set_focus_field(B_BASE);
|
||||
f.mask().set_caption("Stampe dichiarazioni");
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -405,37 +412,37 @@ bool TManutenzione_quadri::hide_menu(TMask_field& f, KEY k)
|
||||
{
|
||||
if (f.mask().field(DLG_STOPREC_DICH).shown()) // cancel da menu
|
||||
{ // dati anagrafici
|
||||
f.mask().hide(-MENU_DATIANAG);
|
||||
f.mask().show(-MENU_MAIN);
|
||||
f.mask().first_focus(DLG_MANUTENZ);
|
||||
f.mask().set_caption("Manutenzione dichiarazione");
|
||||
return TRUE;
|
||||
}
|
||||
f.mask().hide(-MENU_DATIANAG);
|
||||
f.mask().show(-MENU_MAIN_VIS);
|
||||
f.mask().first_focus(DLG_MANUTENZ);
|
||||
f.mask().set_caption("Manutenzione dichiarazione");
|
||||
return TRUE;
|
||||
}
|
||||
if (f.mask().field(DLG_STOPREC_ST0).shown()) // cancel da menu
|
||||
{ // stampe
|
||||
f.mask().hide(-MENU_STAMPE);
|
||||
f.mask().show(-MENU_MAIN);
|
||||
f.mask().first_focus(DLG_STOPREC_ST);
|
||||
f.mask().set_caption("Manutenzione dichiarazione");
|
||||
{ // stampe
|
||||
f.mask().hide(-MENU_STAMPE);
|
||||
f.mask().show(-MENU_MAIN_VIS);
|
||||
f.mask().first_focus(DLG_STOPREC_ST);
|
||||
f.mask().set_caption("Manutenzione dichiarazione");
|
||||
return TRUE;
|
||||
}
|
||||
if (f.mask().field(DLG_STOPREC_SD0).shown()) // cancel da menu
|
||||
{ // soggetto dichiarante
|
||||
f.mask().hide(-MENU_SOGGDICH);
|
||||
f.mask().show(-MENU_MAIN);
|
||||
f.mask().first_focus(DLG_STOPREC_SD);
|
||||
f.mask().set_caption("Manutenzione dichiarazione");
|
||||
return TRUE;
|
||||
}
|
||||
if (f.mask().field(B_BASE).shown()) // cancel da menu
|
||||
f.mask().hide(-MENU_SOGGDICH);
|
||||
f.mask().show(-MENU_MAIN_VIS);
|
||||
f.mask().first_focus(DLG_STOPREC_SD);
|
||||
f.mask().set_caption("Manutenzione dichiarazione");
|
||||
return TRUE;
|
||||
}
|
||||
if (f.mask().field(B_C).shown()) // cancel da menu
|
||||
{ // stampe dichiarazioni
|
||||
f.mask().hide(-MENU_STAMPEDICH);
|
||||
f.mask().hide(-MENU_STAMPEDICH);
|
||||
f.mask().show(-MENU_STAMPE);
|
||||
f.mask().first_focus(DLG_STOPREC_STQD);
|
||||
f.mask().set_caption("Stampe");
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -536,8 +543,8 @@ bool TManutenzione_quadri::lock(const bool lok)
|
||||
bool TManutenzione_quadri::leggi_quadri(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB)
|
||||
{
|
||||
app().init_menu(f.mask());
|
||||
{
|
||||
app().init_menu(f.mask());
|
||||
xvt_statbar_set(""); // serve per ripristinare la statusbar
|
||||
}
|
||||
return TRUE;
|
||||
@ -557,22 +564,22 @@ bool TManutenzione_quadri::main_loop()
|
||||
|
||||
// eseguo la prima maschera (richiesta codice ditta) solo la prima volta,
|
||||
// oppure quando esco dal menu manutenzione quadri con "Annulla"
|
||||
if (tasto != K_ESC)
|
||||
{
|
||||
if (!query_mask())
|
||||
return FALSE;
|
||||
if (tasto != K_ESC)
|
||||
{
|
||||
if (!query_mask())
|
||||
return FALSE;
|
||||
// Disabilita cambio ditta
|
||||
enable_menu_item(M_FILE_NEW, FALSE);
|
||||
enable_menu_item(M_FILE_NEW, FALSE);
|
||||
// Disabilita cambio parametri
|
||||
enable_menu_item(M_FILE_REVERT, FALSE);
|
||||
// Impegna ditta
|
||||
if (!lock(TRUE))
|
||||
continue;
|
||||
enable_menu_item(M_FILE_REVERT, FALSE);
|
||||
// Impegna ditta
|
||||
if (!lock(TRUE))
|
||||
continue;
|
||||
// carico la maschera di manutenzione quadri
|
||||
load_mask(1);
|
||||
_msk[1]->autoload(*_rel);
|
||||
load_mask(1);
|
||||
_msk[1]->autoload(*_rel);
|
||||
init_menu(*_msk[1]);
|
||||
_msk[1]->open_modal();
|
||||
_msk[1]->open_modal();
|
||||
}
|
||||
|
||||
// eseguo la maschera di manutenzione quadri
|
||||
@ -584,17 +591,17 @@ bool TManutenzione_quadri::main_loop()
|
||||
// forzo l'esecuzione dell'handler del bottone "Annulla"
|
||||
// se ritorna false significa che era attivo il menu principale
|
||||
// e quindi permetto la riesecuzione della maschera di richiesta ditta
|
||||
if (!(hide_menu(_msk[1]->field(DLG_CANCEL), K_SPACE)))
|
||||
{
|
||||
tasto = K_TAB;
|
||||
lock(FALSE); // release lock
|
||||
_msk[1]->close_modal(); // chiude maschera
|
||||
}
|
||||
break;
|
||||
if (!(hide_menu(_msk[1]->field(DLG_CANCEL), K_SPACE)))
|
||||
{
|
||||
tasto = K_TAB;
|
||||
lock(FALSE); // release lock
|
||||
_msk[1]->close_modal(); // chiude maschera
|
||||
}
|
||||
break;
|
||||
case K_QUIT :
|
||||
lock(FALSE); // release lock
|
||||
_msk[1]->close_modal(); // chiude maschera
|
||||
break;
|
||||
lock(FALSE); // release lock
|
||||
_msk[1]->close_modal(); // chiude maschera
|
||||
break;
|
||||
case K_SAVE :
|
||||
break;
|
||||
default:
|
||||
@ -620,13 +627,13 @@ bool TManutenzione_quadri::query_mask()
|
||||
_msk[0]->first_focus(DLG_OK);
|
||||
KEY ch = _msk[0]->run();
|
||||
if (ch == K_ENTER)
|
||||
_codditta = _msk[0]->get_long(F_CODDITTA);
|
||||
_codditta = _msk[0]->get_long(F_CODDITTA);
|
||||
return ch == K_ENTER;
|
||||
}
|
||||
|
||||
int MenuQuadri (int argc, char* argv[])
|
||||
{
|
||||
TManutenzione_quadri a;
|
||||
a.run(argc, argv, "Manutenzione dichiarazione");
|
||||
a.run(argc, argv, "Gestione percipienti");
|
||||
return 0;
|
||||
}
|
||||
|
112
m770/776100a.uml
112
m770/776100a.uml
@ -1,56 +1,56 @@
|
||||
#include "776100a.h"
|
||||
|
||||
PAGE "Manutenzione dichiarazione" -1 -1 64 8
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice "
|
||||
USE LF_NDITTE SELECT LF_BASE->CODDITTA!=""
|
||||
JOIN LF_BASE INTO CODDITTA==CODDITTA
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
DISPLAY "Codice" CODDITTA
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGDITTA RAGSOC
|
||||
HELP "Codice della ditta da selezionare"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Manca la ditta"
|
||||
KEY 1
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_RAGDITTA 50
|
||||
BEGIN
|
||||
PROMPT 1 2 "Rag. Soc. "
|
||||
USE LF_NDITTE KEY 2 SELECT LF_BASE->CODDITTA!=""
|
||||
JOIN LF_BASE INTO CODDITTA==CODDITTA
|
||||
INPUT RAGSOC F_RAGDITTA
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODDITTA
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGDITTA RAGSOC
|
||||
HELP "Ragione sociale della ditta da selezionare"
|
||||
KEY 2
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
NUMBER F_ANNODIC 4
|
||||
BEGIN
|
||||
PROMPT 1 4 "Anno dichiarazione "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 "Fine"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
#include "776100a.h"
|
||||
|
||||
PAGE "Gestione percipienti" -1 -1 64 8
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice "
|
||||
USE LF_NDITTE SELECT LF_BASE->CODDITTA!=""
|
||||
JOIN LF_BASE INTO CODDITTA==CODDITTA
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
DISPLAY "Codice" CODDITTA
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGDITTA RAGSOC
|
||||
HELP "Codice della ditta da selezionare"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Manca la ditta"
|
||||
KEY 1
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_RAGDITTA 50
|
||||
BEGIN
|
||||
PROMPT 1 2 "Rag. Soc. "
|
||||
USE LF_NDITTE KEY 2 SELECT LF_BASE->CODDITTA!=""
|
||||
JOIN LF_BASE INTO CODDITTA==CODDITTA
|
||||
INPUT RAGSOC F_RAGDITTA
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODDITTA
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGDITTA RAGSOC
|
||||
HELP "Ragione sociale della ditta da selezionare"
|
||||
KEY 2
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
NUMBER F_ANNODIC 4
|
||||
BEGIN
|
||||
PROMPT 1 4 "Anno dichiarazione "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 "Fine"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
|
124
m770/776100b.h
124
m770/776100b.h
@ -1,11 +1,13 @@
|
||||
#ifndef __776100b_H
|
||||
#define __776100b_H
|
||||
|
||||
#define MENU_MAIN 1
|
||||
#define MENU_MAIN 1
|
||||
#define MENU_DATIANAG 2
|
||||
#define MENU_STAMPE 3
|
||||
#define MENU_STAMPE 3
|
||||
#define MENU_SOGGDICH 4
|
||||
#define MENU_STAMPEDICH 5
|
||||
#define MENU_MAIN_VIS 6
|
||||
#define MENU_STAMPEDICH_VIS 7
|
||||
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGDITTA 102
|
||||
@ -64,11 +66,11 @@
|
||||
#define DLG_STOPREC_S 160
|
||||
#define DLG_NULL_T 161
|
||||
#define DLG_STOPREC_T 162
|
||||
#define DLG_NULL_AB 163
|
||||
#define DLG_NULL_AB 163
|
||||
#define DLG_STOPREC_AB 164
|
||||
#define DLG_NULL_DB 165
|
||||
#define DLG_NULL_DB 165
|
||||
#define DLG_STOPREC_DB 166
|
||||
#define DLG_NULL_U 167
|
||||
#define DLG_NULL_U 167
|
||||
#define DLG_STOPREC_U 168
|
||||
|
||||
#define DLG_NULL_DICH 200
|
||||
@ -119,59 +121,61 @@
|
||||
#define RILEGGI_QUADRI 245
|
||||
#define DLG_NULL_STQD 246
|
||||
#define DLG_STOPREC_STQD 247
|
||||
#define T_BASE 248
|
||||
#define B_BASE 249
|
||||
#define T_LAGG 250
|
||||
#define B_LAGG 251
|
||||
#define T_NAGG 252
|
||||
#define B_NAGG 253
|
||||
#define T_ALLSOC 254
|
||||
#define B_ALLSOC 255
|
||||
#define T_AB 256
|
||||
#define B_AB 257
|
||||
#define T_BUST 258
|
||||
#define B_BUST 259
|
||||
#define T_A 260
|
||||
#define B_A 261
|
||||
#define T_A1 262
|
||||
#define B_A1 263
|
||||
#define T_A2 264
|
||||
#define B_A2 265
|
||||
#define T_A3 266
|
||||
#define B_A3 267
|
||||
#define T_B 268
|
||||
#define B_B 269
|
||||
#define T_B1 270
|
||||
#define B_B1 271
|
||||
#define T_C 272
|
||||
#define B_C 273
|
||||
#define T_D 274
|
||||
#define B_D 275
|
||||
#define T_D1 276
|
||||
#define B_D1 277
|
||||
#define T_E 278
|
||||
#define B_E 279
|
||||
#define T_E1 280
|
||||
#define B_E1 281
|
||||
#define T_E2 282
|
||||
#define B_E2 283
|
||||
#define T_F 284
|
||||
#define B_F 285
|
||||
#define T_F1 286
|
||||
#define B_F1 287
|
||||
#define T_F2 288
|
||||
#define B_F2 289
|
||||
#define T_G 290
|
||||
#define B_G 291
|
||||
#define T_G1 292
|
||||
#define B_G1 293
|
||||
#define T_H 294
|
||||
#define B_H 295
|
||||
#define T_DB 296
|
||||
#define B_DB 297
|
||||
#define T_U 298
|
||||
#define B_U 299
|
||||
#define DLG_STOPREC_SP 300
|
||||
#define DLG_CANCEL_MENUSTQ 301
|
||||
#define T_BASE 248
|
||||
#define B_BASE 249
|
||||
#define T_LAGG 250
|
||||
#define B_LAGG 251
|
||||
#define T_NAGG 252
|
||||
#define B_NAGG 253
|
||||
#define T_ALLSOC 254
|
||||
#define B_ALLSOC 255
|
||||
#define T_AB 256
|
||||
#define B_AB 257
|
||||
#define T_BUST 258
|
||||
#define B_BUST 259
|
||||
#define T_A 260
|
||||
#define B_A 261
|
||||
#define T_A1 262
|
||||
#define B_A1 263
|
||||
#define T_A2 264
|
||||
#define B_A2 265
|
||||
#define T_A3 266
|
||||
#define B_A3 267
|
||||
#define T_B 268
|
||||
#define B_B 269
|
||||
#define T_B1 270
|
||||
#define B_B1 271
|
||||
#define T_C 272
|
||||
#define B_C 273
|
||||
#define T_D 274
|
||||
#define B_D 275
|
||||
#define T_D1 276
|
||||
#define B_D1 277
|
||||
#define T_E 278
|
||||
#define B_E 279
|
||||
#define T_E1 280
|
||||
#define B_E1 281
|
||||
#define T_E2 282
|
||||
#define B_E2 283
|
||||
#define T_F 284
|
||||
#define B_F 285
|
||||
#define T_F1 286
|
||||
#define B_F1 287
|
||||
#define T_F2 288
|
||||
#define B_F2 289
|
||||
#define T_G 290
|
||||
#define B_G 291
|
||||
#define T_G1 292
|
||||
#define B_G1 293
|
||||
#define T_H 294
|
||||
#define B_H 295
|
||||
#define T_DB 296
|
||||
#define B_DB 297
|
||||
#define T_U 298
|
||||
#define B_U 299
|
||||
#define DLG_STOPREC_SP 300
|
||||
#define DLG_CANCEL_MENUSTQ 301
|
||||
#define T_L 302
|
||||
#define B_L 303
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
524
m770/776100b.uml
524
m770/776100b.uml
File diff suppressed because it is too large
Load Diff
@ -85,7 +85,7 @@ bool TImmissioneDichiarazione::firm_change_enabled() const
|
||||
int ImmissioneDichiarazioni(int argc, char* argv[])
|
||||
{
|
||||
TImmissioneDichiarazione app;
|
||||
app.run(argc, argv, "Immissione dichiarazione");
|
||||
app.run(argc, argv, "Attivazione sostituto");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
138
m770/776300.cpp
138
m770/776300.cpp
@ -22,28 +22,28 @@ class TSelezioneDich : public TConfig_application
|
||||
TConfig* _user_cnf, * _studio_cnf;
|
||||
int _n_ditte;
|
||||
int _anno_dic;
|
||||
TRelation* _nditte;
|
||||
//TRelation* _nditte;
|
||||
long _da_cod, _a_cod;
|
||||
bool _builded_nomiditte;
|
||||
bool _builded_nomiditte;
|
||||
|
||||
void build_nomiditte();
|
||||
void build_ditte_sheet();
|
||||
void build_ditte_sel_sheet();
|
||||
//void build_nomiditte();
|
||||
//void build_ditte_sheet();
|
||||
//void build_ditte_sel_sheet();
|
||||
bool is_in (long codditta);
|
||||
void init_sheet();
|
||||
//void init_sheet();
|
||||
void check_all_dic();
|
||||
|
||||
public:
|
||||
void set_choice_limits(TMask& m);
|
||||
//void set_choice_limits(TMask& m);
|
||||
long select_firm_range(long from, long to);
|
||||
long set_previous_firm_range();
|
||||
// handlers & handlers
|
||||
static bool to_ditt_handler (TMask_field&, KEY);
|
||||
static bool fr_ditt_handler (TMask_field&, KEY);
|
||||
static bool to_butt_handler (TMask_field&, KEY);
|
||||
static bool fr_butt_handler (TMask_field&, KEY);
|
||||
//static bool to_ditt_handler (TMask_field&, KEY);
|
||||
//static bool fr_ditt_handler (TMask_field&, KEY);
|
||||
//static bool to_butt_handler (TMask_field&, KEY);
|
||||
//static bool fr_butt_handler (TMask_field&, KEY);
|
||||
static bool mask_select (TMask_field&, KEY);
|
||||
static bool mask_azzera (TMask_field&, KEY);
|
||||
//static bool mask_azzera (TMask_field&, KEY);
|
||||
// Seleziona tutte le dic
|
||||
static bool tutte_handler (TMask_field&, KEY);
|
||||
// Mostra solo le selezionate
|
||||
@ -81,8 +81,8 @@ bool TSelezioneDich::user_create()
|
||||
|
||||
_studio_cnf = new TConfig(CONFIG_STUDIO);
|
||||
|
||||
_nditte = new TRelation(LF_NDITTE);
|
||||
_nditte->add(LF_BASE,"CODDITTA=CODDITTA");
|
||||
//_nditte = new TRelation(LF_NDITTE);
|
||||
//_nditte->add(LF_BASE,"CODDITTA=CODDITTA");
|
||||
|
||||
_ditte = new TArray_sheet(11, 1, 67, 20, "Seleziona dichiarazioni",
|
||||
"@1|Cod.@5|Ragione Sociale@50");
|
||||
@ -99,9 +99,9 @@ bool TSelezioneDich::user_destroy()
|
||||
{
|
||||
delete _ditte;
|
||||
delete _ditte_sel;
|
||||
delete _nditte;
|
||||
delete _user_cnf;
|
||||
delete _studio_cnf;
|
||||
//delete _nditte;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -109,7 +109,8 @@ bool TSelezioneDich::firm_change_enabled() const
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
void TSelezioneDich::init_sheet()
|
||||
{
|
||||
_n_ditte = 0l;
|
||||
@ -137,32 +138,37 @@ void TSelezioneDich::init_sheet()
|
||||
|
||||
build_ditte_sheet();
|
||||
}
|
||||
*/
|
||||
|
||||
bool TSelezioneDich::preprocess_config (TMask& m, TConfig& config)
|
||||
{
|
||||
init_sheet();
|
||||
//init_sheet();
|
||||
|
||||
// Setto l'anno dichiarazione con quello preso dai parametri di studio
|
||||
// ma SOLO SE non gia' compilato nei par. utente
|
||||
_anno_dic = (int)_user_cnf->get_long(ANNO_SEL, _section);
|
||||
if (_anno_dic == 0)
|
||||
_anno_dic = (int)_studio_cnf->get_long(ANNO_SEL, _section);
|
||||
|
||||
|
||||
const long codditta = _user_cnf->get_long(DITTA_770, _section);
|
||||
|
||||
m.set(F_ANNODIC, _anno_dic);
|
||||
|
||||
m.set(F_CODDITTA, codditta);
|
||||
|
||||
// const long l = select_firm_range(_da_cod, _a_cod);
|
||||
// Evidenzia le ditte precedentemente selezionate. Legge _old_ditte
|
||||
const long l = set_previous_firm_range();
|
||||
//const long l = set_previous_firm_range();
|
||||
|
||||
set_choice_limits(m);
|
||||
m.field(F_SELECT).set(format("%ld", l));
|
||||
//set_choice_limits(m);
|
||||
//m.field(F_SELECT).set(format("%ld", l));
|
||||
|
||||
m.set_handler (DLG_SELECT_2, mask_select);
|
||||
m.set_handler (F_ANNULLA, mask_azzera);
|
||||
m.set_handler (A_CODICE, to_ditt_handler);
|
||||
m.set_handler (DA_CODICE, fr_ditt_handler);
|
||||
m.set_handler (F_TUTTE, tutte_handler);
|
||||
m.set_handler (F_DICSEL, dicsel_handler);
|
||||
//m.set_handler (DLG_SELECT_2, mask_select);
|
||||
//m.set_handler (F_ANNULLA, mask_azzera);
|
||||
//m.set_handler (A_CODICE, to_ditt_handler);
|
||||
//m.set_handler (DA_CODICE, fr_ditt_handler);
|
||||
//m.set_handler (F_TUTTE, tutte_handler);
|
||||
//m.set_handler (F_DICSEL, dicsel_handler);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -179,39 +185,43 @@ bool TSelezioneDich::postprocess_config (TMask& m, TConfig& config)
|
||||
{
|
||||
if (m.last_key() == K_ENTER)
|
||||
{
|
||||
const int anno_dic = m.get_int(F_ANNODIC);
|
||||
const long selec = _ditte->checked();
|
||||
const long items = _ditte->items();
|
||||
const int anno_dic = m.get_int(F_ANNODIC);
|
||||
const long ditta_dic = m.get_long(F_CODDITTA);
|
||||
//const long selec = _ditte->checked();
|
||||
//const long items = _ditte->items();
|
||||
|
||||
TProgind prg(items, "Registrazione in corso\nAttendere prego...", FALSE, TRUE);
|
||||
//TProgind prg(items, "Registrazione in corso\nAttendere prego...", FALSE, TRUE);
|
||||
|
||||
// Registro l'anno dic. nei parametri utente
|
||||
_user_cnf->set(ANNO_SEL, anno_dic);
|
||||
_user_cnf->set(DITTA_770, ditta_dic);
|
||||
// _user_cnf->set(DITTE_SEL, ditta_dic, _section, TRUE, 0);
|
||||
|
||||
// Compatto l'array delle ditte nel .ini
|
||||
int ditte_in_ini = 0;
|
||||
|
||||
long codditta = 0L;
|
||||
for (int i = 0; i < items; i++)
|
||||
{
|
||||
if (_selected[i])
|
||||
{
|
||||
TToken_string& d = (TToken_string&)_nomiditte[i];
|
||||
codditta = d.get_long(1);
|
||||
_user_cnf->set(DITTE_SEL, codditta, _section, TRUE, ditte_in_ini);
|
||||
ditte_in_ini++ ;
|
||||
}
|
||||
prg.addstatus(1);
|
||||
}
|
||||
// Compatto l'array delle ditte nel .ini
|
||||
// int ditte_in_ini = 0;
|
||||
//
|
||||
// long codditta = 0L;
|
||||
// for (int i = 0; i < items; i++)
|
||||
// {
|
||||
// if (_selected[i])
|
||||
// {
|
||||
// TToken_string& d = (TToken_string&)_nomiditte[i];
|
||||
// codditta = d.get_long(1);
|
||||
// _user_cnf->set(DITTE_SEL, codditta, _section, TRUE, ditte_in_ini);
|
||||
// ditte_in_ini++ ;
|
||||
// }
|
||||
// prg.addstatus(1);
|
||||
// }
|
||||
|
||||
// Segno l'ultima ditta nel .ini
|
||||
_user_cnf->set(DITTE_SEL, "", _section, TRUE, ditte_in_ini);
|
||||
// _user_cnf->set(DITTE_SEL, "", _section, TRUE, ditte_in_ini);
|
||||
// Reset dei due codici ditta "Da" "A"
|
||||
_a_cod = _da_cod = 0L;
|
||||
// _a_cod = _da_cod = 0L;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
bool TSelezioneDich::mask_select (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
@ -227,7 +237,10 @@ bool TSelezioneDich::mask_select (TMask_field& f, KEY k)
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
// --------------------------- handlers per selezione ditte
|
||||
/*
|
||||
bool TSelezioneDich::mask_azzera (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
@ -241,8 +254,6 @@ bool TSelezioneDich::mask_azzera (TMask_field& f, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// --------------------------- handlers per selezione ditte
|
||||
|
||||
bool TSelezioneDich::to_ditt_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
@ -308,13 +319,15 @@ bool TSelezioneDich::fr_butt_handler(TMask_field& f, KEY key)
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
*/
|
||||
|
||||
void TSelezioneDich::check_all_dic()
|
||||
{
|
||||
for (int i = 0; i < _ditte->items(); i++)
|
||||
_ditte->check(i);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
bool TSelezioneDich::tutte_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
@ -357,6 +370,7 @@ void TSelezioneDich::set_choice_limits(TMask& m)
|
||||
if (last != -1) m.field(A_CODICE).set(format("%ld",last));
|
||||
m.set(F_SELECT, _selected.ones());
|
||||
}
|
||||
*/
|
||||
|
||||
// Legge da _old_ditte le ditte selezionate e le evidenzia
|
||||
long TSelezioneDich::set_previous_firm_range()
|
||||
@ -415,6 +429,7 @@ long TSelezioneDich::select_firm_range(long from, long to)
|
||||
}
|
||||
|
||||
// 23/6/95 - Scelta ditte solo tra quelle che hanno dichiarazione
|
||||
/*
|
||||
void TSelezioneDich::build_nomiditte()
|
||||
{
|
||||
_nomiditte.destroy();
|
||||
@ -427,13 +442,13 @@ void TSelezioneDich::build_nomiditte()
|
||||
prg.addstatus(1);
|
||||
if (exist_dichiar_770(dt.get_long("CODDITTA")))
|
||||
{
|
||||
_n_ditte++;
|
||||
TToken_string* d = new TToken_string(64);
|
||||
d->add(" "); // spazio per la selezione
|
||||
d->add(dt.get("CODDITTA"));
|
||||
d->add(dt.get("RAGSOC"));
|
||||
_nomiditte.add(d);
|
||||
}
|
||||
_n_ditte++;
|
||||
TToken_string* d = new TToken_string(64);
|
||||
d->add(" "); // spazio per la selezione
|
||||
d->add(dt.get("CODDITTA"));
|
||||
d->add(dt.get("RAGSOC"));
|
||||
_nomiditte.add(d);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -470,16 +485,17 @@ void TSelezioneDich::build_ditte_sel_sheet()
|
||||
// elimina il token riservato alla selezione
|
||||
d->destroy(0);
|
||||
|
||||
// se selezionata o era nei parametri precedenti
|
||||
// se selezionata o era nei parametri precedenti
|
||||
if (_selected[i])
|
||||
const long pos = _ditte_sel->add(d);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
int SelezioneDichiarazioni(int argc, char* argv[])
|
||||
{
|
||||
TSelezioneDich app;
|
||||
app.run(argc, argv, "Selezione dichiarazione");
|
||||
app.run(argc, argv, "Selezione stampa");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1,14 +1,6 @@
|
||||
// 776300a.h - Maschera selezione dichiarazioni
|
||||
// 776300a.h - Maschera selezione stampe
|
||||
|
||||
#define F_ANNODIC 101
|
||||
#define DA_CODICE 102
|
||||
#define A_CODICE 103
|
||||
#define F_SELECT 106
|
||||
#define F_ANNULLA 107
|
||||
#define F_VERIFICA 108
|
||||
#define DLG_SELECT_2 109
|
||||
#define F_TUTTE 110
|
||||
#define F_DICSEL 111
|
||||
#define RADIO1 112
|
||||
#define RADIO2 113
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGDITTA 102
|
||||
#define F_ANNODIC 103
|
||||
|
||||
|
107
m770/776300a.uml
107
m770/776300a.uml
@ -1,101 +1,66 @@
|
||||
// 776300a.uml
|
||||
// SELEZIONE DICHIARAZIONI
|
||||
// SI COMPONE DI TRE SEZIONI :
|
||||
// - LE SEGUENTI DICHIARAZIONI..
|
||||
// - SELEZIONE FRA LIMITI..
|
||||
// - TUTTE..
|
||||
// OGNUNA DELLE QUALI DEVE DISABILITARE LE ALTRE
|
||||
// SELEZIONE DITTA PER MENU STAMPE
|
||||
// RESA UGUALE ALLA MASCHERA 776100a.uml
|
||||
|
||||
#include "776300a.h"
|
||||
|
||||
PAGE " Nuova Selezione " -1 -1 70 16
|
||||
PAGE "Selezione stampa" -1 -1 75 10
|
||||
|
||||
// SEZIONE "LE SEGUENTI DICHIARAZIONI"
|
||||
BOOLEAN RADIO1
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 2 2 " Le seguenti dichiarazioni"
|
||||
MESSAGE TRUE ENABLE,DLG_SELECT_2|" ",RADIO2|" ",F_TUTTE|DISABLE,2@
|
||||
MESSAGE FALSE DISABLE,DLG_SELECT_2
|
||||
PROMPT 1 1 "Codice "
|
||||
USE LF_NDITTE SELECT LF_BASE->CODDITTA!=""
|
||||
JOIN LF_BASE INTO CODDITTA==CODDITTA
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
DISPLAY "Codice" CODDITTA
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGDITTA RAGSOC
|
||||
HELP "Codice della ditta da selezionare"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Manca la ditta"
|
||||
KEY 1
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BUTTON DLG_SELECT_2 25 1
|
||||
STRING F_RAGDITTA 50
|
||||
BEGIN
|
||||
PROMPT 38 2 "~Seleziona dichiarazioni"
|
||||
HELP "Indicare le dichiarazioni da selezionare per la stampa"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
// SEZIONE "SELEZIONE FRA LIMITI"
|
||||
BOOLEAN RADIO2
|
||||
BEGIN
|
||||
PROMPT 2 4 " Fra limiti di codici"
|
||||
MESSAGE TRUE ENABLE,2@|" ",RADIO1|" ",F_TUTTE|DISABLE,DLG_SELECT_2
|
||||
MESSAGE FALSE DISABLE,2@
|
||||
END
|
||||
|
||||
NUMBER DA_CODICE 6
|
||||
BEGIN
|
||||
PROMPT 38 4 "da "
|
||||
FLAGS "BD"
|
||||
HELP "Codice dichiarazione di inizio selezione"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
NUMBER A_CODICE 6
|
||||
BEGIN
|
||||
PROMPT 53 4 "a "
|
||||
FLAGS "BD"
|
||||
HELP "Codice ditta di fine selezione"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
// SEZIONE "SELEZIONE TUTTE"
|
||||
BOOLEAN F_TUTTE
|
||||
BEGIN
|
||||
PROMPT 2 6 " Tutte"
|
||||
MESSAGE TRUE " ",RADIO1|" ",RADIO2|DISABLE,DLG_SELECT_2|DISABLE,2@
|
||||
HELP "Seleziona tutte le dichiarazioni"
|
||||
END
|
||||
|
||||
STRING F_SELECT 5
|
||||
BEGIN
|
||||
PROMPT 2 8 "Dichiarazioni selezionate "
|
||||
FLAGS "DR"
|
||||
PROMPT 1 2 "Rag. Soc. "
|
||||
USE LF_NDITTE KEY 2 SELECT LF_BASE->CODDITTA!=""
|
||||
JOIN LF_BASE INTO CODDITTA==CODDITTA
|
||||
INPUT RAGSOC F_RAGDITTA
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODDITTA
|
||||
OUTPUT F_CODDITTA CODDITTA
|
||||
OUTPUT F_RAGDITTA RAGSOC
|
||||
HELP "Ragione sociale della ditta da selezionare"
|
||||
KEY 2
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
NUMBER F_ANNODIC 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Anno dichiarazione "
|
||||
PROMPT 1 4 "Anno dichiarazione "
|
||||
HELP "Anno dichiarazione"
|
||||
FLAGS "A"
|
||||
WARNING "Inserire l'anno"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON F_DICSEL 33 1
|
||||
BEGIN
|
||||
PROMPT 2 12 "~Elenco Dichiarazioni Selezionate"
|
||||
HELP "Visualizza le dichiarazioni selezionate"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON F_ANNULLA 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 "A~zzera"
|
||||
HELP "Annullare la selezione delle dichiarazioni"
|
||||
MESSAGE RESET,DA_CODICE|RESET,A_CODICE
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
END
|
||||
PROMPT -22 -1 "Fine"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -3,34 +3,21 @@ Caption = "Gestione percipienti"
|
||||
Picture = <7701.bmp>
|
||||
Module = 4
|
||||
Flags = ""
|
||||
Item_01 = "Immissione dichiarazione", "776mod -1", ""
|
||||
Item_02 = "Manutenzione dichiarazione", "776mod -0", ""
|
||||
Item_03 = "Selezione dichiarazione", "776mod -2", ""
|
||||
Item_04 = "Stampe", [PRASSI77_002]
|
||||
Item_05 = "Tabelle", [PRASSI77_003]
|
||||
Item_06 = "Generazione versamenti", "774 -0", ""
|
||||
Item_07 = "Azzeramento archivi", "774 -2 T", ""
|
||||
Item_08 = "Parametri di studio", "773mod -0", ""
|
||||
|
||||
|
||||
|
||||
[PRASSI77_003]
|
||||
Caption = "Tabelle"
|
||||
Picture = <7701.bmp>
|
||||
Module = 0
|
||||
Flags = ""
|
||||
Item_01 = "Tabella C.A.A.F.", "773mod -3 %caf", ""
|
||||
Item_02 = "Tabella causali", "773mod -3 %ca7", ""
|
||||
Item_03 = "Tabella enti previdenziali", "773mod -3 %ent", ""
|
||||
Item_01 = "Attivazione sostituto", "776mod -1", ""
|
||||
Item_02 = "Gestione percipienti", "776mod -0", ""
|
||||
Item_03 = "Stampe",[PRASSI77_002]
|
||||
Item_04 = "Tabella causali", "773mod -3 %ca7", ""
|
||||
Item_05 = "Azzeramento archivi", "774 -2 T", ""
|
||||
Item_06 = "Parametri di studio", "773mod -0", ""
|
||||
|
||||
[PRASSI77_002]
|
||||
Caption = "Stampe"
|
||||
Picture = <ba03.bmp>
|
||||
Module = 0
|
||||
Flags = ""
|
||||
Item_01 = "Selezione dichiarazione", "776mod -2", ""
|
||||
Item_01 = "Selezione stampa", "776mod -2", ""
|
||||
Item_02 = "Schede percipienti", "772mod -0 S", ""
|
||||
Item_03 = "Certificazioni", "772mod -1 S", ""
|
||||
Item_04 = "Lista movimenti percipienti", "772mod -2 S", ""
|
||||
Item_05 = "Menu stampe dichiarazioni", '773mod -1 menu_st "Stampe dichiarazioni"', ""
|
||||
|
||||
|
||||
|
117
m770/77sr.cpp
Executable file
117
m770/77sr.cpp
Executable file
@ -0,0 +1,117 @@
|
||||
// Applicazione generica di stampa riepiloghi SC|SF|SG|SH|SP|SQ|SL/SK
|
||||
// Invocazione astrale:
|
||||
|
||||
// 772mod -5 [SC|SF|SG|SH|SP|SQ|SL/SK]
|
||||
|
||||
#include <applicat.h>
|
||||
#include <form.h>
|
||||
#include <printer.h>
|
||||
#include "77lib.h"
|
||||
#include "77sr.h"
|
||||
|
||||
class TStampa_riepilogo : public TSkeleton_application
|
||||
{
|
||||
TForm *_frm;
|
||||
TMask *_msk;
|
||||
TString _titolo;
|
||||
TString16
|
||||
_riepilogo;
|
||||
long _currfirm; // Ditta corrente
|
||||
int _curryear; // Anno corrente
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
public:
|
||||
const TString& titolo() const { return _titolo; }
|
||||
TStampa_riepilogo(const char* riepilogo);
|
||||
virtual ~TStampa_riepilogo() {};
|
||||
};
|
||||
|
||||
TStampa_riepilogo::TStampa_riepilogo(const char * riepilogo)
|
||||
{
|
||||
_titolo = "Stampa riepilogo ";
|
||||
_riepilogo = riepilogo;
|
||||
_titolo << _riepilogo;
|
||||
}
|
||||
|
||||
bool TStampa_riepilogo::create()
|
||||
{
|
||||
TString form_name;
|
||||
|
||||
form_name = "77sr";
|
||||
if (_riepilogo == "SL/SK")
|
||||
form_name << "SL";
|
||||
else
|
||||
form_name << _riepilogo;
|
||||
form_name.lower();
|
||||
_frm = new TForm(form_name); // fatal_box automaGico se il form non esiste...
|
||||
_msk = new TMask("77sr"); // La maschera est unica.
|
||||
_msk->set_caption(titolo());
|
||||
{
|
||||
TConfig conf(CONFIG_USER, "77");
|
||||
_currfirm = conf.get_long(DITTA_770, "77");
|
||||
}
|
||||
{
|
||||
TConfig conf(CONFIG_STUDIO, "77");
|
||||
_curryear = conf.get_int(ANNO_SEL, "77");
|
||||
}
|
||||
_msk->set(F_CODICE,_currfirm);
|
||||
_msk->set(F_ANNO,_curryear);
|
||||
TLocalisamfile& ditte = _frm->cursor()->file(LF_NDITTE);
|
||||
ditte.put("CODDITTA",_currfirm);
|
||||
_msk->set(F_RAGIONE,ditte.read() == NOERR ? ditte.get("RAGSOC") : "Ditta inesistente");
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TStampa_riepilogo::destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _frm;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TStampa_riepilogo::main_loop()
|
||||
{
|
||||
while (_msk->run() != K_QUIT) // Visualizza la maschera ebbasta
|
||||
{
|
||||
// Setta il filtro del cursore sulla ditta
|
||||
//
|
||||
TCursor *cur = _frm->cursor();
|
||||
TRectype from(cur->curr());
|
||||
from.zero();
|
||||
from.put("CODDITTA",_currfirm);
|
||||
if (_riepilogo == "SL/SK")
|
||||
from.put("QLAP", _curryear); // E' necessario filtrare anche l'anno !?
|
||||
TRectype to(from);
|
||||
cur->setregion(from, to);
|
||||
|
||||
const int hh = 6;
|
||||
const int fl = printer().formlen();
|
||||
int rows[4];
|
||||
rows[0] = hh-2;
|
||||
rows[1] = hh;
|
||||
rows[2] = fl-1;
|
||||
rows[3] = 0;
|
||||
_frm->genera_intestazioni(odd_page, hh-1);
|
||||
_frm->genera_fincatura(odd_page, hh-2, fl-1, rows);
|
||||
|
||||
if (cur->items() > 0)
|
||||
_frm->print();
|
||||
}
|
||||
}
|
||||
|
||||
int stampa_riepilogo(int argc, char* argv[])
|
||||
{
|
||||
// Bzz:
|
||||
// Di default sulla linea di comando passa il riepilogo SC
|
||||
// anche se non viene passato niun parametro.
|
||||
|
||||
TStampa_riepilogo* app = new TStampa_riepilogo(argc > 2 ? argv[2] : "SC");
|
||||
|
||||
app->run(argc, argv, app->titolo());
|
||||
delete app;
|
||||
return 0;
|
||||
}
|
||||
|
6
m770/77sr.h
Executable file
6
m770/77sr.h
Executable file
@ -0,0 +1,6 @@
|
||||
|
||||
|
||||
#define F_CODICE 102
|
||||
#define F_RAGIONE 103
|
||||
#define F_ANNO 104
|
||||
|
41
m770/77sr.uml
Executable file
41
m770/77sr.uml
Executable file
@ -0,0 +1,41 @@
|
||||
#include "77sr.h"
|
||||
|
||||
PAGE "" -1 -1 76 8
|
||||
|
||||
NUMBER F_CODICE 5
|
||||
BEGIN
|
||||
PROMPT 2 2 "Cod.Ditta "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_RAGIONE 50
|
||||
BEGIN
|
||||
PROMPT 19 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "Anno dich."
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_PRINT 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 "~Stampa"
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 "Fine"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
|
||||
|
||||
|
||||
|
201
m770/77srsc.frm
Executable file
201
m770/77srsc.frm
Executable file
@ -0,0 +1,201 @@
|
||||
USE 61
|
||||
JOIN %CA7 TO 61 ALIAS 14 INTO CODTAB=CODCAUS
|
||||
JOIN 9 INTO CODDITTA=CODDITTA
|
||||
JOIN 6 TO 9 ALIAS 116 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 13 TO 218@ ALIAS 313 INTO STATO=="" COM==COMNASC
|
||||
JOIN 13 TO 216@ ALIAS 413 INTO STATO==STATORES COM==COMRES
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
61->* "Riepilogo SC"
|
||||
9->* "Ditte"
|
||||
6->* "Anagrafica persone fisiche e giuridiche"
|
||||
8->* "Anagrafica persone fisiche"
|
||||
216@->* "Anagrafica persone fisiche e giuridiche"
|
||||
218@->* "Anagrafica persone fisiche"
|
||||
313@->* "Comuni"
|
||||
413@->* "Comuni"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
KEY "nome ditta"
|
||||
PROMPT 1 1 "Ditta: "
|
||||
FIELD 9->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 10
|
||||
BEGIN
|
||||
KEY "Data"
|
||||
PROMPT 106 1 "Data "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 122 1 "Pagina "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
NUMERO 4 40
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 55 2 "Stampa riepilogo SC"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
SECTION BODY ODD 2 COLUMNWISE
|
||||
|
||||
STRING 1 50
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Ragione Sociale" "Ragione Sociale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Ragione Sociale"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 216@->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 5
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Caus." "Caus."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "CAUSALE riepilogo SC"
|
||||
PROMPT 2 1 ""
|
||||
FIELD CAUSALE
|
||||
END
|
||||
|
||||
STRING 3 5
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Tass." "Tass."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "FLAG TASSAZIONE SEPARATA"
|
||||
PROMPT 3 1 ""
|
||||
FIELD TASSAZIONE
|
||||
END
|
||||
|
||||
NUMBER 4 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CAmm. lordo" "Amm. lordo"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "AMMONTARE LORDO CORRISPOSTO"
|
||||
PROMPT 4 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD AMMLORDO
|
||||
END
|
||||
|
||||
NUMBER 5 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CContributi" "Contributi"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "CONTRIBUTI OBBLIGATORI"
|
||||
PROMPT 5 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD CONTROBB
|
||||
END
|
||||
|
||||
NUMBER 6 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Somme non sogg" "Somme non sogg"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "SOMME NON SOGGETTE A RITENUTA"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD SOMNONSOGG
|
||||
END
|
||||
|
||||
NUMBER 7 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CImponibile" "Imponibile"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPONIBILE"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD IMPONIBILE
|
||||
END
|
||||
|
||||
NUMBER 8 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CImposta" "Imposta"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPOSTA"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD IMPOSTA
|
||||
END
|
||||
|
||||
NUMBER 9 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CDetr. fam." "Detr. fam."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "DETRAZIONI PER CARICHI DI FAMIGLIA"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD DETCARFAM
|
||||
END
|
||||
|
||||
NUMBER 10 6
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Gg.det" "Gg.det"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "NUMERO GIORNI DETRAZIONI PER LAVORO DIPENDENTE"
|
||||
PROMPT 10 1 ""
|
||||
FIELD GGLAVDIP
|
||||
END
|
||||
|
||||
NUMBER 11 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CDetr. lav." "Detr. lav."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "DETRAZIONI PER LAVORO DIPENDENTE"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD DETLAVDIP
|
||||
END
|
||||
|
||||
NUMBER 12 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CTot. detr." "Tot. detr."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "TOTALE DETRAZIONI"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD TOTDET
|
||||
END
|
||||
|
||||
NUMBER 13 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Ritenute" "Ritenute"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RITENUTE OPERATE"
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "###.###.###^^^"
|
||||
FIELD RITENUTE
|
||||
END
|
||||
|
||||
END
|
||||
|
141
m770/77srsf.frm
Executable file
141
m770/77srsf.frm
Executable file
@ -0,0 +1,141 @@
|
||||
USE 62
|
||||
JOIN 9 INTO CODDITTA=CODDITTA
|
||||
JOIN 6 TO 9 ALIAS 206 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 6 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
|
||||
JOIN 13 TO 218@ ALIAS 313 INTO STATO=="" COM==COMNASC
|
||||
JOIN 13 TO 216@ ALIAS 413 INTO STATO==STATORES COM==COMRES
|
||||
JOIN 13 TO 216@ ALIAS 513 INTO STATO=="" COM==COMRF
|
||||
JOIN %STA TO 216@ ALIAS 104 INTO CODTAB=STATORES
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
62->* "Quadro D 770"
|
||||
9->* "Ditte"
|
||||
6->* "Anagrafica persone fisiche e giuridiche"
|
||||
8->* "Anagrafica persone fisiche"
|
||||
206@->* "Anagrafica persone fisiche e giuridiche"
|
||||
216@->* "Anagrafica persone fisiche e giuridiche"
|
||||
218@->* "Anagrafica persone fisiche"
|
||||
313@->* "Comune nascita"
|
||||
413@->* "Comune residenza"
|
||||
513@->* "Comune residenza fiscale"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
END
|
||||
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
KEY "nome ditta"
|
||||
PROMPT 1 1 "Ditta: "
|
||||
FIELD 9->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 10
|
||||
BEGIN
|
||||
KEY "Data"
|
||||
PROMPT 106 1 "Data "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 122 1 "Pagina "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
NUMERO 4 40
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 55 2 "Stampa riepilogo SF"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
SECTION BODY ODD 2 COLUMWISE
|
||||
|
||||
STRINGA 1 50
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Ragione Sociale" "Ragione Sociale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RAGSOC GIURIDICHE"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 216@->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 15
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cCausale" "Causale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "CAUSALE"
|
||||
PROMPT 2 1 ""
|
||||
FIELD CAUSALE
|
||||
END
|
||||
|
||||
NUMBER 3 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cTotale" "Tot."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "TOTALE"
|
||||
PROMPT 3 1 ""
|
||||
FIELD TOTALE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 4 15
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Somme non sogg." "Somme non sogg."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "SOMME NON SOGGETTE A RITENUTA"
|
||||
PROMPT 4 1 ""
|
||||
FIELD SOMME
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 5 15
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Som. Reg. Conv." "Som. Reg. Conv"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "SOMREGCONV"
|
||||
PROMPT 5 1 ""
|
||||
FIELD SOMREGCONV
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 6 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cImponibile" "Imponibile"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPONIBILE"
|
||||
PROMPT 6 1 ""
|
||||
FIELD IMPONIBILE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 7 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cImporto" "Importo"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPORTO"
|
||||
PROMPT 7 1 ""
|
||||
FIELD IMPORTO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
END
|
||||
|
153
m770/77srsg.frm
Executable file
153
m770/77srsg.frm
Executable file
@ -0,0 +1,153 @@
|
||||
USE 120
|
||||
JOIN 9 INTO CODDITTA=CODDITTA
|
||||
JOIN 6 TO 9 ALIAS 106 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 6 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
|
||||
JOIN 13 TO 218@ ALIAS 313 INTO STATO=="" COM==COMNASC
|
||||
JOIN 13 TO 216@ ALIAS 413 INTO STATO==STATORES COM==COMRES
|
||||
JOIN 13 TO 216@ ALIAS 513 INTO STATO=="" COM==COMRF
|
||||
JOIN %STA TO 216@ ALIAS 104 INTO CODTAB=STATORES
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
120->* "Quadro D bis 770"
|
||||
9->* "Ditte"
|
||||
6->* "Anagrafica persone fisiche e giuridiche"
|
||||
8->* "Anagrafica persone fisiche"
|
||||
216@->* "Anagrafica persone fisiche e giuridiche"
|
||||
218@->* "Anagrafica persone fisiche (percipiente)"
|
||||
313@->* "Comune nascita"
|
||||
413@->* "Comune residenza"
|
||||
513@->* "Comune residenza fiscale"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
KEY "nome ditta"
|
||||
PROMPT 1 1 "Ditta: "
|
||||
FIELD 9->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 10
|
||||
BEGIN
|
||||
KEY "Data"
|
||||
PROMPT 106 1 "Data "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 122 1 "Pagina "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
NUMERO 4 40
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 55 2 "Stampa riepilogo SG"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
SECTION BODY ODD 2 COLUMNWISE
|
||||
|
||||
STRINGA 1 50
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Ragione Sociale" "Ragione Sociale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RAGSOC GIURIDICHE"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 216@->RAGSOC
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRINGA 2 5
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Caus." "Caus."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "CAUSALE"
|
||||
PROMPT 2 1 ""
|
||||
FIELD CAUSALE
|
||||
END
|
||||
|
||||
NUMERO 3 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CTotale" "Totale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "TOTALE"
|
||||
PROMPT 3 1 ""
|
||||
FIELD TOTALE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 4 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Somm. non sogg. iva" "Somm. non sogg. iva"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "SOMME NON SOGGETTE A RITENUTA"
|
||||
PROMPT 4 1 ""
|
||||
FIELD SOMME
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 5 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Somm. reg. conv." "Som. reg.conv."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "SOMREGCONV"
|
||||
PROMPT 5 1 ""
|
||||
FIELD SOMREGCONV
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 6 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CImponibile" "Imponibile"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPONIBILE"
|
||||
PROMPT 6 1 ""
|
||||
FIELD IMPONIBILE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 7 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CImporto" "Importo"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPORTO"
|
||||
PROMPT 7 1 ""
|
||||
FIELD IMPORTO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
STRINGA 8 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Contributo 10%" "Contributo 10%"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Contributo del 10%"
|
||||
PROMPT 8 1 ""
|
||||
FIELD CONTR10
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
|
138
m770/77srsh.frm
Executable file
138
m770/77srsh.frm
Executable file
@ -0,0 +1,138 @@
|
||||
USE 63
|
||||
JOIN 9 INTO CODDITTA=CODDITTA
|
||||
JOIN 6 TO 9 ALIAS 106 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 6 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
|
||||
JOIN 13 TO 218@ ALIAS 313 INTO STATO=="" COM==COMNASC
|
||||
JOIN 13 TO 216@ ALIAS 413 INTO STATO==STATORES COM==COMRES
|
||||
JOIN 13 TO 216@ ALIAS 513 INTO STATO=="" COM==COMRF
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
63->* "Quadro D1 770"
|
||||
9->* "Ditte"
|
||||
6->* "Anagrafica persone fisiche e giuridiche"
|
||||
8->* "Anagrafica persone fisiche"
|
||||
216@->* "Anagrafica persone fisiche e giuridiche"
|
||||
218@->* "Anagrafica persone fisiche"
|
||||
313@->* "Comune nascita"
|
||||
413@->* "Comune residenza"
|
||||
513@->* "Comune residenza fiscale"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
KEY "nome ditta"
|
||||
PROMPT 1 1 "Ditta: "
|
||||
FIELD 9->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 10
|
||||
BEGIN
|
||||
KEY "Data"
|
||||
PROMPT 106 1 "Data "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 122 1 "Pagina "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
NUMERO 4 40
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 55 2 "Stampa riepilogo SH"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
SECTION BODY ODD 2 COLUMNWISE
|
||||
|
||||
STRINGA 1 50
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Ragione sociale" "Ragione sociale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RAGSOC GIURIDICHE"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 216@->RAGSOC
|
||||
END
|
||||
|
||||
STRING 2 5
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Caus." "Caus."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "CAUSALE"
|
||||
PROMPT 2 1 ""
|
||||
FIELD CAUSALE
|
||||
END
|
||||
|
||||
NUMBER 3 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CTotale" "Totale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "TOTALE"
|
||||
PROMPT 3 1 ""
|
||||
FIELD TOTALE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 4 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Spes. Ant." "Spes. Ant."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "SPESE ANTICIPATE"
|
||||
PROMPT 4 1 ""
|
||||
FIELD SPESEANT
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 5 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Quaota Provv." "quaota Provv."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "QUOTA PROVVIGIONI"
|
||||
PROMPT 5 1 ""
|
||||
FIELD QUOTAPRO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 6 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CImponibile" "Imponibile"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPONIBILE"
|
||||
PROMPT 6 1 ""
|
||||
FIELD IMPONIBILE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 7 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Rit. Op." "Rit. Op."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RITENUTE OPERATE"
|
||||
PROMPT 7 1 ""
|
||||
FIELD IMPORTO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
END
|
||||
|
198
m770/77srsl.frm
Executable file
198
m770/77srsl.frm
Executable file
@ -0,0 +1,198 @@
|
||||
USE 42
|
||||
JOIN 9 INTO CODDITTA=CODDITTA
|
||||
JOIN 6 TO 9 ALIAS 106 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
42->* "Quadro L"
|
||||
9->* "Anagrafica ditte"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
KEY "nome ditta"
|
||||
PROMPT 1 1 "Ditta: "
|
||||
FIELD 9->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 10
|
||||
BEGIN
|
||||
KEY "Data"
|
||||
PROMPT 106 1 "Data "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 122 1 "Pagina "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
NUMERO 4 40
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 55 2 "Stampa riepilogo SL/SK"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
SECTION BODY ODD 2 COLUMNWISE
|
||||
|
||||
DATA 1 12
|
||||
BEGIN
|
||||
KEY "Data versamento"
|
||||
SPECIAL STRINGA INTESTAZIONE "@cData ver." "Data ver."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 42->QLDV
|
||||
END
|
||||
|
||||
LISTA 2 10
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cMese rif." "Mese rif."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Mese rif."
|
||||
PROMPT 2 1 ""
|
||||
FIELD 42->QLMP
|
||||
ITEM " | "
|
||||
ITEM "1|Gennaio"
|
||||
ITEM "2|Febbraio"
|
||||
ITEM "3|Marzo"
|
||||
ITEM "4|Aprile"
|
||||
ITEM "5|Maggio"
|
||||
ITEM "6|Giugno"
|
||||
ITEM "7|Luglio"
|
||||
ITEM "8|Agosto"
|
||||
ITEM "9|Settembre"
|
||||
ITEM "10|Ottobre"
|
||||
ITEM "11|Novembre"
|
||||
ITEM "12|Dicembre"
|
||||
END
|
||||
|
||||
LISTA 3 11
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cLuogo ver." "Luogo ver."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Luogo Versamento"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 42->QLLV
|
||||
ITEM " | "
|
||||
ITEM "C|Concessione"
|
||||
ITEM "T|Tesoreria"
|
||||
END
|
||||
|
||||
LISTA 4 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cTipo ver." "Tipo ver."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Tipo versamento"
|
||||
PROMPT 4 1 ""
|
||||
FIELD 42->QLTV
|
||||
ITEM " | "
|
||||
ITEM "B|Del. bancaria"
|
||||
ITEM "C|C/C postale"
|
||||
ITEM "D|Distinta"
|
||||
END
|
||||
|
||||
NUMERO 5 7
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cCod. T." "Cod. T."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Codice tributo"
|
||||
PROMPT 5 1 ""
|
||||
FIELD 42->QLCT
|
||||
END
|
||||
|
||||
NUMERO 6 9
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cArt. Bil." "Art. Bil."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Articolo di bilancio"
|
||||
PROMPT 6 1 ""
|
||||
FIELD 42->QLAB
|
||||
END
|
||||
|
||||
STRINGA 7 7
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cCod. q." "Cod. q."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Codice quadro"
|
||||
PROMPT 7 1 ""
|
||||
FIELD 42->QLCODQUA
|
||||
END
|
||||
|
||||
STRINGA 8 5
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cSerie" "Serie"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "SERIE"
|
||||
PROMPT 8 1 ""
|
||||
FIELD 42->QLSERIE
|
||||
END
|
||||
|
||||
NUMERO 9 15
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cRit. effettuate" "Rit. effettuate"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Ritenute effettuate"
|
||||
PROMPT 9 1 ""
|
||||
FIELD 42->QLRITEFF
|
||||
PICTURE "###.###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 10 15
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cImp. Versato" "Imp. Versato"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Importo versato"
|
||||
PROMPT 10 1 ""
|
||||
FIELD 42->QLRITVER
|
||||
PICTURE "###.###.###.###^^^"
|
||||
END
|
||||
|
||||
LISTA 11 3
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cRSS" "RSS"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RSS"
|
||||
PROMPT 11 1 ""
|
||||
ITEM " | "
|
||||
ITEM "1|VA"
|
||||
ITEM "2|SA"
|
||||
ITEM "3|SI"
|
||||
FIELD 42->QLRSS
|
||||
END
|
||||
|
||||
STRINGA 12 7
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@cNote" "Note"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Note"
|
||||
PROMPT 12 1 ""
|
||||
FIELD 42->QLNOTE
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
|
141
m770/77srsp.frm
Executable file
141
m770/77srsp.frm
Executable file
@ -0,0 +1,141 @@
|
||||
USE 64
|
||||
JOIN 9 INTO CODDITTA=CODDITTA
|
||||
JOIN 6 TO 9 ALIAS 106 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 6 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
|
||||
JOIN 13 TO 218@ ALIAS 313 INTO STATO=="" COM==COMNASC
|
||||
JOIN 13 TO 216@ ALIAS 413 INTO STATO==STATORES COM==COMRES
|
||||
JOIN 13 TO 216@ ALIAS 513 INTO STATO=="" COM==COMRF
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
64->* "Quadro E 770"
|
||||
9->* "Ditte"
|
||||
6->* "Anagrafica persone fisiche e giuridiche"
|
||||
8->* "Anagrafica persone fisiche"
|
||||
216@->* "Anagrafica persone fisiche e giuridiche"
|
||||
218@->* "Anagrafica persone fisiche"
|
||||
313@->* "Comune nascita"
|
||||
413@->* "Comune residenza"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
KEY "nome ditta"
|
||||
PROMPT 1 1 "Ditta: "
|
||||
FIELD 9->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 10
|
||||
BEGIN
|
||||
KEY "Data"
|
||||
PROMPT 106 1 "Data "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 122 1 "Pagina "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
NUMERO 4 40
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 55 2 "Stampa riepilogo SP"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
SECTION BODY ODD 2 COLUMNWISE
|
||||
|
||||
STRINGA 1 50
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CRagione Sociale" "Ragione Sociale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RAGSOC GIURIDICHE"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 216@->RAGSOC
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING 2 5
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Caus." "Caus."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "CAUSALE"
|
||||
PROMPT 2 1 ""
|
||||
FIELD CAUSALE
|
||||
END
|
||||
|
||||
NUMBER 3 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CImponibile" "Imponibile"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPONIBILE"
|
||||
PROMPT 3 1 ""
|
||||
FIELD IMPONIBILE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 4 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CAliquota" "Aliquota"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "ALIQUOTA"
|
||||
PROMPT 4 1 ""
|
||||
FIELD PERC
|
||||
PICTURE "##@,@@"
|
||||
END
|
||||
|
||||
NUMBER 5 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CImporto" "Importo"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPORTO"
|
||||
PROMPT 5 1 ""
|
||||
FIELD IMPORTO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 6 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CNetto" "Netto"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "NETTO"
|
||||
PROMPT 6 1 ""
|
||||
FIELD NETTO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 7 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CSomme" "Somme"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "SOMME"
|
||||
PROMPT 7 1 ""
|
||||
FIELD SOMME
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
|
185
m770/77srsq.frm
Executable file
185
m770/77srsq.frm
Executable file
@ -0,0 +1,185 @@
|
||||
USE 65
|
||||
JOIN 9 INTO CODDITTA=CODDITTA
|
||||
JOIN 6 TO 9 ALIAS 106 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 6 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR
|
||||
JOIN 13 TO 218@ ALIAS 313 INTO STATO=="" COM==COMNASC
|
||||
JOIN 13 TO 216@ ALIAS 413 INTO STATO==STATORES COM==COMRES
|
||||
JOIN 13 TO 216@ ALIAS 513 INTO STATO=="" COM==COMRF
|
||||
JOIN 89 ALIAS 189 INTO CODDITTA==CODDITTA CODCAUS=="C"
|
||||
JOIN 89 ALIAS 289 INTO CODDITTA==CODDITTA CODCAUS=="D"
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
65->* "Quadro E1 770"
|
||||
9->* "Ditte"
|
||||
6->* "Anagrafica persone fisiche e giuridiche"
|
||||
8->* "Anagrafica persone fisiche"
|
||||
216@->* "Anagrafica persone fisiche e giuridiche"
|
||||
218@->* "Anagrafica persone fisiche"
|
||||
313@->* "Comune nascita"
|
||||
413@->* "Comune residenza"
|
||||
189->* "Riga 1 del prospetto e1"
|
||||
289->* "Riga 2 del prospetto e1"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
KEY "nome ditta"
|
||||
PROMPT 1 1 "Ditta: "
|
||||
FIELD 9->RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 10
|
||||
BEGIN
|
||||
KEY "Data"
|
||||
PROMPT 106 1 "Data "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 122 1 "Pagina "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
NUMERO 4 40
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 55 2 "Stampa riepilogo SQ"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
SECTION BODY ODD 2 COLUMNWISE
|
||||
|
||||
STRINGA 1 50
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CRagione Sociale" "Ragione Sociale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RAGSOC GIURIDICHE"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 216@->RAGSOC
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING 2 5
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@Caus." "Caus."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "CAUSALE"
|
||||
PROMPT 2 1 ""
|
||||
FIELD CAUSALE
|
||||
END
|
||||
|
||||
NUMBER 3 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CSomme" "Somme"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Somme"
|
||||
PROMPT 3 1 ""
|
||||
FIELD SOMME
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 4 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CAmmontare" "Ammontare"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Ammontare"
|
||||
PROMPT 4 1 ""
|
||||
FIELD AMMONTARE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 5 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Ragione Sociale" "Ragione Sociale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "ALIQUOTA"
|
||||
PROMPT 5 1 ""
|
||||
FIELD PERC
|
||||
PICTURE "##@,@@"
|
||||
END
|
||||
|
||||
NUMBER 6 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CImporto" "Importo"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Importo"
|
||||
PROMPT 6 1 ""
|
||||
FIELD IMPORTO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMBER 7 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CNetto" "Netto"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "Netto"
|
||||
PROMPT 7 1 ""
|
||||
FIELD NETTO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 8 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "@CAmm. Compl." "Amm. Compl."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "AMMONTARE COMPLESSIVO"
|
||||
PROMPT 8 1 ""
|
||||
FIELD 189@->COMPENSO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 9 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Imponibile" "Imponibile"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "IMPONIBILE"
|
||||
PROMPT 9 1 ""
|
||||
FIELD 189@->IMPONIBILE
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 10 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Rit. Op." "Rit. Op."
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "RITENUTE OPERATE"
|
||||
PROMPT 10 1 ""
|
||||
FIELD 189@->RITENUTA
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
NUMERO 11 14
|
||||
BEGIN
|
||||
SPECIAL STRINGA INTESTAZIONE "Ragione Sociale" "Ragione Sociale"
|
||||
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
|
||||
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
|
||||
KEY "AMMONTARE COMPLESSIVO"
|
||||
PROMPT 11 1 ""
|
||||
FIELD 289@->COMPENSO
|
||||
PICTURE "###.###.###^^^"
|
||||
END
|
||||
|
||||
END
|
@ -1,181 +1,181 @@
|
||||
#include "resetfil.h"
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TResetfile
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
TResetfile::TResetfile(int logicnum, bool remove)
|
||||
: _file_num(logicnum), _removerec(remove),
|
||||
_validate_record_function(NULL),
|
||||
_validate_field_function(NULL),
|
||||
_before_reset_function(NULL),
|
||||
_after_reset_function(NULL),
|
||||
_is_reseted(FALSE)
|
||||
{
|
||||
// oggetto file da azzerare
|
||||
_file = new TSystemisamfile(_file_num);
|
||||
}
|
||||
|
||||
TResetfile::~TResetfile()
|
||||
{
|
||||
// pack file se richiesto rimozione record
|
||||
// e file azzerato
|
||||
if(_removerec && _is_reseted)
|
||||
_file->pack();
|
||||
|
||||
delete _file;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
// @mfunc ritorna se il campo <p fd> è un campo chiave
|
||||
bool TResetfile::iskeyfield(const RecDes& recd, const int fd) const
|
||||
{
|
||||
// inizializzo risultato da restituire
|
||||
bool found = FALSE;
|
||||
|
||||
// loop di scansione delle chiavi del file
|
||||
for (int i = 0; i < recd.NKeys && !found; i++)
|
||||
{
|
||||
|
||||
// Elenco dei campi della chiave
|
||||
const KeyDes& keyd = recd.Ky[i];
|
||||
|
||||
// loop di scansione dei campi della chiave
|
||||
for (int j = 0; j < keyd.NkFields && !found; j++)
|
||||
if (fd == keyd.FieldSeq[j] % MaxFields)
|
||||
found = TRUE;
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
// @mfunc carica l'array <p resetable_fields> con i campi da azzerare
|
||||
// @rfunc ritorna il numero di campi caricati
|
||||
int TResetfile::load_resetable_fields(const RecDes& recd,
|
||||
TString_array& resetable_fields)
|
||||
{
|
||||
// inizializzo numero campi da restituire
|
||||
int numfld = 0;
|
||||
|
||||
for (int i = 0; i < recd.NFields; i++)
|
||||
{
|
||||
// non azzero i campi chiave
|
||||
if (iskeyfield(recd, i))
|
||||
continue;
|
||||
|
||||
// Descrittore campo
|
||||
RecFieldDes& fieldd = recd.Fd[i];
|
||||
|
||||
// non azzero i campi indefiniti
|
||||
if (fieldd.TypeF == _nullfld)
|
||||
continue;
|
||||
|
||||
// aggiungo campo da azzerare all'array
|
||||
resetable_fields.add(fieldd.Name,numfld++);
|
||||
}
|
||||
|
||||
return numfld;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @mfunc esegue l'azzeramento del file
|
||||
// @rfunc ritorna il codice errore relativo ad operazioni sul file
|
||||
int TResetfile::run()
|
||||
{
|
||||
// codice errore
|
||||
int err;
|
||||
|
||||
// numero campi da azzerare
|
||||
int num_resetable_fields;
|
||||
|
||||
// Apertura file con bloccaggio
|
||||
err = _file->open(_excllock);
|
||||
if (err != NOERR)
|
||||
return err;
|
||||
|
||||
// riferimento a record corrente
|
||||
TRectype& rec = _file->curr();
|
||||
|
||||
// Descrittore record
|
||||
const RecDes* recd = rec.rec_des();
|
||||
|
||||
// array dei campi da azzerare
|
||||
TString_array resetable_fields(recd->NFields);
|
||||
|
||||
// riempimento array dei campi da azzerare
|
||||
if (!_removerec)
|
||||
num_resetable_fields = load_resetable_fields(*recd, resetable_fields);
|
||||
|
||||
// reperimento nome file file
|
||||
const char* desfile = _file->description();
|
||||
|
||||
// composizione testo per indicatore progressivo
|
||||
TString testo;
|
||||
testo.format("Azzeramento %s", desfile);
|
||||
|
||||
// inizializzazione indice massimo e parziale per indicatore progressivo
|
||||
const long pmax = _file->items();
|
||||
long pi = 0L;
|
||||
|
||||
// istanza indicatore progressivo per avanzamento azzeramento
|
||||
TProgind p(pmax, testo, FALSE, TRUE);
|
||||
|
||||
// loop di scansione file da azzerare
|
||||
for (err = _file->first(); err == NOERR; err = _file->next())
|
||||
{
|
||||
// incremento indicatore progressivo
|
||||
p.addstatus(1);
|
||||
pi++;
|
||||
|
||||
// richiamo handler VALIDATE_RECORD
|
||||
if (_validate_record_function)
|
||||
if (!_validate_record_function(rec))
|
||||
continue;
|
||||
|
||||
// richiamo handler BEFORE_RESET
|
||||
if (_before_reset_function)
|
||||
_before_reset_function(rec);
|
||||
|
||||
// rimozione del record
|
||||
if(_removerec)
|
||||
_file->remove();
|
||||
|
||||
// azzeramento del record
|
||||
else
|
||||
{
|
||||
// loop di scansione campi da azzerare
|
||||
for (int i = 0; i < num_resetable_fields; i++)
|
||||
{
|
||||
// richiamo handler VALIDATE_FIELD
|
||||
if (_validate_field_function)
|
||||
if (!_validate_field_function(rec, resetable_fields.row(i)))
|
||||
continue;
|
||||
|
||||
// azzeramento campi
|
||||
rec.zero(resetable_fields.row(i));
|
||||
}
|
||||
}
|
||||
|
||||
// richiamo handler AFTER_RESET
|
||||
if (_after_reset_function)
|
||||
_after_reset_function(rec);
|
||||
|
||||
// registrazione record
|
||||
if(!_removerec)
|
||||
_file->rewrite();
|
||||
}
|
||||
|
||||
// rabbocco indicatore progressivo
|
||||
p.addstatus(pmax-pi);
|
||||
|
||||
// chiusura file
|
||||
_file->close();
|
||||
|
||||
// file azzerato
|
||||
_is_reseted = TRUE;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
#include "resetfil.h"
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TResetfile
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
TResetfile::TResetfile(int logicnum, bool remove)
|
||||
: _file_num(logicnum), _removerec(remove),
|
||||
_validate_record_function(NULL),
|
||||
_validate_field_function(NULL),
|
||||
_before_reset_function(NULL),
|
||||
_after_reset_function(NULL),
|
||||
_is_reseted(FALSE)
|
||||
{
|
||||
// oggetto file da azzerare
|
||||
_file = new TSystemisamfile(_file_num);
|
||||
}
|
||||
|
||||
TResetfile::~TResetfile()
|
||||
{
|
||||
// pack file se richiesto rimozione record
|
||||
// e file azzerato
|
||||
if(_removerec && _is_reseted)
|
||||
_file->pack(FALSE);
|
||||
|
||||
delete _file;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
// @mfunc ritorna se il campo <p fd> è un campo chiave
|
||||
bool TResetfile::iskeyfield(const RecDes& recd, const int fd) const
|
||||
{
|
||||
// inizializzo risultato da restituire
|
||||
bool found = FALSE;
|
||||
|
||||
// loop di scansione delle chiavi del file
|
||||
for (int i = 0; i < recd.NKeys && !found; i++)
|
||||
{
|
||||
|
||||
// Elenco dei campi della chiave
|
||||
const KeyDes& keyd = recd.Ky[i];
|
||||
|
||||
// loop di scansione dei campi della chiave
|
||||
for (int j = 0; j < keyd.NkFields && !found; j++)
|
||||
if (fd == keyd.FieldSeq[j] % MaxFields)
|
||||
found = TRUE;
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
// @mfunc carica l'array <p resetable_fields> con i campi da azzerare
|
||||
// @rfunc ritorna il numero di campi caricati
|
||||
int TResetfile::load_resetable_fields(const RecDes& recd,
|
||||
TString_array& resetable_fields)
|
||||
{
|
||||
// inizializzo numero campi da restituire
|
||||
int numfld = 0;
|
||||
|
||||
for (int i = 0; i < recd.NFields; i++)
|
||||
{
|
||||
// non azzero i campi chiave
|
||||
if (iskeyfield(recd, i))
|
||||
continue;
|
||||
|
||||
// Descrittore campo
|
||||
RecFieldDes& fieldd = recd.Fd[i];
|
||||
|
||||
// non azzero i campi indefiniti
|
||||
if (fieldd.TypeF == _nullfld)
|
||||
continue;
|
||||
|
||||
// aggiungo campo da azzerare all'array
|
||||
resetable_fields.add(fieldd.Name,numfld++);
|
||||
}
|
||||
|
||||
return numfld;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @mfunc esegue l'azzeramento del file
|
||||
// @rfunc ritorna il codice errore relativo ad operazioni sul file
|
||||
int TResetfile::run()
|
||||
{
|
||||
// codice errore
|
||||
int err;
|
||||
|
||||
// numero campi da azzerare
|
||||
int num_resetable_fields;
|
||||
|
||||
// Apertura file con bloccaggio
|
||||
err = _file->open(_excllock);
|
||||
if (err != NOERR)
|
||||
return err;
|
||||
|
||||
// riferimento a record corrente
|
||||
TRectype& rec = _file->curr();
|
||||
|
||||
// Descrittore record
|
||||
const RecDes* recd = rec.rec_des();
|
||||
|
||||
// array dei campi da azzerare
|
||||
TString_array resetable_fields(recd->NFields);
|
||||
|
||||
// riempimento array dei campi da azzerare
|
||||
if (!_removerec)
|
||||
num_resetable_fields = load_resetable_fields(*recd, resetable_fields);
|
||||
|
||||
// reperimento nome file file
|
||||
const char* desfile = _file->description();
|
||||
|
||||
// composizione testo per indicatore progressivo
|
||||
TString testo;
|
||||
testo.format("Azzeramento %s", desfile);
|
||||
|
||||
// inizializzazione indice massimo e parziale per indicatore progressivo
|
||||
const long pmax = _file->items();
|
||||
long pi = 0L;
|
||||
|
||||
// istanza indicatore progressivo per avanzamento azzeramento
|
||||
//TProgind p(pmax, testo, FALSE, TRUE);
|
||||
|
||||
// loop di scansione file da azzerare
|
||||
for (err = _file->first(); err == NOERR; err = _file->next())
|
||||
{
|
||||
// incremento indicatore progressivo
|
||||
//p.addstatus(1);
|
||||
pi++;
|
||||
|
||||
// richiamo handler VALIDATE_RECORD
|
||||
if (_validate_record_function)
|
||||
if (!_validate_record_function(rec))
|
||||
continue;
|
||||
|
||||
// richiamo handler BEFORE_RESET
|
||||
if (_before_reset_function)
|
||||
_before_reset_function(rec);
|
||||
|
||||
// rimozione del record
|
||||
if(_removerec)
|
||||
_file->remove();
|
||||
|
||||
// azzeramento del record
|
||||
else
|
||||
{
|
||||
// loop di scansione campi da azzerare
|
||||
for (int i = 0; i < num_resetable_fields; i++)
|
||||
{
|
||||
// richiamo handler VALIDATE_FIELD
|
||||
if (_validate_field_function)
|
||||
if (!_validate_field_function(rec, resetable_fields.row(i)))
|
||||
continue;
|
||||
|
||||
// azzeramento campi
|
||||
rec.zero(resetable_fields.row(i));
|
||||
}
|
||||
}
|
||||
|
||||
// richiamo handler AFTER_RESET
|
||||
if (_after_reset_function)
|
||||
_after_reset_function(rec);
|
||||
|
||||
// registrazione record
|
||||
if(!_removerec)
|
||||
_file->rewrite();
|
||||
}
|
||||
|
||||
// rabbocco indicatore progressivo
|
||||
//p.addstatus(pmax-pi);
|
||||
|
||||
// chiusura file
|
||||
_file->close();
|
||||
|
||||
// file azzerato
|
||||
_is_reseted = TRUE;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
162
m770/resetfil.h
162
m770/resetfil.h
@ -1,81 +1,81 @@
|
||||
#ifndef __RESETFIL_H
|
||||
#define __RESETFIL_H
|
||||
|
||||
#ifndef __ISAM_H
|
||||
#include <isam.h>
|
||||
#include <progind.h>
|
||||
#endif
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TResetfile
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type VALIDATE_RECORD | Prototipo funzione per validare se un record e' da azzerare.
|
||||
typedef bool (*VALIDATE_RECORD)(const TRectype& rec);
|
||||
|
||||
// @type VALIDATE_FIELD | Prototipo funzione per validare se un campo e' da azzerare.
|
||||
typedef bool (*VALIDATE_FIELD)(const TRectype& rec, const TString& fld);
|
||||
|
||||
// @type BEFORE_RESET | Prototipo funzione richiamata prima dell'azzeramento di un record.
|
||||
typedef void (*BEFORE_RESET)(TRectype& rec);
|
||||
|
||||
// @type AFTER_RESET | Prototipo funzione richiamata dopo l'azzeramento di un record.
|
||||
typedef void (*AFTER_RESET)(TRectype& rec);
|
||||
|
||||
// @class TResetfile | Classe per l'azzeramento di un file
|
||||
//
|
||||
// @base public | TObject
|
||||
class TResetfile : public TObject
|
||||
|
||||
// @author:(INTERNAL) Luciano
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember:(INTERNAL) numero logico del file da azzerare
|
||||
int _file_num;
|
||||
// @cmember:(INTERNAL) stato file : TRUE azzerato,FALSE non azzerato
|
||||
bool _is_reseted;
|
||||
// @cmember:(INTERNAL) file da azzerare
|
||||
TSystemisamfile* _file;
|
||||
// @cmember:(INTERNAL) effettuare remove dei record (default FALSE)
|
||||
bool _removerec;
|
||||
// @cmember:(INTERNAL) funzione di validate per azzerare un record
|
||||
VALIDATE_RECORD _validate_record_function;
|
||||
// @cmember:(INTERNAL) funzione di validate per azzerare un campo
|
||||
VALIDATE_FIELD _validate_field_function;
|
||||
// @cmember:(INTERNAL) funzione richiamata prima dell'azzeramento di un record
|
||||
BEFORE_RESET _before_reset_function;
|
||||
// @cmember:(INTERNAL) funzione richiamata dopo l'azzeramento di un record
|
||||
AFTER_RESET _after_reset_function;
|
||||
// @cmember:(INTERNAL) ritorna se il campo <p fd> è un campo chiave
|
||||
bool iskeyfield(const RecDes& recd, const int fd) const;
|
||||
// @cmember:(INTERNAL) ritorna e carica il numero campi da azzerare
|
||||
int TResetfile::load_resetable_fields(const RecDes& recd,TString_array& resetable_fields);
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember setta la funzione di validate se record da azzerare
|
||||
void set_validate_record_function(VALIDATE_RECORD fun)
|
||||
{_validate_record_function = fun;}
|
||||
// @cmember setta la funzione di validate se campo da azzerare
|
||||
void set_validate_field_function(VALIDATE_FIELD fun)
|
||||
{_validate_field_function = fun;}
|
||||
// @cmember setta la funzione richiamata prima dell'azzeramento di un record
|
||||
void set_before_reset_function(BEFORE_RESET fun)
|
||||
{_before_reset_function = fun;}
|
||||
// @cmember setta la funzione richiamata dopo l'azzeramento di un record
|
||||
void set_after_reset_function(AFTER_RESET fun)
|
||||
{_after_reset_function = fun;}
|
||||
// @cmember esegue l'azzeramento del file
|
||||
int run();
|
||||
|
||||
// @cmember Costruttore
|
||||
TResetfile(int logicnum, bool remove = FALSE);
|
||||
// @cmember Distruttore
|
||||
virtual ~TResetfile();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef __RESETFIL_H
|
||||
#define __RESETFIL_H
|
||||
|
||||
#ifndef __ISAM_H
|
||||
#include <isam.h>
|
||||
#include <progind.h>
|
||||
#endif
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TResetfile
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type VALIDATE_RECORD | Prototipo funzione per validare se un record e' da azzerare.
|
||||
typedef bool (*VALIDATE_RECORD)(const TRectype& rec);
|
||||
|
||||
// @type VALIDATE_FIELD | Prototipo funzione per validare se un campo e' da azzerare.
|
||||
typedef bool (*VALIDATE_FIELD)(const TRectype& rec, const TString& fld);
|
||||
|
||||
// @type BEFORE_RESET | Prototipo funzione richiamata prima dell'azzeramento di un record.
|
||||
typedef void (*BEFORE_RESET)(TRectype& rec);
|
||||
|
||||
// @type AFTER_RESET | Prototipo funzione richiamata dopo l'azzeramento di un record.
|
||||
typedef void (*AFTER_RESET)(TRectype& rec);
|
||||
|
||||
// @class TResetfile | Classe per l'azzeramento di un file
|
||||
//
|
||||
// @base public | TObject
|
||||
class TResetfile : public TObject
|
||||
|
||||
// @author:(INTERNAL) Luciano
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember:(INTERNAL) numero logico del file da azzerare
|
||||
int _file_num;
|
||||
// @cmember:(INTERNAL) stato file : TRUE azzerato,FALSE non azzerato
|
||||
bool _is_reseted;
|
||||
// @cmember:(INTERNAL) file da azzerare
|
||||
TSystemisamfile* _file;
|
||||
// @cmember:(INTERNAL) effettuare remove dei record (default FALSE)
|
||||
bool _removerec;
|
||||
// @cmember:(INTERNAL) funzione di validate per azzerare un record
|
||||
VALIDATE_RECORD _validate_record_function;
|
||||
// @cmember:(INTERNAL) funzione di validate per azzerare un campo
|
||||
VALIDATE_FIELD _validate_field_function;
|
||||
// @cmember:(INTERNAL) funzione richiamata prima dell'azzeramento di un record
|
||||
BEFORE_RESET _before_reset_function;
|
||||
// @cmember:(INTERNAL) funzione richiamata dopo l'azzeramento di un record
|
||||
AFTER_RESET _after_reset_function;
|
||||
// @cmember:(INTERNAL) ritorna se il campo <p fd> è un campo chiave
|
||||
bool iskeyfield(const RecDes& recd, const int fd) const;
|
||||
// @cmember:(INTERNAL) ritorna e carica il numero campi da azzerare
|
||||
int TResetfile::load_resetable_fields(const RecDes& recd,TString_array& resetable_fields);
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember setta la funzione di validate se record da azzerare
|
||||
void set_validate_record_function(VALIDATE_RECORD fun)
|
||||
{_validate_record_function = fun;}
|
||||
// @cmember setta la funzione di validate se campo da azzerare
|
||||
void set_validate_field_function(VALIDATE_FIELD fun)
|
||||
{_validate_field_function = fun;}
|
||||
// @cmember setta la funzione richiamata prima dell'azzeramento di un record
|
||||
void set_before_reset_function(BEFORE_RESET fun)
|
||||
{_before_reset_function = fun;}
|
||||
// @cmember setta la funzione richiamata dopo l'azzeramento di un record
|
||||
void set_after_reset_function(AFTER_RESET fun)
|
||||
{_after_reset_function = fun;}
|
||||
// @cmember esegue l'azzeramento del file
|
||||
int run();
|
||||
|
||||
// @cmember Costruttore
|
||||
TResetfile(int logicnum, bool remove = FALSE);
|
||||
// @cmember Distruttore
|
||||
virtual ~TResetfile();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user