Files correlati : ab0.exe Ricompilazione Demo : [ ] Commento : Aggiunto il supporto delle lingue a ab fare la patch man mano che ci sono spedizioni git-svn-id: svn://10.65.10.50/trunk@11007 c028cbd2-c16b-5b4b-a496-9718f37d4682
344 lines
9.6 KiB
C++
Executable File
344 lines
9.6 KiB
C++
Executable File
//AB2100.H: Classe principale e definizione di costanti
|
||
#ifndef _AB2100_H
|
||
|
||
#ifndef __APPLICAT_H
|
||
#include <applicat.h> //Definizione della classe TApplication
|
||
#endif
|
||
|
||
#ifndef __FILETEXT_H
|
||
#include <filetext.h>
|
||
#endif
|
||
|
||
#ifndef __MASK_H
|
||
#include <mask.h> //Definizione della maschera
|
||
#endif
|
||
|
||
#define ID_NULLO 0
|
||
|
||
//Costanti di definizione dei tipi record
|
||
#define MOVIMENTO1 "MOVI1"
|
||
#define MOVIMENTO2 "MOVI2"
|
||
#define MOVIMENTO3 "MOVI3"
|
||
#define MOVIMENTO4 "MOVI4"
|
||
#define MOVIMENTO5 "MOVI5"
|
||
|
||
#define TIPO_TABELLA_PERIODI "TBBBD"
|
||
#define SIGLA_TABELLA_PERIODI "BB"
|
||
|
||
#define TIPO_SRELAZ "STABI"
|
||
#define TIPO_VOCI "ATAB2"
|
||
|
||
#define TIPO_VOCI "ATAB2"
|
||
|
||
//Costanti di posizionamento nel record_text
|
||
#define SIGLA_TAB_PER 1
|
||
|
||
//Costanti di posizionamento nel record_text dei MOVIMENTI e DETTAGLI
|
||
#define CODICE_DITTA_MOVDETT 1
|
||
#define ANNO_BILANCIO_MOVDETT 2
|
||
#define CODICE_PERIODO_MOVDETT 3
|
||
#define CODICE_TABELLA_MOVDETT 4
|
||
#define CONTO_COGE_MOVDETT 5
|
||
#define PROGRESSIVO_DETT_MOVDETT 6
|
||
#define NUMERO_REG_MOVDETT 8
|
||
#define NUMERO_RIGA_MOVDETT 9
|
||
#define SALDO_INIZIO_ANNO_MOVDETT 13
|
||
#define PROGRESSIVO_DARE_MOVDETT 14
|
||
#define PROGRESSIVO_AVERE_MOVDETT 15
|
||
#define RICLASSIFICAZIONE_DARE_MOVDETT 16
|
||
#define RICLASSIFICAZIONE_AVERE_MOVDETT 17
|
||
#define FLAG_DA_MOVDETT 17
|
||
#define IMPORTO_MOVDETT 19
|
||
#define FLAG_RICLASSIFICAZIONE_MOVDETT 21
|
||
#define SALDO_INIZIO_ANNO_SLD_MOVDETT 9
|
||
#define PROGRESSIVO_DARE_SLD_MOVDETT 10
|
||
#define PROGRESSIVO_AVERE_SLD_MOVDETT 11
|
||
#define RICLASSIFICAZIONE_DARE_SLD_MOVDETT 12
|
||
#define RICLASSIFICAZIONE_AVERE_SLD_MOVDETT 13
|
||
|
||
//Costanti di posizionamento nel record_text per VOCI
|
||
#define TIPO_VOCE_VOCI 6
|
||
#define NCA_VOCI 4
|
||
#define CODVC_VOCI 1
|
||
#define CODCOMP_ANA_VOCI 2
|
||
#define DESCR1_VOCI 5
|
||
#define DESCR2_VOCI 43
|
||
#define VOCI_INCIDENZA 41
|
||
|
||
//Costanti di posizionamento nel record_text per SOTTORELAZIONI
|
||
#define CODAN_SOTTOREL 1
|
||
#define CODVC_SOTTOREL 2
|
||
#define NCOMP_SOTTOREL 3
|
||
#define NSREL_SOTTOREL 5
|
||
|
||
//Costanti tipi di ricesione
|
||
#define RICEZIONE_INTERNA 1
|
||
#define RICEZIONE_AS400 2
|
||
#define RICEZIONE_USER_DEFINED 3
|
||
|
||
//Definizione dei flag
|
||
#define FLAG_COGE '1'
|
||
#define FLAG_DETT '2'
|
||
#define FLAG_MOVIMENTO '3' // cos<6F> 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"
|
||
|
||
|
||
#define FLAG_COGE_CG "CG"
|
||
#define FLAG_DETT_DT "DT"
|
||
#define FLAG_CLIENTE_CL "CL"
|
||
#define FLAG_FORNITORE_FO "FO"
|
||
#define FLAG_MOVIMENTO_MO "MO" // cos<6F> i movs sono alla fine
|
||
|
||
|
||
//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
|
||
|
||
|
||
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(){}
|
||
};
|
||
|
||
class TFile_text_AS400: public TFile_text
|
||
{
|
||
TString16 _tipo_bilancio;
|
||
TAssoc_array _last_id;
|
||
// static long _idcaradd;
|
||
long _idncomp;
|
||
//long _idcoldich;
|
||
TString _codvc_prec;
|
||
|
||
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;}
|
||
|
||
TFile_text_AS400(const char* file_name, const char* set_config_name);
|
||
virtual ~TFile_text_AS400() {}
|
||
};
|
||
|
||
|
||
|
||
class TObject_reception:public TObject
|
||
{
|
||
protected:
|
||
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:
|
||
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:
|
||
TFile_text_AS400 *trasfile() {return (TFile_text_AS400 *)_trasfile;}
|
||
virtual void leggi_temp_link(TRectype& cur_rec,TToken_string& k);
|
||
//Questa funzione <20> da usare solo in fase di debug
|
||
#ifdef DBG
|
||
void print_ana_tree(int & level, TRectype&,FILE * stream);
|
||
#endif
|
||
public:
|
||
virtual void ricevi(TMask &);
|
||
TRicezione_AS400(const TFilename &percorso);
|
||
virtual ~TRicezione_AS400() {}
|
||
};
|
||
|
||
|
||
//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 TSkeleton_application
|
||
{
|
||
// private:
|
||
// TArray _files;
|
||
protected:
|
||
// TFile_text* _trasfile; //File di testo
|
||
// virtual bool menu(MENU_TAG) pure; //Gli dico che non <20> implementata in questa classe, ma obbligatoriamente in un'altra
|
||
virtual void main_loop() pure; //Gli dico che non <20> 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);
|
||
virtual void main_loop();
|
||
|
||
|
||
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() {_rice=NULL;}
|
||
virtual ~TRicezione() {}
|
||
};
|
||
|
||
class TObject_send:public TObject
|
||
{
|
||
protected:
|
||
TFile_text* _trasfile; //File di testo da cui ricevere
|
||
public:
|
||
TFile_text * trans_file() {return _trasfile;}
|
||
|
||
virtual void converti(int);
|
||
virtual void converti(int main_file,const char * tabname);
|
||
TObject_send() {_trasfile = NULL;}
|
||
TObject_send(const TFilename &percorso);
|
||
virtual ~TObject_send() { delete _trasfile;}
|
||
};
|
||
|
||
//Classe derivata per il trasferimento
|
||
class TInvio:public TTrasfer
|
||
{
|
||
TObject_send *_invio;
|
||
protected:
|
||
//virtual bool menu(MENU_TAG);
|
||
virtual void main_loop();
|
||
static bool inseriscipercorso(TMask_field& f, KEY k);
|
||
public:
|
||
TInvio() {}
|
||
virtual ~TInvio() {}
|
||
};
|
||
|
||
|
||
class TInvio_AS400:public TObject_send
|
||
{
|
||
protected:
|
||
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&);
|
||
|
||
public:
|
||
virtual void converti(int);
|
||
TInvio_AS400(const TFilename &percorso);
|
||
virtual ~TInvio_AS400() {}
|
||
|
||
};
|
||
|
||
class TInvio_user_defined:public TObject_send
|
||
{
|
||
public:
|
||
// virtual void converti(int) {} //DA definire
|
||
TInvio_user_defined(const TString & config, const TFilename &percorso);
|
||
virtual ~TInvio_user_defined() {}
|
||
};
|
||
|
||
|
||
|
||
// **********************
|
||
// da spostare in ablib01
|
||
|
||
class TAdditional_car: public TRectype
|
||
{
|
||
protected:
|
||
virtual void put_str(const char* fieldname, const char* val);
|
||
|
||
public:
|
||
bool same_as(real id);
|
||
TAdditional_car();
|
||
virtual ~TAdditional_car() {}
|
||
};
|
||
|
||
|
||
/***************************/
|
||
|
||
class TAdditional_cars: public TLocalisamfile
|
||
{
|
||
long _lastid; // usato in caso di lock
|
||
public:
|
||
long lastid();
|
||
TAdditional_car & current()
|
||
{return (TAdditional_car & )(TLocalisamfile::curr());}
|
||
virtual int write();
|
||
//int write();
|
||
TAdditional_cars(TFilelock lockmode=_manulock);
|
||
virtual ~TAdditional_cars() {}
|
||
};
|
||
|
||
class TAdditional_col: public TRectype
|
||
{
|
||
public:
|
||
TAdditional_col();
|
||
virtual ~TAdditional_col() {}
|
||
};
|
||
|
||
class TAdditional_cols: public TLocalisamfile
|
||
{
|
||
static long _lastid;
|
||
public:
|
||
//long lastid();
|
||
virtual int write();
|
||
TAdditional_cols();
|
||
virtual ~TAdditional_cols() {}
|
||
};
|
||
|
||
|
||
#endif //_AB2100_H
|
||
|