Modifiche per recuperare un poco di stack e corrette alcune

balzanerie di GPF.


git-svn-id: svn://10.65.10.50/trunk@3080 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-06-24 16:51:49 +00:00
parent e98d478de2
commit 5e856b6d1e
14 changed files with 372 additions and 240 deletions

View File

@ -392,8 +392,8 @@ int cg6100 (int argc, char* argv[])
if (argc > 5)
p4 = *argv[4];
TRic_auto main_app(argv[2],*argv[3],p4);
main_app.run(argc, argv,"Ricezione automatica");
TRic_auto* main_app = new TRic_auto(argv[2],*argv[3],p4);
main_app->run(argc, argv,"Ricezione automatica");
delete main_app;
return TRUE;
}

View File

@ -94,9 +94,10 @@ bool Tabtra_application::user_create()
cg6300(int argc, char* argv[])
{
Tabtra_application a;
Tabtra_application* a= new Tabtra_application;
a.run(argc,argv, "Tabelle");
a->run(argc,argv, "Tabelle");
delete a;
return 0;
}

View File

@ -66,7 +66,7 @@ public:
void ripristina_trasfer();
void trasfer2tempfile();
long leggi_tabella_tras();
void componi_path(TMask&);
void componi_path(TMask*);
bool video_ripartenza();
void ditta_ricevente();
bool ripartenza();
@ -143,13 +143,13 @@ bool TRic_archivi::destroy()
return TApplication::destroy();
}
void TRic_archivi::componi_path(TMask& msk)
void TRic_archivi::componi_path(TMask* msk)
{
TString path,drive;
int pos;
path = msk.get(F_PATHNAME);
drive = msk.get(F_DRIVE);
path = msk->get(F_PATHNAME);
drive = msk->get(F_DRIVE);
pos = path.find(':');
if (drive == "A:" || drive == "B:" || drive == "D:" || drive == "E:")
@ -362,10 +362,10 @@ bool TRic_archivi::main_loop()
{
if (_scelta == 'S')
{
TMask msk ("cg6400b");
TMask* msk = new TMask("cg6400b");
KEY tasto;
tasto = msk.run();
tasto = msk->run();
if (tasto == K_ENTER)
{
@ -375,41 +375,59 @@ bool TRic_archivi::main_loop()
{
if (_disketto)
{
char drive = msk.get(F_DRIVE)[0];
char drive = msk->get(F_DRIVE)[0];
if (yesno_box("Inserire il dischetto %d nell' unita' %c", _numdisk,drive))
{
if (!leggi_marker())
{
delete msk;
return FALSE;
}
if (_sequenza)
{
if (video_ripartenza())
ripristina_trasfer();
else
{
delete msk;
return FALSE;
}
_numdisk++;
}
}
else
{
delete msk;
return FALSE;
}
}
else
{
if (!leggi_marker())
{
delete msk;
return FALSE;
}
if (_sequenza)
{
if (video_ripartenza())
ripristina_trasfer();
else
{
delete msk;
return FALSE;
}
_numdisk++;
}
else
{
delete msk;
return FALSE;
}
}
}
while (_numdisk <= _numtotdisk);
@ -426,15 +444,16 @@ bool TRic_archivi::main_loop()
tabdbf << "\\ttab.dbf";
fremove(tabcdx);
fremove(tabdbf);
}
}
delete msk;
}
else
if (_scelta == 'P')
{
TMask msk ("cg6400b");
TMask* msk = new TMask("cg6400b");
KEY tasto;
tasto = msk.run();
tasto = msk->run();
if (tasto == K_ENTER)
{
@ -444,41 +463,59 @@ bool TRic_archivi::main_loop()
{
if (_disketto)
{
char drive = msk.get(F_DRIVE)[0];
char drive = msk->get(F_DRIVE)[0];
if (yesno_box("Inserire il dischetto %d nell' unita' %c", _numdisk,drive))
{
if (!leggi_marker_rep())
{
delete msk;
return FALSE;
}
if (_sequenza)
{
if (video_ripartenza())
ripristina_trasfer();
else
{
delete msk;
return FALSE;
}
_numdisk++;
}
}
else
{
delete msk;
return FALSE;
}
}
else
{
if (!leggi_marker_rep())
{
delete msk;
return FALSE;
}
if (_sequenza)
{
if (video_ripartenza())
ripristina_trasfer();
else
{
delete msk;
return FALSE;
}
_numdisk++;
}
else
{
delete msk;
return FALSE;
}
}
}
while (_numdisk <= _numtotdisk);
@ -489,6 +526,7 @@ bool TRic_archivi::main_loop()
_tras_file->close(); // Chiude il trasfer letto dalla directory della ditta
fremove(_trasf);
}
delete msk;
}
}
@ -590,55 +628,64 @@ bool TRic_archivi::video_ripartenza()
leggi_trasfer("\\trasfer");
_prima_volta = FALSE;
TMask msk ("cg6400a");
TMask* msk = new TMask("cg6400a");
KEY tasto;
ditta_ricevente();
_stato_ripartenza = controllo_ripartenza();
msk.set(F_NOMEID, _nomeid);
msk.set(F_CODDITTAINV, _dittainv);
msk.set(F_CODDITTARIC, _dittaric);
msk.set(F_RAGSOC, _ragsoc_dittar);
msk.set(F_NULTRASDSK, _numinv);
msk->set(F_NOMEID, _nomeid);
msk->set(F_CODDITTAINV, _dittainv);
msk->set(F_CODDITTARIC, _dittaric);
msk->set(F_RAGSOC, _ragsoc_dittar);
msk->set(F_NULTRASDSK, _numinv);
TString data1 = _datatras.string();
msk.set(F_DATAULTRASDSK, data1);
msk->set(F_DATAULTRASDSK, data1);
if (_nultras != 0)
{
msk.set(F_NULTRASTAB, _nultras);
msk->set(F_NULTRASTAB, _nultras);
TString data2 = _dataultras.string();
msk.set(F_DATAULTRASTAB, data2);
msk->set(F_DATAULTRASTAB, data2);
}
else
{
msk.set(F_NULTRASTAB, _nultras_tab);
msk->set(F_NULTRASTAB, _nultras_tab);
TString data2 = _dataultras_tab.string();
msk.set(F_DATAULTRASTAB, data2);
msk->set(F_DATAULTRASTAB, data2);
}
if (_stato_ripartenza == 1 || _stato_ripartenza == 2 )
msk.set(F_STATO, "NON COMPLETO");
msk->set(F_STATO, "NON COMPLETO");
else
if (_stato_ripartenza == 0)
msk.set(F_STATO, "COMPLETO");
msk->set(F_STATO, "COMPLETO");
if (_numdisk == 1) // Va fatto solo per il primo disco
{
do
{
msk.set_handler(baipassa);
msk->set_handler(baipassa);
tasto = msk.run();
tasto = msk->run();
if (tasto != K_ENTER)
{
delete msk;
return FALSE;
}
if (_baipassa)
{
delete msk;
return TRUE;
}
if (!ripartenza())
return FALSE;
{
delete msk;
return FALSE;
}
if (_numinv > (_nultras_tab + 1))
warning_box("Trasferimento FUORI SEQUENZA: manca un trasferimento intermedio");
@ -646,10 +693,14 @@ bool TRic_archivi::video_ripartenza()
if (_numinv < (_nultras_tab +1))
warning_box("I dischetti risultano GIA' TRASFERITI");
else
{
delete msk;
return TRUE;
}
}
while (tasto == K_ENTER);
}
delete msk;
}
return TRUE;
@ -889,8 +940,8 @@ int cg6400 (int argc, char* argv[])
if (argc > 4)
p3 = *argv[3];
TRic_archivi main_app(*argv[2],p3);
main_app.run(argc, argv,main_app._titolo);
TRic_archivi* main_app = new TRic_archivi(*argv[2],p3);
main_app->run(argc, argv,main_app->_titolo);
delete main_app;
return TRUE;
}

