Ristrutturazione classi
git-svn-id: svn://10.65.10.50/trunk@6058 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3d21d05e6d
commit
7cb0311413
@ -15,7 +15,7 @@ int main(int argc,char **argv)
|
||||
case 0:
|
||||
ab2100(argc,argv); break; //Trasferimento e Ricezione
|
||||
// case 1:
|
||||
// ab2200(argc,argv); break;
|
||||
// ab2200(argc,argv); break; //Scarico archivi
|
||||
default:
|
||||
error_box(usage, argv[0]) ;
|
||||
}
|
||||
|
@ -8,48 +8,30 @@
|
||||
#include "caradd.h"
|
||||
#include "colldich.h"
|
||||
|
||||
bool TRiceTras::create()
|
||||
{
|
||||
_files.add(new TLocalisamfile(LF_CARADD),1);
|
||||
_files.add(new TLocalisamfile(LF_COLLDICH),2);
|
||||
dispatch_e_menu(BAR_ITEM(1)); //Simula la scelta di una voce di menu
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
TFile_text* TRiceTras::set_config_name(TString &config, const TMask &msk, const TFilename &percorso)
|
||||
/* ********************************************************************************************************* */
|
||||
/* TTrasfer */
|
||||
/*********************************************************************************************************** */
|
||||
|
||||
TObject_reception *TRicezione::set_transfer(int tipo_ricezione ,const TFilename & percorso, const TString & config_name)
|
||||
{
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile=NULL;
|
||||
int tipo_ricezione = msk.get_int(F_TIPO_RICE);
|
||||
if (_rice != NULL)
|
||||
delete _rice;
|
||||
switch (tipo_ricezione)
|
||||
{
|
||||
case 1: // RICEZIONE INTERNA: WINDOWS
|
||||
config="ab2100a.ini"; /*DA CAMBIARE*/
|
||||
case RICEZIONE_INTERNA:
|
||||
_rice = new TObject_reception(percorso);
|
||||
break;
|
||||
case 2: //RICEZIONE ESTERNA: AS400
|
||||
config="ab2100a.ini";
|
||||
case RICEZIONE_AS400:
|
||||
_rice = new TRicezione_AS400(percorso);
|
||||
break;
|
||||
case 3://RICEZIONE ESTERNA: USER DEFINED
|
||||
config=msk.get(F_PERCORSO_UTENTE);
|
||||
case RICEZIONE_USER_DEFINED:
|
||||
_rice = new TRicezione_userdef(config_name,percorso);
|
||||
break;
|
||||
default:
|
||||
config.cut(0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (config.not_empty())
|
||||
_trasfile = new TABfile_text(percorso, config); //Leggo il file di configurazione
|
||||
|
||||
return _trasfile;
|
||||
return _rice;
|
||||
}
|
||||
|
||||
bool TRiceTras::destroy() //Distruttore
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int ab2100(int argc, char **argv)
|
||||
{
|
||||
char *rt = argv[2]+1; //Leggo se è richiesta la ricezine (r/R) o il trasferimento (t/T)
|
||||
|
179
ab/ab2100.h
179
ab/ab2100.h
@ -78,7 +78,7 @@
|
||||
//Costanti tipi di ricesione
|
||||
#define RICEZIONE_INTERNA 1
|
||||
#define RICEZIONE_AS400 2
|
||||
#define RICESIONE_USER_DEFINED 3
|
||||
#define RICEZIONE_USER_DEFINED 3
|
||||
|
||||
//Definizione dei flag
|
||||
#define FLAG_COGE '1'
|
||||
@ -109,9 +109,6 @@
|
||||
#define AB_MOV 10
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class TAlbero_record : public TAssoc_array
|
||||
{
|
||||
static TToken_string wrk_string;
|
||||
@ -124,69 +121,129 @@ public:
|
||||
virtual ~TAlbero_record(){}
|
||||
};
|
||||
|
||||
class TFile_text_AS400: public TFile_text
|
||||
{
|
||||
TString16 _tipo_bilancio;
|
||||
TAssoc_array _last_id;
|
||||
// static long _idcaradd;
|
||||
long _idncomp;
|
||||
//long _idcoldich;
|
||||
TString _codvc_prec;
|
||||
|
||||
//classe derivata nella quale viene gestita la funzione di trasferimento
|
||||
class TRiceTras: public TApplication
|
||||
{
|
||||
private:
|
||||
TArray _files;
|
||||
protected:
|
||||
TFile_text* _trasfile; //File di testo
|
||||
|
||||
protected:
|
||||
virtual bool menu(MENU_TAG) pure; //Gli dico che non è implementata in questa classe, ma obbligatoriamente in un'altra
|
||||
//Seleziona da quale file prelevare le informazioni del tracciato record
|
||||
// void set_config_name(TString&,TMask&);
|
||||
TFile_text* set_config_name(TString&,const TMask&, const TFilename&);
|
||||
//Controlla che il percorso e il file specificati esistono
|
||||
static bool inseriscipercorso(TMask_field& f, KEY k);
|
||||
inline const TString & get_tipo_bil() const {return _tipo_bilancio;}
|
||||
protected:
|
||||
// virtual void preformat_field(TRelation& rel,const TFieldref&field,const TRecord_text& rec,TString &str);
|
||||
virtual void preformat_field(const TFieldref&field,TString &str,TRelation& rel,const TString &tipo_tr);
|
||||
void cambia_anno(TString& str);
|
||||
void cambia_data(TString& str);
|
||||
virtual bool pre_writerel(TRelation& rel,const TRecord_text& rec);
|
||||
void scrivi_temp_link(TRelation& rel,const TRecord_text& rec);
|
||||
void aggiorna_rel_link(TLocalisamfile &relvoc);
|
||||
public:
|
||||
void set_tipo_bilancio(const TString & tipo_bil) {_tipo_bilancio = tipo_bil;}
|
||||
|
||||
TRiceTras() {}
|
||||
virtual ~TRiceTras() {}
|
||||
};
|
||||
|
||||
class TRicezione:public TRiceTras
|
||||
{
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG);
|
||||
virtual void set_tipo_bil(const TString&) {;}
|
||||
virtual void ricevi(TMask &) ;
|
||||
public:
|
||||
TRicezione() {}
|
||||
virtual ~TRicezione() {}
|
||||
TFile_text_AS400(const char* file_name, const char* set_config_name);
|
||||
virtual ~TFile_text_AS400() {}
|
||||
};
|
||||
|
||||
//Classe derivata per la ricezione
|
||||
class TRicezione_AS400:public TRicezione
|
||||
{
|
||||
TString _tipo_bilancio;
|
||||
|
||||
|
||||
class TObject_reception:public TObject
|
||||
{
|
||||
protected:
|
||||
virtual void leggi_temp_link(TRectype& cur_rec,TToken_string& k);
|
||||
TFile_text* _trasfile; //File di testo da cui ricevere
|
||||
public:
|
||||
TFile_text * trans_file() {return _trasfile;}
|
||||
virtual void ricevi(TMask &);
|
||||
TObject_reception() {_trasfile = NULL;}
|
||||
TObject_reception(const TFilename &percorso) ;
|
||||
virtual ~TObject_reception() {}
|
||||
};
|
||||
|
||||
|
||||
//Classe derivata per la ricezione
|
||||
class TRicezione_AS400 : public TObject_reception
|
||||
{
|
||||
|
||||
private:
|
||||
virtual void build_balancetree(int);
|
||||
virtual void build_ana_tree(long&, TRectype&, TRectype*, TRectype*, TAssoc_array&);
|
||||
virtual void build_relana(TString&, const TMask&, const TFilename&);
|
||||
void build_balancetree(int);
|
||||
void build_ana_tree(long&, TRectype&, TRectype*, TRectype*, TAssoc_array&);
|
||||
void build_relana(TString&, const TMask&, const TFilename&);
|
||||
void naviga_array(TAlbero_record &a);
|
||||
void scrivi_array(TAssoc_array &s_rec, int);
|
||||
|
||||
protected:
|
||||
virtual void set_tipo_bil(const TString&);
|
||||
const TString & get_tipo_bil() const {return _tipo_bilancio;}
|
||||
virtual void ricevi(TMask &);
|
||||
//Questa funzione Š da usare solo in fase di debug
|
||||
TFile_text_AS400 *trasfile() {return (TFile_text_AS400 *)_trasfile;}
|
||||
virtual void leggi_temp_link(TRectype& cur_rec,TToken_string& k);
|
||||
//Questa funzione è da usare solo in fase di debug
|
||||
//void print_ana_tree(int & level, TRectype&,FILE * stream);
|
||||
public:
|
||||
TRicezione_AS400() {}
|
||||
virtual void ricevi(TMask &);
|
||||
TRicezione_AS400(const TFilename &percorso);
|
||||
virtual ~TRicezione_AS400() {}
|
||||
};
|
||||
|
||||
|
||||
//Classe derivata per il trasferimento
|
||||
class TTrasferimento_AS400:public TRiceTras
|
||||
//Classe derivata per la ricezione
|
||||
class TRicezione_userdef : public TObject_reception
|
||||
{
|
||||
public:
|
||||
//virtual void ricevi(TMask &);
|
||||
TRicezione_userdef(const TString & config, const TFilename &percorso) ;
|
||||
virtual ~TRicezione_userdef() {}
|
||||
};
|
||||
|
||||
|
||||
|
||||
//classe derivata nella quale viene gestita la funzione di trasferimento
|
||||
class TTrasfer: public TApplication
|
||||
{
|
||||
// private:
|
||||
// TArray _files;
|
||||
protected:
|
||||
// TFile_text* _trasfile; //File di testo
|
||||
virtual bool menu(MENU_TAG) pure; //Gli dico che non è implementata in questa classe, ma obbligatoriamente in un'altra
|
||||
|
||||
//Controlla che il percorso e il file specificati esistono
|
||||
static bool inseriscipercorso(TMask_field& f, KEY k);
|
||||
public:
|
||||
TTrasfer() {}
|
||||
virtual ~TTrasfer() {}
|
||||
};
|
||||
|
||||
|
||||
class TRicezione:public TTrasfer
|
||||
{
|
||||
private:
|
||||
TArray _files;
|
||||
|
||||
TObject_reception *_rice;
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//Seleziona da quale file prelevare le informazioni del tracciato record
|
||||
// void set_config_name(TString&,TMask&);
|
||||
TObject_reception *set_transfer(int tipo_ricezione ,const TFilename & percorso_temp, const TString & config_file_temp);
|
||||
TObject_reception *transfer() {return _rice;}
|
||||
|
||||
|
||||
TFile_text * trans_file() {return _rice->trans_file();}
|
||||
TRicezione() {}
|
||||
virtual ~TRicezione() {}
|
||||
};
|
||||
|
||||
|
||||
|
||||
//Classe derivata per il trasferimento
|
||||
class TInvio_AS400:public TTrasfer
|
||||
{
|
||||
TFile_text* _trasfile; //File di testo da cui ricevere
|
||||
protected:
|
||||
virtual bool menu(MENU_TAG);
|
||||
static bool inseriscipercorso(TMask_field& f, KEY k);
|
||||
@ -198,28 +255,8 @@ class TTrasferimento_AS400:public TRiceTras
|
||||
bool mov_da_scrivere(TRectype &);
|
||||
void formatta(TRecord_text&,TRectype&,int&);
|
||||
public:
|
||||
TTrasferimento_AS400() {}
|
||||
virtual ~TTrasferimento_AS400() {}
|
||||
};
|
||||
|
||||
class TFile_text_AS400: public TFile_text
|
||||
{
|
||||
TAssoc_array _last_id;
|
||||
// static long _idcaradd;
|
||||
long _idncomp;
|
||||
//long _idcoldich;
|
||||
TString _codvc_prec;
|
||||
protected:
|
||||
// virtual void preformat_field(TRelation& rel,const TFieldref&field,const TRecord_text& rec,TString &str);
|
||||
virtual void preformat_field(const TFieldref&field,TString &str,TRelation& rel,const TString &tipo_tr);
|
||||
void cambia_anno(TString& str);
|
||||
void cambia_data(TString& str);
|
||||
virtual bool pre_writerel(TRelation& rel,const TRecord_text& rec);
|
||||
void scrivi_temp_link(TRelation& rel,const TRecord_text& rec);
|
||||
void aggiorna_rel_link(TLocalisamfile &relvoc);
|
||||
public:
|
||||
TFile_text_AS400(const char* file_name, const char* set_config_name);
|
||||
virtual ~TFile_text_AS400() {}
|
||||
TInvio_AS400() {}
|
||||
virtual ~TInvio_AS400() {}
|
||||
};
|
||||
|
||||
// **********************
|
||||
|
332
ab/ab2101.cpp
332
ab/ab2101.cpp
@ -1,5 +1,4 @@
|
||||
//AB2101.CPP: Ricezione tabelle
|
||||
|
||||
#include <utility.h> //Definizione di fexit
|
||||
#include "movdett.h" //Contiene le definizioni di costanti relative ai nomi dei campi di LF_MOVDETT
|
||||
#include "saldi.h" //Contiene le definizioni di costanti relative ai nomi dei campi di LF_SALDI
|
||||
@ -13,89 +12,40 @@
|
||||
#include <progind.h>
|
||||
#include <assoc.h>
|
||||
|
||||
#define FLAG_COGE '1'
|
||||
#define FLAG_DETT '2'
|
||||
#define FLAG_MOVIMENTO '3' // così i movs sono alla fine
|
||||
#define FLAG_INDICE "I"
|
||||
#define FLAG_SOTTOD "S"
|
||||
#define FLAG_COMPOSTA "C"
|
||||
#define FLAG_ANALISI "A"
|
||||
#define FLAG_VOCI "V"
|
||||
|
||||
//Definizioni di constanti per il record di testata
|
||||
#define RECORD_TESTA "1"
|
||||
#define ABILITATO "X"
|
||||
#define AB_PIANO_CONTI 2
|
||||
#define AB_PERIODI_BIL 3
|
||||
#define AB_ANALISI 4
|
||||
#define AB_SALDI 8
|
||||
#define AB_DETT 9
|
||||
#define AB_MOV 10
|
||||
TToken_string TAlbero_record ::wrk_string;
|
||||
|
||||
|
||||
/* ********************************************************************************************************* */
|
||||
/* TFile_text_AS400 */
|
||||
/*********************************************************************************************************** */
|
||||
|
||||
//Costruttore di TABfile_text: lo inizializzo a 0
|
||||
TABfile_text::TABfile_text(const char* file_name, const char* set_config_name)
|
||||
: TFile_text(file_name, set_config_name),_idncomp(1)
|
||||
//Costruttore di TFile_text_AS400: lo inizializzo a 0
|
||||
TFile_text_AS400::TFile_text_AS400(const char* file_name, const char* config_name)
|
||||
: TFile_text(file_name, config_name),_idncomp(1),_tipo_bilancio("")
|
||||
{
|
||||
}
|
||||
|
||||
class TAlbero_record : public TAssoc_array
|
||||
{
|
||||
static TToken_string wrk_string;
|
||||
public:
|
||||
void dept_first(TToken_string key, TRectype * padre, TRectype * prec, int &curr_id, TString_array & allkeys, TToken_string ** prog_key);
|
||||
|
||||
TToken_string& cerca_fratello (TToken_string &key, TString_array& allkeys, TToken_string ** next_key);
|
||||
TToken_string& cerca_figlio (TToken_string &key, TString_array& allkeys, TToken_string ** next_key);
|
||||
TAlbero_record() {}
|
||||
virtual ~TAlbero_record(){}
|
||||
};
|
||||
|
||||
TToken_string TAlbero_record ::wrk_string;
|
||||
|
||||
//Classe derivata per la ricezione
|
||||
class TRicezione:public TRiceTras
|
||||
{
|
||||
TString _tipo_bilancio;
|
||||
protected:
|
||||
virtual void leggi_temp_link(TRectype& cur_rec,TToken_string& k);
|
||||
public:
|
||||
void set_tipo_bil(const TString&);
|
||||
const TString & get_tipo_bil() const {return _tipo_bilancio;}
|
||||
virtual bool menu(MENU_TAG);
|
||||
//Controlla che il percorso e il file specificati esistono
|
||||
static bool inseriscipercorso(TMask_field& f, KEY k);
|
||||
//Esegue il ciclo di ricezione
|
||||
void ricevi(TMask &);
|
||||
void build_balancetree(int);
|
||||
void naviga_array(TAlbero_record &a);
|
||||
void scrivi_array(TAssoc_array &s_rec, int);
|
||||
void build_relana(TString&, const TMask&, const TFilename&);
|
||||
void build_ana_tree(long&, TRectype&, TRectype*, TRectype*, TAssoc_array&);
|
||||
//Questa funzione è da usare solo in fase di debug
|
||||
//void print_ana_tree(int & level, TRectype&,FILE * stream);
|
||||
TRicezione() {}
|
||||
virtual ~TRicezione() {}
|
||||
};
|
||||
|
||||
inline TRicezione& app()
|
||||
{
|
||||
return (TRicezione&) main_app();
|
||||
}
|
||||
|
||||
void TABfile_text::cambia_anno(TString& str)
|
||||
{
|
||||
if (atoi(str)>0)
|
||||
|
||||
void TFile_text_AS400::cambia_anno(TString& str)
|
||||
{
|
||||
//Trasformo dal formato aa al formato aaaa solo se la data è nel formato aa:
|
||||
//se str > 99 allora significa che la data è già in formato aaaa e quindi non deve eseguire nessun cambio
|
||||
if ((atoi(str)>0) && (atoi(str) < 99))
|
||||
{
|
||||
if (str > "50") //Trasformo dal formato aa al formato aaaa
|
||||
if (str > "50")
|
||||
str.insert("19");
|
||||
else
|
||||
str.insert("20");
|
||||
}
|
||||
}
|
||||
|
||||
void TABfile_text::cambia_data(TString &str)
|
||||
void TFile_text_AS400::cambia_data(TString &str)
|
||||
{
|
||||
if (atoi(str)>0)
|
||||
{
|
||||
@ -114,8 +64,8 @@ void TABfile_text::cambia_data(TString &str)
|
||||
}
|
||||
|
||||
//Questa funzione esegue la conversione dell'anno dal formato aa al formato aaaa
|
||||
//void TABfile_text::preformat_field(TRelation& rel,const TFieldref&field,const TRecord_text& rec,TString &str)
|
||||
void TABfile_text::preformat_field(const TFieldref& field, TString &str,TRelation& rel,const TString &tipo_tr)
|
||||
//void TFile_text_AS400::preformat_field(TRelation& rel,const TFieldref&field,const TRecord_text& rec,TString &str)
|
||||
void TFile_text_AS400::preformat_field(const TFieldref& field, TString &str,TRelation& rel,const TString &tipo_tr)
|
||||
{
|
||||
if (field.file()==LF_MOVDETT)
|
||||
{//Parte riservata ai MOVIMENTI/DETTAGLI
|
||||
@ -147,7 +97,7 @@ void TABfile_text::preformat_field(const TFieldref& field, TString &str,TRelatio
|
||||
}
|
||||
|
||||
//Assegno valori temporanei a IDPADRE, IDFIGLIO, IDSUCC, IDPREC
|
||||
void TABfile_text::scrivi_temp_link(TRelation& rel,const TRecord_text& rec)
|
||||
void TFile_text_AS400::scrivi_temp_link(TRelation& rel,const TRecord_text& rec)
|
||||
{
|
||||
if ((rec.type() == MOVIMENTO3) || (rec.type() == MOVIMENTO4) || (rec.type() == MOVIMENTO5))
|
||||
{
|
||||
@ -209,7 +159,7 @@ void TABfile_text::scrivi_temp_link(TRelation& rel,const TRecord_text& rec)
|
||||
}
|
||||
|
||||
|
||||
void TABfile_text::aggiorna_rel_link(TLocalisamfile &relvoc)
|
||||
void TFile_text_AS400::aggiorna_rel_link(TLocalisamfile &relvoc)
|
||||
{
|
||||
if (relvoc.get_long(ABRL_IDCOMP) > 1)
|
||||
{ //Ci deve essere un precedente
|
||||
@ -233,13 +183,16 @@ void TABfile_text::aggiorna_rel_link(TLocalisamfile &relvoc)
|
||||
}
|
||||
}
|
||||
|
||||
bool TABfile_text::pre_writerel(TRelation& rel,const TRecord_text& rec)
|
||||
bool TFile_text_AS400::pre_writerel(TRelation& rel,const TRecord_text& rec)
|
||||
{
|
||||
int logic_num=rel.lfile().num(); //Carico il numero logico del file che sto utilizzando
|
||||
|
||||
if (logic_num==LF_ABSALDI)
|
||||
{//Parte riservata ai SALDI
|
||||
rel.lfile().put(ABMD_TIPOBIL,app().get_tipo_bil());
|
||||
{//Parte riservata ai SALDI: modifico (immetto) il tipo di bilancio con il valore passato da maschera
|
||||
//solo se questo campo è vuoto, nel caso contratio lascio il valore letto
|
||||
TString prova = rel.lfile().get(ABMD_TIPOBIL);
|
||||
if ( rel.lfile().get(ABMD_TIPOBIL) == "" )
|
||||
rel.lfile().put(ABMD_TIPOBIL,get_tipo_bil());
|
||||
return TRUE;
|
||||
}//Fine parte riservata ai SALDI
|
||||
|
||||
@ -283,20 +236,20 @@ bool TABfile_text::pre_writerel(TRelation& rel,const TRecord_text& rec)
|
||||
{//E' un COGE e quindi inserisco anche il Coddett
|
||||
rel.lfile().put(ABMD_TIPODETT,"CG");
|
||||
rel.lfile().put(ABMD_CODDETT,rec.get(CONTO_COGE_MOVDETT));
|
||||
rel.lfile().put(ABMD_TIPOBIL,app().get_tipo_bil());
|
||||
rel.lfile().put(ABMD_TIPOBIL,get_tipo_bil());
|
||||
}
|
||||
else
|
||||
{//In questo caso inserisco Coddett = 0 per azzerare eventuali altri valori
|
||||
//già scritti precedentemente
|
||||
rel.lfile().put(ABMD_TIPODETT,"DT");
|
||||
rel.lfile().put(ABMD_CODDETT,0);
|
||||
rel.lfile().put(ABMD_TIPOBIL,app().get_tipo_bil());
|
||||
rel.lfile().put(ABMD_TIPOBIL,get_tipo_bil());
|
||||
}
|
||||
}
|
||||
else
|
||||
{//Può essere solo un "movimento" perchè il tipo record è MOVI1 o MOVI2
|
||||
rel.lfile().put(ABMD_TIPODETT,"MO");
|
||||
rel.lfile().put(ABMD_TIPOBIL,app().get_tipo_bil());
|
||||
rel.lfile().put(ABMD_TIPOBIL,get_tipo_bil());
|
||||
rel.lfile().put(ABMD_CODDETT,0); //Azzero il contenuto del campo da valori precedenti
|
||||
real r(rec.get(CONTO_COGE_MOVDETT)); //Eseguo una conversione per un controllo numerico
|
||||
if (r > 0)
|
||||
@ -461,10 +414,13 @@ bool TABfile_text::pre_writerel(TRelation& rel,const TRecord_text& rec)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* ********************************************************************************************************* */
|
||||
/* TTrasfer */
|
||||
/*********************************************************************************************************** */
|
||||
|
||||
//Questo Handler viene "richiamato" da tre campi:
|
||||
// F_PERCORSO, F_PERCORSO_UTENTE, F_TIPO_RICE
|
||||
bool TRicezione::inseriscipercorso(TMask_field& f, KEY k)
|
||||
bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k)
|
||||
{
|
||||
bool modificato = FALSE; //Questa mi dice quando c'è stata una modifica sulla maschera
|
||||
if ((k==K_TAB) &&
|
||||
@ -491,7 +447,6 @@ bool TRicezione::inseriscipercorso(TMask_field& f, KEY k)
|
||||
modificato=TRUE;
|
||||
}
|
||||
|
||||
|
||||
if (((f.dlg() == F_PERCORSO) || (f.dlg() == F_TIPO_RICE ))&& modificato)
|
||||
{//Entro in questo if tutte le volte che è stato modificato il campo F_PERCORSO
|
||||
//o F_TIPO_RICE
|
||||
@ -501,11 +456,14 @@ bool TRicezione::inseriscipercorso(TMask_field& f, KEY k)
|
||||
//non è garantito che ci sia un record di testa
|
||||
TWait_cursor hourglass;
|
||||
TRecord_text rec_temp; //Istanzio un tipo record_text
|
||||
TString config_file_temp; //Nome del file di configurazione
|
||||
TFilename percorso_temp; //Contiene il percorso completo del file sorgente
|
||||
|
||||
TString config_file_temp(f.mask().get(F_PERCORSO_UTENTE));//Nome del file di configurazione
|
||||
TFilename percorso_temp(f.mask().get(F_PERCORSO)); //Contiene il percorso completo del file sorgente
|
||||
int tipo_ricezione = f.mask().get_int(F_TIPO_RICE);
|
||||
app().set_transfer(tipo_ricezione,percorso_temp,config_file_temp);
|
||||
|
||||
TFile_text *file_temp=NULL;
|
||||
percorso_temp=f.mask().get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO
|
||||
file_temp=app().set_config_name(config_file_temp,f.mask(),percorso_temp);
|
||||
file_temp=app().trans_file();
|
||||
file_temp->open('r'); //Apro il file di testo in rettura
|
||||
int err = file_temp->read(rec_temp); //Leggo la prima riga del file di testo (dovrebbe contenere il record di testata)
|
||||
if((err == NOERR) && (rec_temp.type() == RECORD_TESTA)) //Controllo la lettura e che ci sia il record di testa
|
||||
@ -548,7 +506,75 @@ bool TRicezione::inseriscipercorso(TMask_field& f, KEY k)
|
||||
}
|
||||
|
||||
|
||||
void TRicezione::ricevi(TMask & msk)
|
||||
/* ********************************************************************************************************* */
|
||||
/* TRicezione */
|
||||
/*********************************************************************************************************** */
|
||||
|
||||
bool TRicezione::create()
|
||||
{
|
||||
_files.add(new TLocalisamfile(LF_CARADD),1);
|
||||
_files.add(new TLocalisamfile(LF_COLLDICH),2);
|
||||
dispatch_e_menu(BAR_ITEM(1)); //Simula la scelta di una voce di menu
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TRicezione::destroy() //Distruttore
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Funzione membro che effettua la conversione
|
||||
bool TRicezione::menu(MENU_TAG)
|
||||
{
|
||||
TString config_file; //Nome del file di configurazione
|
||||
TMask msk("AB2100A"); //Maschera dove si chiede di immettere il percorso del file sorgente
|
||||
TFilename percorso; //Contiene il percorso completo del file sorgente
|
||||
msk.set_handler(F_PERCORSO, inseriscipercorso); //Assegno un handler al campo F_PERCORSO
|
||||
//inseriscipercorso controlla che il percorso (e il file) esista e sia corretto
|
||||
msk.set_handler(F_PERCORSO_UTENTE, inseriscipercorso);
|
||||
msk.set_handler(F_TIPO_RICE, inseriscipercorso);
|
||||
//A questo punto il percorso e' corretto
|
||||
if (msk.run()== K_ENTER) //Eseguo la maschera
|
||||
{
|
||||
//Visualizza una finestra di attesa
|
||||
TIndwin idle(0,"Attendere: aggiornamento della tabella in corso. L'operazione potrebbe richiedere qualche minuto ... ",FALSE,FALSE,60);
|
||||
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO
|
||||
|
||||
|
||||
if (msk.get_int(F_TIPO_RICE) == RICEZIONE_AS400)
|
||||
{
|
||||
_rice = new TRicezione_AS400(percorso);
|
||||
}
|
||||
if (msk.get_int(F_TIPO_RICE) == RICEZIONE_INTERNA)
|
||||
{
|
||||
_rice = new TObject_reception(percorso);
|
||||
}
|
||||
if (msk.get_int(F_TIPO_RICE) == RICEZIONE_USER_DEFINED)
|
||||
{
|
||||
_rice = new TObject_reception(percorso);
|
||||
}
|
||||
|
||||
_rice->ricevi(msk);
|
||||
|
||||
/* if ((msk.get_int(F_TIPO_RICE) == RICEZIONE_AS400) &&
|
||||
(msk.get_bool(F_MOVIMENTI)))
|
||||
{
|
||||
build_balancetree(LF_MOVDETT);
|
||||
} */
|
||||
//La chiusura del _trasfile non può essere eseguita prima poichè questo
|
||||
//serve nella costruzione dell'albero dei movimenti
|
||||
/* if (msk.get_bool(F_SRELAZ))
|
||||
build_relana(config_file,msk,percorso); */
|
||||
//messaggio finale
|
||||
message_box(" ... aggiornamento delle tabelle selezionate effettuato");
|
||||
} //end if (msk.run())
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
void TObject_reception::ricevi(TMask & msk)
|
||||
{
|
||||
TRecord_text rec; //Istanzio un tipo record_text
|
||||
|
||||
@ -599,19 +625,12 @@ void TRicezione::ricevi(TMask & msk)
|
||||
//Finita prima fase di aggionamento, si passa eventualmente alla seconda
|
||||
}
|
||||
|
||||
// prepara l'albero di record per la navigazione e lo naviga
|
||||
void TRicezione::naviga_array(TAlbero_record &a)
|
||||
{
|
||||
int curr_id=1;
|
||||
TString_array allkeys;
|
||||
a.get_keys(allkeys);
|
||||
allkeys.sort();
|
||||
TToken_string radice,*next_key;
|
||||
radice=(TToken_string &)*allkeys.first_item();// radice
|
||||
next_key=(TToken_string *)allkeys.succ_item();// chiave seguente (figlio? fratello?)
|
||||
|
||||
a.dept_first(radice, NULL,NULL, curr_id,allkeys,&next_key);
|
||||
}
|
||||
|
||||
|
||||
/* ********************************************************************************************************* */
|
||||
/* TAlbero_record */
|
||||
/*********************************************************************************************************** */
|
||||
|
||||
// visita in dept first e aggiunge man mano i link corretti ai nodi
|
||||
void TAlbero_record::dept_first(TToken_string key, TRectype * padre, TRectype * prec, int &curr_id,
|
||||
@ -674,7 +693,6 @@ void TAlbero_record::dept_first(TToken_string key, TRectype * padre, TRectype *
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//key is: FLAG|CODDETT|NREG|NRIG
|
||||
TToken_string& TAlbero_record ::cerca_figlio (TToken_string &key,
|
||||
TString_array& allkeys, // parametri ricerca COGE
|
||||
@ -815,7 +833,26 @@ TToken_string& TAlbero_record ::cerca_fratello (TToken_string &key,
|
||||
return wrk_string;
|
||||
}
|
||||
|
||||
void TRicezione::scrivi_array(TAssoc_array &s_rec, int logic_num)
|
||||
|
||||
/* ********************************************************************************************************* */
|
||||
/* TRicezione_AS400 */
|
||||
/*********************************************************************************************************** */
|
||||
|
||||
// prepara l'albero di record per la navigazione e lo naviga
|
||||
void TRicezione_AS400::naviga_array(TAlbero_record &a)
|
||||
{
|
||||
int curr_id=1;
|
||||
TString_array allkeys;
|
||||
a.get_keys(allkeys);
|
||||
allkeys.sort();
|
||||
TToken_string radice,*next_key;
|
||||
radice=(TToken_string &)*allkeys.first_item();// radice
|
||||
next_key=(TToken_string *)allkeys.succ_item();// chiave seguente (figlio? fratello?)
|
||||
|
||||
a.dept_first(radice, NULL,NULL, curr_id,allkeys,&next_key);
|
||||
}
|
||||
|
||||
void TRicezione_AS400::scrivi_array(TAssoc_array &s_rec, int logic_num)
|
||||
{
|
||||
|
||||
TRectype *rec; //Creo un tipo di record dove inserire il record
|
||||
@ -837,7 +874,7 @@ void TRicezione::scrivi_array(TAssoc_array &s_rec, int logic_num)
|
||||
}
|
||||
}
|
||||
|
||||
void TRicezione::leggi_temp_link(TRectype& cur_rec,TToken_string& k)
|
||||
void TRicezione_AS400::leggi_temp_link(TRectype& cur_rec,TToken_string& k)
|
||||
{
|
||||
TString campo1 = cur_rec.get(ABMD_IDPADRE);
|
||||
TString campo2 = cur_rec.get(ABMD_IDFIGLIO);
|
||||
@ -852,7 +889,7 @@ void TRicezione::leggi_temp_link(TRectype& cur_rec,TToken_string& k)
|
||||
}
|
||||
|
||||
|
||||
void TRicezione::build_balancetree(int logic_num)
|
||||
void TRicezione_AS400::build_balancetree(int logic_num)
|
||||
{
|
||||
TAlbero_record seleziona_record; //Dichiarazione di un assoc_array
|
||||
TRelation rel(logic_num); //Creo un nuova relazione
|
||||
@ -897,7 +934,7 @@ void TRicezione::build_balancetree(int logic_num)
|
||||
}
|
||||
}
|
||||
|
||||
void TRicezione::build_relana(TString& config_file, const TMask &msk, const TFilename& percorso)
|
||||
void TRicezione_AS400::build_relana(TString& config_file, const TMask &msk, const TFilename& percorso)
|
||||
{
|
||||
TString16 curr_ana;
|
||||
TToken_string key;
|
||||
@ -909,7 +946,9 @@ void TRicezione::build_relana(TString& config_file, const TMask &msk, const TFil
|
||||
rel.add(LF_COLLDICH,"ID=IDCOLDICH");
|
||||
rel.add(LF_CARADD,"ID=IDCARADD");
|
||||
|
||||
ft = set_config_name(config_file,msk,percorso);
|
||||
//ft = set_config_name(config_file,msk,percorso);
|
||||
ft = trans_file();
|
||||
ft->close(); //Chiudo il file
|
||||
ft->open('r'); //Apro il file di testo in lettura
|
||||
|
||||
//Inizia il ciclo sulle Analisi in radici
|
||||
@ -1001,7 +1040,7 @@ void TRicezione::build_relana(TString& config_file, const TMask &msk, const TFil
|
||||
|
||||
|
||||
// naviga per ricostruire il numero di sottorelazione
|
||||
void TRicezione::build_ana_tree(long &currid, TRectype & nodo, TRectype * father, TRectype * brother, TAssoc_array & tabtree)
|
||||
void TRicezione_AS400::build_ana_tree(long &currid, TRectype & nodo, TRectype * father, TRectype * brother, TAssoc_array & tabtree)
|
||||
{
|
||||
TRectype *ana_node;
|
||||
TToken_string key;
|
||||
@ -1072,12 +1111,10 @@ void TRicezione::build_ana_tree(long &currid, TRectype & nodo, TRectype * father
|
||||
ana_node->put(ABRA_IDSUCC, ID_NULLO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
// Questa funzione serve solo in fase di debug:
|
||||
// naviga per ricostruire il numero di sottorelazione
|
||||
void TRicezione::print_ana_tree(int &level,TRectype & nodo,FILE * stream)
|
||||
void TRicezione_AS400::print_ana_tree(int &level,TRectype & nodo,FILE * stream)
|
||||
{
|
||||
TToken_string key;
|
||||
|
||||
@ -1111,51 +1148,60 @@ void TRicezione::print_ana_tree(int &level,TRectype & nodo,FILE * stream)
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void TRicezione::set_tipo_bil(const TString &tipo_bil)
|
||||
void TRicezione_AS400::ricevi(TMask & msk)
|
||||
{
|
||||
_tipo_bilancio = tipo_bil;
|
||||
}
|
||||
|
||||
//Funzione membro che effettua la conversione
|
||||
bool TRicezione::menu(MENU_TAG)
|
||||
{
|
||||
TString config_file; //Nome del file di configurazione
|
||||
TMask msk("AB2100A"); //Maschera dove si chiede di immettere il percorso del file sorgente
|
||||
TFilename percorso; //Contiene il percorso completo del file sorgente
|
||||
msk.set_handler(F_PERCORSO, inseriscipercorso); //Assegno un handler al campo F_PERCORSO
|
||||
//inseriscipercorso controlla che il percorso (e il file) esista e sia corretto
|
||||
msk.set_handler(F_PERCORSO_UTENTE, inseriscipercorso);
|
||||
msk.set_handler(F_TIPO_RICE, inseriscipercorso);
|
||||
_trasfile=NULL;
|
||||
//A questo punto il percorso e' corretto
|
||||
if (msk.run()== K_ENTER) //Eseguo la maschera
|
||||
{
|
||||
//Visualizza una finestra di attesa
|
||||
TIndwin idle(0,"Attendere: aggiornamento della tabella in corso.\n\nL'operazione potrebbe richiedere qualche minuto ... ",FALSE,FALSE,60);
|
||||
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO
|
||||
|
||||
_trasfile=set_config_name(config_file,msk,percorso);
|
||||
_trasfile->open('r'); //Apro il file di testo in rettura
|
||||
set_tipo_bil(msk.get(F_TIPO_BILANCIO));
|
||||
|
||||
ricevi(msk);
|
||||
if (msk.get_bool(F_MOVIMENTI))
|
||||
build_balancetree(LF_MOVDETT);
|
||||
//La chiusura del _trasfile non può essere eseguita prima poichè questo
|
||||
//serve nella costruzione dell'albero dei movimenti
|
||||
// Eseguo la ricezione normale
|
||||
TObject_reception::ricevi(msk);
|
||||
trasfile()->set_tipo_bilancio(msk.get(F_TIPO_BILANCIO));
|
||||
|
||||
// E aggiungo il resto ...
|
||||
if (msk.get_bool(F_MOVIMENTI))
|
||||
{
|
||||
build_balancetree(LF_MOVDETT);
|
||||
}
|
||||
//La chiusura del _trasfile non può essere eseguita prima poichè questo
|
||||
//serve nella costruzione dell'albero dei movimenti
|
||||
if (_trasfile != NULL)
|
||||
{
|
||||
_trasfile->close();
|
||||
delete _trasfile;
|
||||
_trasfile =NULL;
|
||||
|
||||
if (msk.get_bool(F_SRELAZ))
|
||||
build_relana(config_file,msk,percorso);
|
||||
//messaggio finale
|
||||
message_box(" ... aggiornamento delle tabelle selezionate effettuato");
|
||||
} //end if (msk.run())
|
||||
return FALSE;
|
||||
}
|
||||
if (msk.get_bool(F_SRELAZ))
|
||||
{
|
||||
TString config_file;
|
||||
TFilename percorso;
|
||||
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO: è stato controllato prima
|
||||
build_relana(config_file,msk,percorso);
|
||||
}
|
||||
}
|
||||
|
||||
TObject_reception::TObject_reception(const TFilename &percorso)
|
||||
{
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile = new TFile_text(percorso, "C:/SAURO/TEMP/AB2100B.INI"); /*DA CAMBIARE*/
|
||||
//_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione
|
||||
}
|
||||
|
||||
TRicezione_AS400::TRicezione_AS400(const TFilename &percorso)
|
||||
{
|
||||
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
TString config("ab2100a.ini");
|
||||
_trasfile = new TFile_text_AS400(percorso, config); //Leggo il file di configurazione
|
||||
}
|
||||
TRicezione_userdef ::TRicezione_userdef(const TString & config, const TFilename &percorso)
|
||||
{
|
||||
if (_trasfile != NULL)
|
||||
delete _trasfile;
|
||||
_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int ab2101(int argc, char **argv)
|
||||
{
|
||||
TRicezione a;
|
||||
|
@ -9,48 +9,27 @@
|
||||
#include <progind.h>
|
||||
#include <assoc.h>
|
||||
#include <varrec.h>
|
||||
#define FLAG_COGE "CG"
|
||||
#define FLAG_DETT "DT"
|
||||
#define FLAG_CLIENTE "CL"
|
||||
#define FLAG_FORNITORE "FO"
|
||||
#define FLAG_MOVIMENTO "MO" // così i movs sono alla fine
|
||||
|
||||
|
||||
//Classe derivata per il trasferimento
|
||||
class TTrasferimento:public TRiceTras
|
||||
{
|
||||
public:
|
||||
virtual bool menu(MENU_TAG);
|
||||
static bool inseriscipercorso(TMask_field& f, KEY k);
|
||||
//Esegue il ciclo di ricezione
|
||||
void converti(int);
|
||||
void trasferisci_albero(TRectype &,TRecord_text&, TAssoc_array&);
|
||||
bool cerca_padre(TLocalisamfile &, TRectype &);
|
||||
long my_num(TLocalisamfile&, TAssoc_array&);
|
||||
bool mov_da_scrivere(TRectype &);
|
||||
void formatta(TRecord_text&,TRectype&,int&);
|
||||
TTrasferimento() {}
|
||||
virtual ~TTrasferimento() {}
|
||||
};
|
||||
|
||||
const char* get_ordinamento(TVariable_rectype & rec)
|
||||
{
|
||||
if (rec.get(ABMD_TIPODETT) == FLAG_DETT || rec.get(ABMD_TIPODETT) == FLAG_COGE )
|
||||
if (rec.get(ABMD_TIPODETT) == FLAG_DETT_DT || rec.get(ABMD_TIPODETT) == FLAG_COGE_CG )
|
||||
{ //E' un record di MOVI3
|
||||
return (MOVIMENTO3);
|
||||
}
|
||||
|
||||
if (rec.get(ABMD_TIPODETT) == FLAG_CLIENTE)
|
||||
if (rec.get(ABMD_TIPODETT) == FLAG_CLIENTE_CL)
|
||||
{//E' un record di MOVI4
|
||||
return (MOVIMENTO4);
|
||||
}
|
||||
|
||||
if (rec.get(ABMD_TIPODETT) == FLAG_FORNITORE)
|
||||
if (rec.get(ABMD_TIPODETT) == FLAG_FORNITORE_FO)
|
||||
{//E' un record di MOVI5
|
||||
return (MOVIMENTO5);
|
||||
}
|
||||
|
||||
if (rec.get(ABMD_TIPODETT) == FLAG_MOVIMENTO)
|
||||
if (rec.get(ABMD_TIPODETT) == FLAG_MOVIMENTO_MO)
|
||||
{//Può essere MOVI 1 2
|
||||
real r(rec.get(ABMD_IMPORTO));
|
||||
if (r > 0)
|
||||
@ -64,7 +43,7 @@ const char* get_ordinamento(TVariable_rectype & rec)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool TTrasferimento::cerca_padre(TLocalisamfile & padre, TRectype &node)
|
||||
bool TInvio_AS400::cerca_padre(TLocalisamfile & padre, TRectype &node)
|
||||
{
|
||||
padre.put(ABMD_CODDITTA,node.get(ABMD_CODDITTA));
|
||||
padre.put(ABMD_ANNO,node.get(ABMD_ANNO));
|
||||
@ -77,7 +56,7 @@ bool TTrasferimento::cerca_padre(TLocalisamfile & padre, TRectype &node)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
long TTrasferimento::my_num(TLocalisamfile& mov, TAssoc_array& progressivi)
|
||||
long TInvio_AS400::my_num(TLocalisamfile& mov, TAssoc_array& progressivi)
|
||||
{
|
||||
long ret = 1;
|
||||
|
||||
@ -113,20 +92,20 @@ long TTrasferimento::my_num(TLocalisamfile& mov, TAssoc_array& progressivi)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void TTrasferimento::trasferisci_albero(TRectype &node, TRecord_text &rec, TAssoc_array &progressivi)
|
||||
void TInvio_AS400::trasferisci_albero(TRectype &node, TRecord_text &rec, TAssoc_array &progressivi)
|
||||
{
|
||||
TLocalisamfile mov(LF_MOVDETT);
|
||||
|
||||
//Se è un COGE scrivo il CODICE_COGE nel relativo campo
|
||||
if (node.get(ABMD_TIPODETT) == FLAG_COGE)
|
||||
if (node.get(ABMD_TIPODETT) == FLAG_COGE_CG)
|
||||
rec.add(node.get(ABMD_CODDETT),CONTO_COGE_MOVDETT);
|
||||
|
||||
//Se è un movimento ...
|
||||
if (node.get(ABMD_TIPODETT)== FLAG_MOVIMENTO)
|
||||
if (node.get(ABMD_TIPODETT)== FLAG_MOVIMENTO_MO)
|
||||
{ //... sono all'ultimo livello: trovo il padre
|
||||
if (cerca_padre(mov,node))
|
||||
{//Questo è il padre del movimento
|
||||
if (mov.get(ABMD_TIPODETT) == FLAG_COGE) //Se il padre è un COGE scrivo il CONTO COGE nel relativo campo
|
||||
if (mov.get(ABMD_TIPODETT) == FLAG_COGE_CG) //Se il padre è un COGE scrivo il CONTO COGE nel relativo campo
|
||||
rec.add(node.get(ABMD_CODDETT),CONTO_COGE_MOVDETT);
|
||||
//altrimenti, se il padre è un dettaglio, non scrivo nessuna informazione aggiuntiva
|
||||
}
|
||||
@ -162,7 +141,7 @@ void TTrasferimento::trasferisci_albero(TRectype &node, TRecord_text &rec, TAsso
|
||||
}//Fine parte "ricostruzione" albero dei movimenti
|
||||
|
||||
//Questa parte "ricostruisce" l'albero dei dettaglio
|
||||
if (node.get(ABMD_TIPODETT)== FLAG_DETT)
|
||||
if (node.get(ABMD_TIPODETT)== FLAG_DETT_DT)
|
||||
{
|
||||
mov.curr()=node;
|
||||
TString16 num;
|
||||
@ -171,7 +150,7 @@ void TTrasferimento::trasferisci_albero(TRectype &node, TRecord_text &rec, TAsso
|
||||
}
|
||||
}
|
||||
|
||||
bool TTrasferimento::mov_da_scrivere(TRectype &node)
|
||||
bool TInvio_AS400::mov_da_scrivere(TRectype &node)
|
||||
{
|
||||
TLocalisamfile dett(LF_MOVDETT);
|
||||
if (node.get_long(ABMD_IDPADRE) == ID_NULLO) //Sono al primo livello
|
||||
@ -183,14 +162,14 @@ bool TTrasferimento::mov_da_scrivere(TRectype &node)
|
||||
return TRUE;
|
||||
else
|
||||
{
|
||||
if (dett.get(ABMD_TIPODETT) == FLAG_COGE) //Sono al terzo livello, ma ammetto solo i COGE
|
||||
if (dett.get(ABMD_TIPODETT) == FLAG_COGE_CG) //Sono al terzo livello, ma ammetto solo i COGE
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE; //Tutti i livelli superiori a 2 e tutti i casi che non riesco a gestire
|
||||
}
|
||||
|
||||
void TTrasferimento::formatta(TRecord_text &rec, TRectype &node, int &logic_num)
|
||||
void TInvio_AS400::formatta(TRecord_text &rec, TRectype &node, int &logic_num)
|
||||
{
|
||||
if (logic_num == LF_MOVDETT)
|
||||
{
|
||||
@ -272,7 +251,7 @@ void TTrasferimento::formatta(TRecord_text &rec, TRectype &node, int &logic_num)
|
||||
}
|
||||
}
|
||||
|
||||
void TTrasferimento::converti(int logic_num)
|
||||
void TInvio_AS400::converti(int logic_num)
|
||||
{
|
||||
|
||||
TRelation *tr_relation=_trasfile->t_rec(logic_num)->relation();
|
||||
@ -330,7 +309,7 @@ void TTrasferimento::converti(int logic_num)
|
||||
}
|
||||
|
||||
//Handler per l'inserimento del percorso completo
|
||||
bool TTrasferimento::inseriscipercorso(TMask_field& f, KEY k)
|
||||
bool TInvio_AS400::inseriscipercorso(TMask_field& f, KEY k)
|
||||
{
|
||||
TString percorso;
|
||||
percorso=f.get(); //Leggo il contenuto del campo
|
||||
@ -339,9 +318,9 @@ bool TTrasferimento::inseriscipercorso(TMask_field& f, KEY k)
|
||||
|
||||
|
||||
//Funzione membro che esegue la conversione di trasferimento
|
||||
bool TTrasferimento::menu(MENU_TAG)
|
||||
bool TInvio_AS400::menu(MENU_TAG)
|
||||
{
|
||||
TString config_file; //Nome del file di configurazione
|
||||
TString config_file("ab2100b"); //Nome del file di configurazione
|
||||
TMask msk("AB2100A"); //Maschera dove si chiede di immettere il percorso del file sorgente
|
||||
TFilename percorso; //Contiene il percorso completo del file sorgente
|
||||
|
||||
@ -356,14 +335,12 @@ bool TTrasferimento::menu(MENU_TAG)
|
||||
msk.hide(F_VOCI); //nascondo questo campo poichè non mi serve
|
||||
msk.hide(F_RELAZ); //nascondo questo campo poichè non mi serve
|
||||
msk.hide(F_SRELAZ); //nascondo questo campo poichè non mi serve
|
||||
//A questo punto il percorso e' corretto
|
||||
if (msk.run()== K_ENTER) //Eseguo la maschera
|
||||
{
|
||||
//A questo punto il percorso e' corretto
|
||||
percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO
|
||||
set_config_name(config_file,msk, percorso);
|
||||
|
||||
|
||||
_trasfile = new TABfile_text(percorso, config_file); //Leggo il file di configurazione
|
||||
|
||||
_trasfile = new TFile_text_AS400(percorso, config_file); //Leggo il file di configurazione
|
||||
_trasfile->open(percorso,'w'); //Apro il file di testo in rettura
|
||||
if (msk.get_bool(F_PIANO_CONTI)==TRUE) //Controllo se si è scelto di convertire il piano dei conti
|
||||
{
|
||||
@ -397,7 +374,7 @@ bool TTrasferimento::menu(MENU_TAG)
|
||||
|
||||
int ab2102(int argc, char **argv)
|
||||
{
|
||||
TTrasferimento a;
|
||||
TInvio_AS400 a;
|
||||
a.run(argc,argv,"Trasferimento su file di testo");
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user