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:
angelo 1998-09-03 13:32:44 +00:00
parent a7867e4a1c
commit ec5cd6f14d
40 changed files with 2381 additions and 927 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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]) ;
}

View File

@ -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

View File

@ -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);
}

View File

@ -14,3 +14,4 @@
#define F_MODULO 114
#define F_LUNG 115
#define F_LARG 116
#define F_INPS 117

View File

@ -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

View File

@ -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"

View 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

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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
View 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
View File

@ -0,0 +1,6 @@
#define F_CODICE 102
#define F_RAGIONE 103
#define F_ANNO 104

41
m770/77sr.uml Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

View File

@ -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;
}

View File

@ -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