View File

@ -761,9 +761,10 @@ bool Tabinv_application::user_create()
cg6500(int argc, char* argv[])
{
Tabinv_application a;
Tabinv_application* a = new Tabinv_application;
a.run(argc,argv, "Tabelle");
a->run(argc,argv, "Tabelle");
delete a;
return 0;
}

View File

@ -1595,22 +1595,23 @@ bool TRic_tab::video()
if (!leggi_trasfer())
return FALSE;
TMask msk ("cg6600a");
TMask* msk = new TMask("cg6600a");
KEY tasto;
ditta_ricevente();
msk.set(F_CODDITTA, _dittaric);
msk.set(F_RAGSOC, _ragsoc_dittar);
msk.set(F_NULTRAS, _nultras);
msk->set(F_CODDITTA, _dittaric);
msk->set(F_RAGSOC, _ragsoc_dittar);
msk->set(F_NULTRAS, _nultras);
TString data1 = _dataultras.string();
msk.set(F_DATAULTRAS, data1);
msk.set(F_STD, _std);
msk.set(F_USELAB, _uselab);
msk.set(F_STATO, _key);
msk->set(F_DATAULTRAS, data1);
msk->set(F_STD, _std);
msk->set(F_USELAB, _uselab);
msk->set(F_STATO, _key);
tasto = msk.run();
tasto = msk->run();
delete msk;
if (tasto != K_ENTER)
return FALSE;
@ -1863,7 +1864,8 @@ int cg6600 (int argc, char* argv[])
if (argc > 4)
p3 = *argv[3];
TRic_tab main_app(*argv[2],p3);
main_app.run(argc, argv,main_app._titolo);
TRic_tab* main_app=new TRic_tab(*argv[2],p3);
main_app->run(argc, argv,main_app->_titolo);
delete main_app;
return TRUE;
}

View File

@ -3078,7 +3078,8 @@ int cg6700 (int argc, char* argv[])
if (argc >= 5)
p2 = *argv[3];
TRic_ListaMov a(p1,p2);
a.run(argc, argv,"Lista controllo movimenti");
TRic_ListaMov* a = new TRic_ListaMov(p1,p2);
a->run(argc, argv,"Lista controllo movimenti");
delete a;
return TRUE;
}

View File

@ -131,6 +131,10 @@ char TVar_mov::TipoConto(int g, int c)
TVar_mov::TVar_mov(char mov) : _scelta(toupper(mov))
{
_tiva = NULL;
_toccas = NULL;
_tmov = NULL;
_trmov = NULL;
switch (_scelta)
{
case 'P':
@ -179,12 +183,16 @@ bool TVar_mov::destroy()
delete _rmoviva;
delete _occas;
delete _tab_reg;
delete _trmov;
delete _rec_rmov;
delete _tiva;
delete _toccas;
delete _rec_riva;
delete _tmov;
if (_trmov)
delete _trmov;
if (_tiva)
delete _tiva;
if (_toccas)
delete _toccas;
if (_tmov)
delete _tmov;
return TApplication::destroy();
}
@ -275,38 +283,42 @@ bool TVar_mov::main_loop()
bool TVar_mov::video_PN()
{
TMask msk ("cg6800a");
TMask* msk = new TMask("cg6800a");
KEY tasto;
do
{
tasto = msk.run();
tasto = msk->run();
if (tasto != K_ENTER) return FALSE;
if (ricerca_movimento(msk))
if (tasto != K_ENTER)
{
TMask mask ("cg6800b");
delete msk;
return FALSE;
}
if (ricerca_movimento(*msk))
{
TMask* mask = new TMask("cg6800b");
mask.set_handler(F_REGIVA, codice_registro_hnd);
mask.set_handler(F_CODCAUS, codice_causale_hnd);
mask.set_handler(F_PROTIVA, numero_protocollo_hnd);
mask.set_handler(F_NUPROTIVA, ultimo_protocollo_hnd);
mask.set_handler(F_CODPAG, codice_pagamento_hnd);
mask.set_handler(F_DATAREG, data_stampa);
mask.set_handler(F_DATACOMP, data_competenza_hnd);
//mask.set_handler(F_DATADOC, data);
mask->set_handler(F_REGIVA, codice_registro_hnd);
mask->set_handler(F_CODCAUS, codice_causale_hnd);
mask->set_handler(F_PROTIVA, numero_protocollo_hnd);
mask->set_handler(F_NUPROTIVA, ultimo_protocollo_hnd);
mask->set_handler(F_CODPAG, codice_pagamento_hnd);
mask->set_handler(F_DATAREG, data_stampa);
mask->set_handler(F_DATACOMP, data_competenza_hnd);
//mask->set_handler(F_DATADOC, data);
if (_righe)
{
mask.set_handler(F_SOTTOCONTO, controllo_partita);
mask.set_handler(F_SOTTOC, controllo_contropartita);
mask.set_handler(F_IMPORTO , controllo_importo);
mask->set_handler(F_SOTTOCONTO, controllo_partita);
mask->set_handler(F_SOTTOC, controllo_contropartita);
mask->set_handler(F_IMPORTO , controllo_importo);
}
setta_campi_maschera(mask);
setta_campi_maschera(*mask);
tasto = mask.run();
tasto = mask->run();
switch (tasto)
{
@ -318,7 +330,7 @@ bool TVar_mov::video_PN()
case K_SAVE :
{
registra_PN(mask);
registra_PN(*mask);
_registrato = TRUE;
}
break;
@ -326,10 +338,12 @@ bool TVar_mov::video_PN()
default:
break;
}
delete mask;
}
}
while (tasto != K_QUIT); //K_ENTER
delete msk;
return TRUE;
}
@ -354,39 +368,47 @@ void TVar_mov::ricerca_codcaus(const TString& codcaus)
bool TVar_mov::video_IVA()
{
TMask msk ("cg6800a");
TMask* msk = new TMask("cg6800a");
KEY tasto;
do
{
tasto = msk.run();
tasto = msk->run();
if (tasto != K_ENTER) return FALSE;
if (ricerca_movimento(msk))
if (tasto != K_ENTER)
{
TMask mask ("cg6800c");
delete msk;
return FALSE;
}
if (ricerca_movimento(*msk))
{
TMask* mask = new TMask("cg6800c");
TString regiva = _rec_mov->get(MOV_REG);
if (!setta_campi_maschera_iva(mask))
if (!setta_campi_maschera_iva(*mask))
{
delete msk;
delete mask;
return FALSE;
}
mask.set_handler(F_CODCF, codice_clifo_hnd);
//mask.set_handler(F_DATA74TER, data);
mask.set_handler(F_LOCALITA, localita_occasionali);
mask.set_handler(F_CAPOCC, cap_occasionali);
mask->set_handler(F_CODCF, codice_clifo_hnd);
//mask->set_handler(F_DATA74TER, data);
mask->set_handler(F_LOCALITA, localita_occasionali);
mask->set_handler(F_CAPOCC, cap_occasionali);
if (_righe)
{
mask.set_handler(F_SOTTOCONTO, controllo_partita);
mask.set_handler(F_CODIVA, codice_iva_hnd);
mask.set_handler(F_IMPOSTA, imposta_hnd);
mask.set_handler(F_TIPODET, detraibilita_hnd);
mask.set_handler(F_TIPOCR, tipocr_hnd);
mask->set_handler(F_SOTTOCONTO, controllo_partita);
mask->set_handler(F_CODIVA, codice_iva_hnd);
mask->set_handler(F_IMPOSTA, imposta_hnd);
mask->set_handler(F_TIPODET, detraibilita_hnd);
mask->set_handler(F_TIPOCR, tipocr_hnd);
}
tasto = mask.run();
tasto = mask->run();
switch (tasto)
{
@ -398,7 +420,7 @@ bool TVar_mov::video_IVA()
case K_SAVE :
{
registra_IVA(mask);
registra_IVA(*mask);
_registrato = TRUE;
}
break;
@ -406,10 +428,12 @@ bool TVar_mov::video_IVA()
default:
break;
}
delete mask;
}
}
while (tasto != K_QUIT); //K_ENTER
delete msk;
return TRUE;
}
@ -1608,38 +1632,44 @@ int cg6800 (int argc, char* argv[])
{
case 'P':
{
TVar_mov main_app(*argv[2]);
main_app.run(argc, argv,main_app._titolo);
TVar_mov* main_app = new TVar_mov(*argv[2]);
main_app->run(argc, argv,main_app->_titolo);
delete main_app;
}
break;
case 'I':
{
TVar_mov main_app(*argv[2]);
main_app.run(argc, argv,main_app._titolo);
TVar_mov* main_app = new TVar_mov(*argv[2]);
main_app->run(argc, argv,main_app->_titolo);
delete main_app;
}
break;
case 'B':
{
TVar_sc a;
a.run(argc, argv,"Variazione movimenti Saldaconto");
TVar_sc* a = new TVar_sc;
a->run(argc, argv,"Variazione movimenti Saldaconto");
delete a;
}
break;
case 'S':
{
TDitta_ric a;
a.run(argc, argv,"Scelta ditta per ricezione");
TDitta_ric* a = new TDitta_ric;
a->run(argc, argv,"Scelta ditta per ricezione");
delete a;
}
break;
case 'A':
{
TAnn_mov a;
a.run(argc, argv,"Annullamento movimenti da ricevere");
TAnn_mov* a = new TAnn_mov;
a->run(argc, argv,"Annullamento movimenti da ricevere");
delete a;
}
break;
case 'V':
{
TVis_ric a;
a.run(argc, argv,"Visualizzazione stato ricezione");
TVis_ric* a = new TVis_ric;
a->run(argc, argv,"Visualizzazione stato ricezione");
delete a;
}
break;
default:

View File

@ -21,26 +21,31 @@ bool TDitta_ric::destroy()
bool TDitta_ric::set()
{
TMask msk ("cg6801a");
TMask* msk = new TMask("cg6801a");
KEY tasto;
_old_ditta = get_firm();
tasto = msk.run();
tasto = msk->run();
if (tasto != K_ENTER) return FALSE;
if (tasto != K_ENTER)
{
delete msk;
return FALSE;
}
_dittaric = msk.get_int(F_CODDITTA);
_dittaric = msk->get_int(F_CODDITTA);
set_firm(_dittaric);
if (!esegui_controlli())
{
set_firm(_old_ditta);
delete msk;
return FALSE;
}
//set_firm(_dittaric);
delete msk;
return FALSE;
}

View File

@ -136,25 +136,29 @@ bool TAnn_mov::set()
bool TAnn_mov::video()
{
TMask msk ("cg6802a");
TMask* msk = new TMask("cg6802a");
KEY tasto;
do
{
tasto = msk.run();
tasto = msk->run();
if (tasto != K_ENTER) return FALSE;
if (esiste_testata_mov(msk))
if (tasto != K_ENTER)
{
TMask mask ("cg6802b");
delete msk;
return FALSE;
}
if (esiste_testata_mov(*msk))
{
TMask* mask = new TMask("cg6802b");
mask.set_handler(F_REGIVA, codice_registro_hnd);
mask.set_handler(F_CODCAUS, codice_causale_hnd);
mask->set_handler(F_REGIVA, codice_registro_hnd);
mask->set_handler(F_CODCAUS, codice_causale_hnd);
setta_campi_maschera(mask);
setta_campi_maschera(*mask);
tasto = mask.run();
tasto = mask->run();
switch (tasto)
{
@ -166,7 +170,7 @@ bool TAnn_mov::video()
case K_DEL :
{
annulla(mask);
annulla(*mask);
_registra = TRUE;
}
break;
@ -174,10 +178,12 @@ bool TAnn_mov::video()
default:
break;
}
delete mask;
}
}
while (tasto != K_QUIT); //K_ENTER
delete msk;
return TRUE;
}

View File

@ -110,66 +110,70 @@ bool TVis_ric::video()
if (!esegui_controlli())
return FALSE;
TMask msk ("cg6803a");
TMask* msk = new TMask("cg6803a");
KEY tasto;
ditta_ricevente(); // Cerca la ragione sociale della ditta.
setta_campi_video(msk); // Setta i campi della maschera con i dati relativi
// alla ditta e alla tabella trasferimenti.
msk.set_handler(baipassa);
msk.set_handler(F_STD, stato_hnd);
msk.set_handler(F_USELAB, uselab_hnd);
msk.set_handler(F_STATO, chiave_hnd);
msk->set_handler(baipassa);
msk->set_handler(F_STD, stato_hnd);
msk->set_handler(F_USELAB, uselab_hnd);
msk->set_handler(F_STATO, chiave_hnd);
tasto = msk.run();
tasto = msk->run();
if (tasto != K_ENTER)
return FALSE;
registra(msk);
{
delete msk;
return FALSE;
}
registra(*msk);
delete msk;
return FALSE;
}
void TVis_ric::setta_campi_video(TMask& msk)
void TVis_ric::setta_campi_video(TMask* msk)
{
if (_ftrasfer)
{
msk.set(F_CODDITTARIC, _dittaric);
msk.set(F_RAGSOC, _ragsoc_dittar);
msk.set(F_NULTRAS, _nultras);
msk->set(F_CODDITTARIC, _dittaric);
msk->set(F_RAGSOC, _ragsoc_dittar);
msk->set(F_NULTRAS, _nultras);
if (_nultras != 0)
{
TString data1 = _dataultras.string();
msk.set(F_DATAULTRAS, data1);
msk->set(F_DATAULTRAS, data1);
}
msk.set(F_USELAB, _uselab);
msk.set(F_STATO, _key);
msk.set(F_AGGCAUSALI, _agg_cau);
msk.set(F_AGGCLIFO, _agg_clifo);
msk.set(F_AGGPCON, _agg_pcon);
msk.set(F_AGGIVD, _agg_IVdir);
msk.set(F_FATTEM, _riatt_att);
msk.set(F_FATTRIC, _riatt_pas);
msk->set(F_USELAB, _uselab);
msk->set(F_STATO, _key);
msk->set(F_AGGCAUSALI, _agg_cau);
msk->set(F_AGGCLIFO, _agg_clifo);
msk->set(F_AGGPCON, _agg_pcon);
msk->set(F_AGGIVD, _agg_IVdir);
msk->set(F_FATTEM, _riatt_att);
msk->set(F_FATTRIC, _riatt_pas);
}
msk.set(F_STD, _std);
msk->set(F_STD, _std);
msk.disable(F_CODDITTARIC);
msk.disable(F_RAGSOC);
msk.disable(F_NULTRAS);
msk.disable(F_DATAULTRAS);
msk.disable(F_STD);
msk.disable(F_USELAB);
msk.disable(F_STATO);
msk.disable(F_AGGCAUSALI);
msk.disable(F_AGGCLIFO);
msk.disable(F_AGGPCON);
msk.disable(F_AGGIVD);
msk.disable(F_FATTEM);
msk.disable(F_FATTRIC);
msk->disable(F_CODDITTARIC);
msk->disable(F_RAGSOC);
msk->disable(F_NULTRAS);
msk->disable(F_DATAULTRAS);
msk->disable(F_STD);
msk->disable(F_USELAB);
msk->disable(F_STATO);
msk->disable(F_AGGCAUSALI);
msk->disable(F_AGGCLIFO);
msk->disable(F_AGGPCON);
msk->disable(F_AGGIVD);
msk->disable(F_FATTEM);
msk->disable(F_FATTRIC);
}
void TVis_ric::registra(TMask& m)

View File

@ -37,7 +37,7 @@ public:
virtual bool menu(MENU_TAG m);
bool video();
void setta_campi_video(TMask& m);
void setta_campi_video(TMask* m);
void ditta_ricevente();
long leggi_tabella_tras();

View File

@ -161,10 +161,10 @@ bool TVar_sc::gestione_handler(TMask_field& f, KEY k)
if (tipomov == 1)
{
TMask msk ("cg6804d");
TMask* msk = new TMask("cg6804d");
KEY k;
TSheet_field& rp = (TSheet_field&) msk.field(F_RIGASCAD);
TSheet_field& rp = (TSheet_field&) msk->field(F_RIGASCAD);
rp.set_notify(a_notify);
rp.sheet_mask().set_handler(109, nrata_handler);
rp.sheet_mask().set_handler(111, codpag_handler);
@ -179,9 +179,9 @@ bool TVar_sc::gestione_handler(TMask_field& f, KEY k)
rp.sheet_mask().set_handler(117, impval_handler);
rp.sheet_mask().set_handler(DLG_DELREC, elimina_scadenza);
app().setta_mask_scad(tipocf,gruppo,conto,sottoc,anno,npart,nriga,msk);
app().setta_mask_scad(tipocf,gruppo,conto,sottoc,anno,npart,nriga,*msk);
k = msk.run();
k = msk->run();
switch (k)
{
@ -193,7 +193,7 @@ bool TVar_sc::gestione_handler(TMask_field& f, KEY k)
case K_SAVE :
{
app().registra_scadenze(msk);
app().registra_scadenze(*msk);
app()._registrato = TRUE;
}
break;
@ -201,13 +201,14 @@ bool TVar_sc::gestione_handler(TMask_field& f, KEY k)
default:
break;
}
delete msk;
}
else
{
TMask msk ("cg6804e");
TMask* msk = new TMask("cg6804e");
KEY k;
TSheet_field& rp = (TSheet_field&) msk.field(F_RIGAPAGSCA);
TSheet_field& rp = (TSheet_field&) msk->field(F_RIGAPAGSCA);
rp.set_notify(a_notify);
rp.sheet_mask().set_handler(110, rifpartita_handler);
rp.sheet_mask().set_handler(111, accsal_handler);
@ -225,9 +226,9 @@ bool TVar_sc::gestione_handler(TMask_field& f, KEY k)
rp.sheet_mask().set_handler(119, diffcambio_handler);
rp.sheet_mask().set_handler(DLG_DELREC, elimina_pagamenti);
app().setta_mask_pagsca(tipocf,gruppo,conto,sottoc,anno,npart,nriga,msk);
app().setta_mask_pagsca(tipocf,gruppo,conto,sottoc,anno,npart,nriga,*msk);
k = msk.run();
k = msk->run();
switch (k)
{
@ -239,7 +240,7 @@ bool TVar_sc::gestione_handler(TMask_field& f, KEY k)
case K_SAVE :
{
app().registra_pagamenti(msk);
app().registra_pagamenti(*msk);
app()._registrato = TRUE;
}
break;
@ -247,6 +248,7 @@ bool TVar_sc::gestione_handler(TMask_field& f, KEY k)
default:
break;
}
delete msk;
}
}
return TRUE;

View File

@ -35,54 +35,58 @@ bool TInv_cont::main_loop()
if (!esegui_controlli()) return FALSE;
TMask msk ("cg6900a");
TMask* msk = new TMask("cg6900a");
KEY tasto;
if (_ditta != 0)
{
msk.set(F_DITTAINV, _ditta);
msk.disable(F_DITTAINV);
codifica_ditta(msk);
msk.set(F_NUMULINV, _num);
msk.set(F_DATAULIN, _data.string());
msk.set(F_STATO, _stato);
msk->set(F_DITTAINV, _ditta);
msk->disable(F_DITTAINV);
codifica_ditta(*msk);
msk->set(F_NUMULINV, _num);
msk->set(F_DATAULIN, _data.string());
msk->set(F_STATO, _stato);
TString uselab = _tras_file.ult_file();
TString chiave = _tras_file.key();
msk.set(F_USELAB, uselab);
msk.set(F_CHIAVE, chiave);
msk.set(F_DATALIM, _data.string());
msk.disable(F_DATALIM);
msk->set(F_USELAB, uselab);
msk->set(F_CHIAVE, chiave);
msk->set(F_DATALIM, _data.string());
msk->disable(F_DATALIM);
if (_scelta == 'S' && _ditta > 9999)
{
msk.show(F_DITTAAS);
msk.disable(F_DITTAAS);
msk->show(F_DITTAAS);
msk->disable(F_DITTAAS);
long ditta = atol(_control_rec.sub(300,304));
msk.set(F_DITTAAS, ditta);
msk->set(F_DITTAAS, ditta);
}
else
msk.hide(F_DITTAAS);
msk->hide(F_DITTAAS);
ripartenza = TRUE;
}
msk.disable(F_NUMULINV);
msk.disable(F_DATAULIN);
msk.disable(F_STATO);
msk.disable(F_USELAB);
msk.disable(F_CHIAVE);
msk->disable(F_NUMULINV);
msk->disable(F_DATAULIN);
msk->disable(F_STATO);
msk->disable(F_USELAB);
msk->disable(F_CHIAVE);
if (!ripartenza)
msk.set_handler(F_DITTAINV, setta_maschera_hnd);
msk->set_handler(F_DITTAINV, setta_maschera_hnd);
else
msk.set_handler(F_NUMULINV, messaggio_hnd);
msk->set_handler(F_NUMULINV, messaggio_hnd);
tasto = msk.run();
tasto = msk->run();
if (tasto != K_ENTER) return FALSE;
if (tasto != K_ENTER)
{
delete msk;
return FALSE;
}
_dittaAS = msk.get_long(F_DITTAAS); //Se la ditta per l'invio ad AS non viene compilata perche' trattasi di invio a PC
_dittaAS = msk->get_long(F_DITTAAS); //Se la ditta per l'invio ad AS non viene compilata perche' trattasi di invio a PC
if (_dittaAS == 0) //o perche' il codice e' di 4, gli assegno la ditta corrente. Nel caso di invio a
_dittaAS = _ditta; //PC non servirebbe il codice aggiuntivo, ma lo metto ugualmente per avere una situazione analoga
@ -90,7 +94,7 @@ bool TInv_cont::main_loop()
// Lista controllo archivi per rilevare eventuali
// differenze.
long ditta = msk.get_long(F_DITTAINV);
long ditta = msk->get_long(F_DITTAINV);
set_firm(ditta);
TConfig conf(CONFIG_DITTA);
@ -101,7 +105,7 @@ bool TInv_cont::main_loop()
TString appname = "cg6 -8 L";
TString corpo = "";
TDate data = msk.get(F_DATALIM);
TDate data = msk->get(F_DATALIM);
corpo << data.string();
@ -120,26 +124,29 @@ bool TInv_cont::main_loop()
{
subj = atoi(msg->body());
if (subj)
{
delete msk;
return FALSE;
}
}
}
_datalimsk = msk.get(F_DATALIM);
_datalimsk = msk->get(F_DATALIM);
if (!ripartenza)
{
crea_marker(msk); //Crea il record con le informazioni sul marker
setta_parametri_record(msk,"F"); //Aggiorna parametri contabili ditta
setta_tabella_studio(msk); //Aggiorna la tabella studio per invio
setta_tabella_ditta(msk,"F"); //Aggiorna la tabella ditta per invio
crea_record_controllo(msk); //Crea il record di controllo sul file header
crea_marker(*msk); //Crea il record con le informazioni sul marker
setta_parametri_record(*msk,"F"); //Aggiorna parametri contabili ditta
setta_tabella_studio(*msk); //Aggiorna la tabella studio per invio
setta_tabella_ditta(*msk,"F"); //Aggiorna la tabella ditta per invio
crea_record_controllo(*msk); //Crea il record di controllo sul file header
}
else
{
TString str,app;
int num = msk.get_int(F_NUMULINV);
TString data (msk.get(F_DATALIM));
int num = msk->get_int(F_NUMULINV);
TString data (msk->get(F_DATALIM));
if (_scelta == 'S')
{
app = riconverti(data,FALSE);
@ -157,8 +164,11 @@ bool TInv_cont::main_loop()
apri_file_temp();
if (!invio_tempfile(msk))
if (!invio_tempfile(*msk))
{
delete msk;
return FALSE;
}
// calcola_totale_record();
// str.format("%06ld", _tot_rec);
@ -176,16 +186,16 @@ bool TInv_cont::main_loop()
// if (std != "D")
invio_contabilita(); //Costruisce il trasfer nella directory comune
TMask mask ("cg6900b");
TMask* mask = new TMask("cg6900b");
KEY k;
k = mask.run();
k = mask->run();
if (k == K_ENTER)
{
TString floppy = mask.get(F_FLOPPY);
int num_disk = calcola_numero_dischi(mask,floppy);
TString percorso = mask.get(F_PATH);
TString floppy = mask->get(F_FLOPPY);
int num_disk = calcola_numero_dischi(*mask,floppy);
TString percorso = mask->get(F_PATH);
if (percorso.not_empty())
floppy << ":/" << percorso;
@ -212,9 +222,9 @@ bool TInv_cont::main_loop()
}
fclose(i);
setta_tabella_studio(msk,FALSE); //Aggiorna la tabella studio per invio
setta_tabella_ditta(msk," ",FALSE); //Aggiorna la tabella ditta per invio
setta_parametri_record(msk," "); //Aggiorna parametri contabili ditta
setta_tabella_studio(*msk,FALSE); //Aggiorna la tabella studio per invio
setta_tabella_ditta(*msk," ",FALSE); //Aggiorna la tabella ditta per invio
setta_parametri_record(*msk," "); //Aggiorna parametri contabili ditta
_tras_file.open(_header);
leggi_record_controllo();
@ -226,7 +236,12 @@ bool TInv_cont::main_loop()
chiudi_file_temp();
}
else
{
delete msk;
delete mask;
return FALSE;
}
delete mask;
}
else
if (_scelta == 'P')
@ -239,16 +254,16 @@ bool TInv_cont::main_loop()
invio_contabilita_PC(); //Costruisce il trasfer nella directory comune
TMask mask ("cg6900b");
TMask* mask = new TMask("cg6900b");
KEY k;
k = mask.run();
k = mask->run();
if (k == K_ENTER)
{
TString floppy = mask.get(F_FLOPPY);
int num_disk = calcola_numero_dischi(mask,floppy);
TString percorso = mask.get(F_PATH);
TString floppy = mask->get(F_FLOPPY);
int num_disk = calcola_numero_dischi(*mask,floppy);
TString percorso = mask->get(F_PATH);
if (percorso.not_empty())
floppy << ":/" << percorso;
@ -275,9 +290,9 @@ bool TInv_cont::main_loop()
}
fclose(i);
setta_tabella_studio(msk,FALSE); //Aggiorna la tabella studio per invio
setta_tabella_ditta(msk," ",FALSE); //Aggiorna la tabella ditta per invio
setta_parametri_record(msk," "); //Aggiorna parametri contabili ditta
setta_tabella_studio(*msk,FALSE); //Aggiorna la tabella studio per invio
setta_tabella_ditta(*msk," ",FALSE); //Aggiorna la tabella ditta per invio
setta_parametri_record(*msk," "); //Aggiorna parametri contabili ditta
_tras_file.open(_header);
leggi_record_controllo();
@ -289,7 +304,12 @@ bool TInv_cont::main_loop()
chiudi_file_temp();
}
else
{
delete msk;
delete mask;
return FALSE;
}
delete mask;
}
_tras_file.remove_all(FALSE);
@ -299,6 +319,7 @@ bool TInv_cont::main_loop()
_trasf << "\\trasfer";
fremove(_trasf);
delete msk;
return FALSE;
}
@ -1832,26 +1853,30 @@ int cg6900 (int argc, char* argv[])
{
case 'S':
{
TInv_cont main_app(*argv[2]);
main_app.run(argc, argv,main_app._titolo);
TInv_cont* main_app = new TInv_cont(*argv[2]);
main_app->run(argc, argv,main_app->_titolo);
delete main_app;
}
break;
case 'P':
{
TInv_cont main_app(*argv[2]);
main_app.run(argc, argv,main_app._titolo);
TInv_cont* main_app = new TInv_cont(*argv[2]);
main_app->run(argc, argv,main_app->_titolo);
delete main_app;
}
break;
case 'L':
{
TLista_archivi a;
a.run(argc, argv,"Lista controllo archivi");
TLista_archivi* a = new TLista_archivi;
a->run(argc, argv,"Lista controllo archivi");
delete a;
}
break;
case 'R':
{
TRip_flag a;
a.run(argc, argv,"Ripristino flag movimenti");
TRip_flag* a = new TRip_flag;
a->run(argc, argv,"Ripristino flag movimenti");
delete a;
}
break;
default:

View File

@ -23,21 +23,24 @@ bool TRip_flag::destroy()
bool TRip_flag::set()
{
TMask msk ("cg6903a");
TMask* msk = new TMask("cg6903a");
KEY k;
k = msk.run();
k = msk->run();
if (k == K_ENTER)
{
long ditta = msk.get_long(F_DITTAINV);
TDate datalim (msk.get(F_DATA));
bool rippn = msk.get_bool(F_RIPPN);
bool ripiva = msk.get_bool(F_RIPIVA);
bool ripsc = msk.get_bool(F_RIPSC);
long ditta = msk->get_long(F_DITTAINV);
TDate datalim (msk->get(F_DATA));
bool rippn = msk->get_bool(F_RIPPN);
bool ripiva = msk->get_bool(F_RIPIVA);
bool ripsc = msk->get_bool(F_RIPSC);
if (!rippn && !ripiva && !ripsc) return FALSE; // Se non flaggo nessuno dei tre non ha
// senso scorrere l'archivio.
if (!rippn && !ripiva && !ripsc)
{
delete msk;
return FALSE; // Se non flaggo nessuno dei tre non ha
} // senso scorrere l'archivio.
set_firm(ditta);
@ -90,6 +93,7 @@ bool TRip_flag::set()
}
}
delete msk;
return FALSE;
}