diff --git a/ab/ab1100.cpp b/ab/ab1100.cpp index a0ac76a22..d8f3f7d6b 100755 --- a/ab/ab1100.cpp +++ b/ab/ab1100.cpp @@ -1,4 +1,4 @@ -// ab1100 Stampa tabelle +// ab1100 Stampa tabelle // // legge un file con estenzione .rpt che descrive la stampa. // Vedi file leggimi.txt per il formato del file @@ -26,8 +26,8 @@ class AB1100_application : public TPrintapp int _logicnum; TString_array _string_roman, _string_compound; TString_array _field_roman, _field_compound; - bool _stampa_registri; - bool _stampa_ca7; //tabella causali 770 +// bool _stampa_registri; +// bool _stampa_ca7; //tabella causali 770 bool _tabella_comune; public: @@ -78,7 +78,6 @@ bool AB1100_application::set_print(int) } } } - _cur->setregion (from, to); set_headers(); @@ -144,7 +143,7 @@ bool AB1100_application::preprocess_page(int , int) } } // Stampa tabella registri. Calcolo: pagine residue = pagine - stampate - if (_stampa_registri) +/* if (_stampa_registri) { const int pagine = _cur->file().get_int("I2"); const int stampate = _cur->file().get_int("I1"); @@ -153,7 +152,7 @@ bool AB1100_application::preprocess_page(int , int) set_row(1, "@126g%4d", residue); else set_row(1, "@126g%4s", " "); - } + } */ return TRUE; } @@ -197,11 +196,11 @@ void AB1100_application::set_headers() riga.overwrite(format("Ditta %4ld %s", codditta,(const char *)ragsoc)); } - if (_stampa_ca7) +/* if (_stampa_ca7) { TDate d (_msk->get(F_DATASTAMPA)); printer().setdate(d); - } + } */ riga.overwrite ("Data @< Pag. @#", riga.len()-22); @@ -214,8 +213,8 @@ void AB1100_application::set_headers() NomeTabella.left_just (LungRiga); /* else NomeTabella.center_just (LungRiga); */ - if (_stampa_ca7) - NomeTabella.center_just (LungRiga); +/* if (_stampa_ca7) + NomeTabella.center_just (LungRiga); */ set_header (last_riga++, "@b%s", (const char *)NomeTabella); @@ -408,8 +407,8 @@ bool AB1100_application::user_create() // Flag per la stampa tabella registri _tabname.upper(); - _stampa_registri = (_tabname == "REG"); - _stampa_ca7 = (_tabname == "%CA7"); +// _stampa_registri = (_tabname == "REG"); +// _stampa_ca7 = (_tabname == "%CA7"); _rel = new TRelation (_tabname); _cur = new TCursor (_rel); diff --git a/ab/ab1200.uml b/ab/ab1200.uml index 7638878a6..45653c6b2 100755 --- a/ab/ab1200.uml +++ b/ab/ab1200.uml @@ -11,7 +11,7 @@ BEGIN DISPLAY "Codice@12" CODCBL DISPLAY "Descrizione@40" DESCRIZ DISPLAY "I.B.@5" INDBIL - DISPLAY "D/M@5" DETT +// DISPLAY "D/M@5" DETT DISPLAY "Con.C.@12" CODCONTR DISPALY "SOSP.@5" SOSPESO OUTPUT F_INIZIO CODCBL diff --git a/ab/ab2100.h b/ab/ab2100.h index 9a99f3d1a..2ffe047c1 100755 --- a/ab/ab2100.h +++ b/ab/ab2100.h @@ -196,14 +196,15 @@ class TRicezione_userdef : public TObject_reception //classe derivata nella quale viene gestita la funzione di trasferimento -class TTrasfer: public TApplication +//class TTrasfer: public TApplication +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 è implementata in questa classe, ma obbligatoriamente in un'altra - +// virtual bool menu(MENU_TAG) pure; //Gli dico che non è implementata in questa classe, ma obbligatoriamente in un'altra + virtual void main_loop() 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: @@ -220,9 +221,10 @@ class TRicezione:public TTrasfer TObject_reception *_rice; protected: - virtual bool create(); - virtual bool destroy(); - virtual bool menu(MENU_TAG); +// virtual bool create(); +// virtual bool destroy(); +// virtual bool menu(MENU_TAG); + virtual void main_loop(); public: @@ -234,31 +236,64 @@ class TRicezione:public TTrasfer TFile_text * trans_file() {return _rice->trans_file();} - TRicezione() {} + 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_AS400:public TTrasfer +class TInvio:public TTrasfer { - TFile_text* _trasfile; //File di testo da cui ricevere + TObject_send *_invio; protected: - virtual bool menu(MENU_TAG); + //virtual bool menu(MENU_TAG); + virtual void main_loop(); static bool inseriscipercorso(TMask_field& f, KEY k); - //Esegue il ciclo di ricezione - void converti(int); + 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: - TInvio_AS400() {} + 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 diff --git a/ab/ab2100a.ini b/ab/ab2100a.ini index 9457736f4..37f7acfd5 100755 --- a/ab/ab2100a.ini +++ b/ab/ab2100a.ini @@ -1,16 +1,16 @@ [MAIN] -TYPEFIELD = 0 DECSEP = +FIELDSEP = RECORDSEP = RECORDSIZE = 0 -FIELDSEP = +TYPEFIELD = 0 [TYPE TIPO_REC_5] -PICTURE = -FILLER = -DECIMAL = 0 ALIGN = +DECIMAL = 0 +FILLER = LENGTH = 5 +PICTURE = [TYPE FILLED_STRINGA_R15] PICTURE= @@ -61,6 +61,13 @@ DECIMAL = 0 ALIGN = R LENGTH = 0 +[TYPE FILLED_STRINGA_L3] +PICTURE= +FILLER='0' +DECIMAL = 0 +ALIGN=L +LENGTH=3 + [TYPE STRINGA_L] PICTURE = FILLER = @@ -96,6 +103,13 @@ DECIMAL = 0 ALIGN = R LENGTH = 4 +[TYPE FILLED_NUMERO_R3] +PICTURE = +FILLER = '0' +DECIMAL = 0 +ALIGN = R +LENGTH = 3 + [TYPE FILLED_NUMERO_R2] PICTURE = FILLER = '0' @@ -146,12 +160,62 @@ DECIMAL = 0 ALIGN = L LENGTH = 0 -[HEADER 1] -NAME(0)=PRIMA_RIGA +[RECORD 1] +NAME(0)=TIPO_RECORD_1 TYPE(0)=TIPO_REC_5 POSITION(0)=0 LENGTH(0)= 5 +NAME(1)=VUOTO1 +TYPE(1)=FILLER +POSITION(1)=5 +LENGTH(1)=55 + +NAME(2)=ABILITA_PIANO_DEI_CONTI +TYPE(2)=BOOLEANO +POSITION(2)=60 + +NAME(3)=ABILITA_TABELLA_PERIODI_BILANCIO +TYPE(3)=BOOLEANO +POSITION(3)=61 + +NAME(4)=ABILITA_TABELLA_BILANCI_ANALISI +TYPE(4)=BOOLEANO +POSITION(4)=62 + +NAME(5)=ABILITA_PROFILI_STAMPA +TYPE(5)=BOOLEANO +POSITION(5)=63 + +NAME(6)=ABILITA_COLLEGAMENTO_BILANCI_NOTA_INT +TYPE(6)=BOOLEANO +POSITION(6)=64 + +NAME(7)=ABILITA_DATI_ANAGRAFICI +TYPE(7)=BOOLEANO +POSITION(7)=65 + +NAME(8)=ABILITA_SALDI +TYPE(8)=BOOLEANO +POSITION(8)=66 + +NAME(9)=ABILITA_DETTAGLI +TYPE(9)=BOOLEANO +POSITION(9)=67 + +NAME(10)=ABILITA_MOVIMENTI +TYPE(10)=BOOLEANO +POSITION(10)=68 + +NAME(11)=ABILITA_RETTIFICHE +TYPE(11)=BOOLEANO +POSITION(11)=69 + +NAME(12)=VUOTO2 +TYPE(12)=FILLER +POSITION(12)=70 +LENGTH(12)=933 + [RECORD PIACO] USE=78 @@ -190,11 +254,10 @@ POSITION(5)=102 NAME(6)=FLAG_DETT_MOV TYPE(6)=STRINGA_R +//FIELD(6)=78->DETT +//FTYPE(6)=STRINGA_R POSITION(6)=103 LENGTH(6)=1 -// FIELD(6)=78->DETT è stato dolto -// FTYPE(6)=STRINGA_R - NAME(7)=CODICE_CONTO_SEZ_OPPOSTA TYPE(7)=FILLED_STRINGA_R10 @@ -310,7 +373,7 @@ POSITION(2)=7 LENGTH(2)=53 NAME(3)=DESCRIZ_ANALISI -TYPE(3)=STRINGA_R +TYPE(3)=STRINGA_L POSITION(3)=60 LENGTH(3)=60 FIELD(3)=82->DESCRIZ @@ -335,8 +398,8 @@ LENGTH(6)=8 NAME(7)=TABELLA_CALCOLO_INCIDENZA TYPE(7)=BOOLEANO POSIITON(7)=130 -FIELD(7)=82->CALINC -FTYPE(7)=BOOLEANO +//FIELD(7)=82->CALINC è stato tolto +//FTYPE(7)=BOOLEANO NAME(8)=CODICE_PROFILO_STAMPA_ALLEGATI TYPE(8)=STRINGA_R @@ -1138,6 +1201,895 @@ TYPE(16)=STRINGA_R POSITION(16)=1023 LENGTH(16)=1 +[RECORD ATAB2] +USE=83 +JOINRO(1)=126 INTO ID=IDCARADD +JOINRO(4)=84 INTO CODVC=CODVC +JOINRO(3)=85 INTO CODVC=CODVC +JOINRO(2)=127 TO 85 INTO ID=IDCOLDICH + +NAME(0)=TIPO_RECORD_ATAB2 +TYPE(0)=TIPO_REC_5 +POSITION(0)=0 + +NAME(1)=CODICE_ANALISI +TYPE(1)=STRINGA_R +FIELD(1)=84->CODVC +TTYPE(1)=STRINGA_R +POSITION(1)=5 +LENGTH(1)=2 + +NAME(2)=CODICE_VOCE_ANALISI +TYPE(2)=FILLED_STRINGA_R10 +FIELD(2)=83->CODVC +FTYPE(2)=FILLED_STRINGA_R10 +POSITION(2)=7 + +NAME(3)=VUOTO1 +TYPE(3)=FILLER +POSITION(3)=17 +LENGTH(3)=43 + +NAME(4)=NUMERO_PROGRESSIVO_COMPOSTO_ANALISI +TYPE(4)=FILLED_NUMERO_R5 +FIELD(4)=84->IDCOMP +FTYPE(4)=NUMERO_R +//FTYPE(4)=FILLED_NUMERO_R5 +POSITION(4)=60 + +NAME(5)=DESCRIZIONE_VOCE_PARTE1 +TYPE(5)=STRINGA_L +FIEDL(5)=83->DESCRIZ[1,40] +FTYPE(5)=STRINGA_L +POSITION(5)=65 +LENGTH(5)=40 + +NAME(6)=TIPO_VOCE +TYPE(6)=STRINGA_R +FIELD(6)=83->TIPOVC +FTYPE(6)=STRINGA_R +POSITION(6)=105 +LENGTH(6)=1 + +NAME(7)=NUMERO_COMPLESSIVO_COMPONENTI +TYPE(7)=FILLED_NUMERO_R5 +//FIELD(7)=83->NCM +//FTYPE(7)=FILLED_NUMERO_R5 +POSITION(7)=106 + +NAME(8)=CODICE_TABELLA_PIANO_CONTI +TYPE(8)=FILLED_STRINGA_R10 +FIELD(8)=83->CODCBL +FTYPE(8)=FILLED_STRINGA_R12 +POSITION(8)=111 + +NAME(9)=INDICATORE_BILANCIO +TYPE(9)=FILLED_NUMERO_R1 +FIELD(9)=83->INDBIL +FTYPE(9)=FILLED_NUMERO_R1 +POSITION(9)=121 + +NAME(10)=FLAG_STAMPA_DETTAGLIO +TYPE(10)=BOOLEANO +FIELD(10)=126->STD +FTYPE(10)=BOOLEANO +POSITION(10)=122 + +NAME(11)=COLONNA_DI_STAMPA_IMPORTO +TYPE(11)=FILLED_NUMERO_R1 +FIELD(11)=126->CLI +FTYPE(11)=FILLED_NUMERO_R1 +POSITION(11)=123 + +NAME(12)=CARATTERE_DI_SOPRALINEATURA +TYPE(12)=STRINGA_R +FIELD(12)=126->SPI +FTYPE(12)=STRINGA_R +POSITION(12)=124 +LENGTH(12)=1 + +NAME(13)=CARATTERE_DI_SOTTOLINEATURA +TYPE(13)=STRINGA_R +FIELD(13)=126->STI +FTYPE(13)=STRINGA_R +POSITION(13)=125 +LENGTH(13)=1 + +NAME(14)=DESCRIZIONE_TOTALE_PARTE1 +TYPE(14)=STRINGA_L +FIELD(14)=126->DST[1,40] +FTYPE(14)=STRINGA_L +POSITON(14)=126 +LENGTH(14)=40 + +NAME(15)=COLONNA_STAMPA_TOTALE +TYPE(15)=FILLED_NUMERO_R1 +FIELD(15)=126->CLT +FTYPE(15)=FILLED_NUMERO_R1 +POSITION(15)=166 + +NAME(16)=CATATTERE_DI_SOPRALINEATURA_TOTALE +TYPE(16)=STRINGA_R +FIELD(16)=126->SPT +FTYPE(16)=STRINGA_R +POSITION(16)=167 +LENGTH(16)=1 + +NAME(17)=CARATTERE_DI_SOTTOLIENATURA_TOTALE +TYPE(17)=STRINGA_R +FIELD(17)=126->STT +FTYPE(17)=STRINGA_R +POSITION(17)=168 +LENGTH(17)=1 + +NAME(18)=STAMPA_IMPORTO_TOTALE_SU_RIGA_VOCE +TYPE(18)=BOOLEANO +FIELD(18)=126->SVT +FTYPE(18)=BOOLEANO +POSITION(18)=169 + +NAME(19)=LIVELLO_STRUTTURA +TYPE(19)=FILLED_NUMERO_R2 +FIELD(19)=126->LST +FTYPE(19)=FILLED_NUMERO_R1 +POSITION(19)=170 + +NAME(20)=SEGNO_CONTO_DORDINE_DA +TYPE(20)=STRINGA_R +FIELD(20)=126->ODA +FTYPE(20)=STRINGA_R +POSITION(20)=172 +LENGTH(20)=1 + +NAME(21)=NS_SKIP_STAMPA (LINEE DI STAMPA DA SALTARE) +TYPE(21)=FILLED_NUMERO_R2 +FIELD(21)=126->SKI +FTYPE(21)=FILLED_NUMERO_R2 +POSITION(21)=173 + +NAME(22)=NS_SKIP_STAMPA_TOTALE (LINEE DI STAMPA DA SALTARE PER TOTALE) +TYPE(22)=FILLED_NUMERO_R2 +FIELD(22)=126->SKT +FTYPE(22)=FILLED_NUMERO_R2 +POSITION(22)=175 + +NAME(23)=NON_STAMPARE_DESCRIZIONE_VOCE_COMPLESSIVA +TYPE(23)=BOOLEANO +FIELD(23)=126->NDV +FTYPE(23)=BOOLEANO +POSITION(23)=177 + +NAME(24)=RIGA_VOCE_GRASSETTO +TYPE(24)=BOOLEANO +FIELD(24)=126->RII +FTYPE(24)=BOOLEANO +POSITION(24)=178 + +NAME(25)=RIGA_TOTALE_VOCE_COMPLESSA_GRASSETTO +TYPE(25)=BOOLEANO +FIELD(25)=126->RIT +FTYPE(25)=BOOLEANO +POSITION(25)=179 + +NAME(26)=RIFERIMENTO_RIGA_MOD740F +TYPE(26)=FILLED_NUMERO_R3 +FIELD(26)=127->F4A +FTYPE(26)=FILLED_NUMERO_R3 +POSITION(26)=180 + +NAME(27)=RIGA_BIS_MOD740F +TYPE(27)=STRINGA_R +FIELD(27)=127->F4B +FTYPE(27)=STRINGA_R +POSITION(27)=183 +LENGHT(27)=1 + +NAME(28)=RIFERIMENTO_PROSPETTO_BILANCIO_MOD740 +TYPE(28)=FILLED_NUMERO_R3 +FIELD(28)=127->P4A +FTYPE(28)=FILLED_NUMERO_R3 +POSITION(28)=184 + +NAME(29)=RIGA_BIS_PROSEPTTO_BILANCIO_MOD740 +TYPE(29)=STRINGA_R +FIELD(29)=127->P4B +FTYPE(29)=STRINGA_R +POSITION(29)=187 +LENGTH(29)=1 + +NAME(30)=RIFERIMENTO_RIGA_MOD750A +TYPE(30)=FILLED_NUMERO_R3 +FIELD(30)=127->A5A +FTYPE(30)=FILLED_NUMERO_R3 +POSITION(30)=191 + +NAME(31)=RIGA_BIS_MOD750A +TYPE(31)=STRINGA_R +FIELD(31)=127->A5B +FTYPE(31)=STRINGA_R +POSITION(31)=191 +LENGTH(31)=1 + +NAME(32)=RIFERIMENTO_PROSPETTO_BILANCIO_MOD750 +TYPE(32)=FILLED_NUMERO_R3 +FIELD(32)=127->P5A +FTYPE(32)=FILLED_NUMERO_R3 +POSITION(32)=193 + +NAME(33)=RIGA_BIS_PROSPETTO_BILANCIO_MOD750 +TYPE(33)=STRINGA_R +FIELD(33)=127->P5B +FTYPE(33)=STRINGA_R +POSITION(33)=195 +LENGTH(33)=1 + +NAME(34)=RIFERIMENTO_RIGA_MOD760A +TYPE(34)=FILLED_NUMERO_R3 +FIELD(34)=127->A6A +FTYPE(34)=FILLED_NUMERO_R3 +POSITION(34)=196 + +NAME(35)=RIGA_BIS_MOD760A +TYPE(35)=STRINGA_R +FIELD(35)=127->A6B +FTYPE(35)=STRINGA_R +POSITION(35)=199 +LENGTH(35)=1 + +NAME(36)=RIFERIMENTO_CREDITI_ENTI_NON_FIN_MOD760 +TYPE(36)=FILLED_NUMERO_R3 +POSITION(36)=200 + +NAME(37)=RIGA_BIS_MOD760 +TYPE(37)=STRINGA_R +POSITION(37)=203 +LENGTH(37)=1 + +NAME(38)=RIFERIMENTO_PROSPETTO_BILANCIO_MOD760 +TYPE(38)=FILLED_NUMERO_R3 +FIELD(38)=127->P6A +FTYPE(38)=FILLED_NUMERO_R3 +POSITION(38)=204 + +NAME(39)=RIGA_BIS_PROSPETTO_BILANCIO_MOD760 +TYPE(39)=STRINGA_R +FIELD(39)=127->P6B +FTYPE(39)=STRINGA_R +POSITION(39)=207 +LENGTH(39)=1 + +NAME(40)=TIPO_VALORE +TYPE(40)=STRINGA_R +LENGTH(40)=1 +FIELD(40)=83->TVL +FTYPE(40)=STRINGA_R +POSITION(40)=208 + +NAME(41)=COD_VOCE_PER CALCOLO_INCIDENZA +TYPE(41)=FILLED_STRINGA_R10 +FIELD(41)=85->VOCEINCID +FTYPE(41)=FILLED_STRINGA_R12 +POSITION(41)=209 + +NAME(42)=VOCE_INDICA_RISULTATO +TYPE(42)=BOOLEANO +//FIELD(42)=83->RSE +//FTYPE(42)=BOOLEANO +POSITION(42)=219 + +NAME(43)=DESCRIZIONE_VOCE_PARTE2 +TYPE(43)=STRINGA_L +FIELD(43)=83->DESCRIZ[41,80] +FTYPE(43)=STRINGA_L +POSITION(43)=220 +LENGTH(43)=40 + +NAME(44)=CLASSE_VOCE +TYPE(44)=STRINGA_R +POSITION(44)=260 +FIELD(44)=83->CLASSEVOCE +FTYPE(44)=STRINGA_R +LENGTH(44)=5 + +NAME(45)=RIFERIMENTO_MOD_740K +TYPE(45)=FILLED_NUMERO_R3 +FIELD(45)=127->K4A +FTYPE(45)=FILLED_NUMERO_R3 +POSITION(45)=265 + +NAME(46)=RIFERIMENTO_RIGA_MOD750K +TYPE(46)=FILLED_NUMERO_R3 +FIELD(46)=127->K5A +FTYPE(46)=FILLED_NUMERO_R3 +POSITION(46)=268 + +NAME(47)=RIFERIMENTO_RIGA_MOD760K +TYPE(47)=FILLED_NUMERO_R3 +FIELD(47)=127->K6A +FTYPE(47)=FILLED_NUMERO_R3 +POSITION(47)=271 + +NAME(48)=RIFERIMENTO_PROSPETTO_CREDITI_MOD740 +TYPE(48)=FILLED_NUMERO_R3 +FIELD(48)=127->X4A +FTYPE(48)=FILLED_NUMERO_R3 +POSITION(48)=274 + +NAME(49)=RIGA_BIS_PROSPETTO_CREDITI_MOD740 +TYPE(49)=STRINGA_R +FIELD(49)=127->X4B +TYPE(49)=STRINGA_R +POSITION(49)=277 +LENGTH(49)=1 + +NAME(50)=RIFERIMENTO_CREDITI_ENTI_NON_FIN_MOD750 +TYPE(50)=FILLED_NUMERO_R3 +POSITION(50)=278 + +NAME(51)=RIGA_BIS_CREDITI_ENTI_NON_FIN_MOD750 +TYPE(51)=STRINGA_R +POSITION(51)=281 +LENGTH(51)=1 + +NAME(52)=IMPORTO_DA_NON_STAMPARE +TYPE(52)=BOOLEANO +POSITION(52)=282 + +NAME(53)=DESCRIZIONE_TOTALE_PARTE2 +TYPE(53)=STRINGA_L +FIELD(53)=126->DST[41,80] +FTYPE(53)=STRINGA_L +POSITION(53)=283 +LENGTH(53)=40 + +NAME(54)=RIFERIMENTO_PROSPETTO_PARAMETRI_MOD740 +TYPE(54)=FILLED_NUMERO_R3 +POSITION(54)=323 + +NAME(55)=RIGA_BIS_PROSPETTO_PARAMETRI_MOD740 +TYPE(55)=STRINGA_R +POSITION(55)=326 +LENGTH(55)=1 + +NAME(56)=RIFERIMENTO_PROSPETTO_PARAMETRI_MOD750 +TYPE(56)=FILLED_NUMERO_R3 +POSITION(56)=327 + +NAME(57)=RIGA_BIS_PROSPETTO_PARAMETRI_MOD750 +TYPE(57)=STRINGA_R +POSITION(57)=330 +LENGTH(57)=1 + +NAME(58)=RIFERIMENTO_PROSPETTO_PARAMETRI_MOD760 +TYPE(58)=FILLED_NUMERO_R3 +POSITION(58)=331 + +NAME(59)=RIGA_BIS_PROSPETTO_PARAMETRI_MOD760 +TYPE(59)=STRINGA_R +POSITION(59)=334 +LENGTH(59)=1 + +NAME(60)=RIFERIMENTO_CREDITI_ENTI_CREDITIZI_FINAN_MOD750 +TYPE(60)=FILLED_NUMERO_R3 +POSITION(60)=335 + +NAME(61)=RIGA_BIS_CREDITI_ENTI_CREDITIZI_FINAN_MOD750 +TYPE(61)=STRINGA_R +POSITION(61)=338 +LENGTH(61)=1 + +NAME(62)=RIFERIMENTO_CREDITI_ENTI_CREDITIZI_FINAN_MOD760 +TYPE(62)=FILLED_NUMERO_R3 +POSITION(62)=339 + +NAME(63)=RIGA_BIS_CREDITI_ENTI_CREDITIZI_FINAN_MOD760 +TYPE(63)=STRINGA_R +POSITION(63)=342 +LENGTH(63)=1 + +NAME(64)=VUOTO2 +TYPE(64)=FILLER +POSITION(64)=343 +LENGTH(64)=680 + +NAME(65)=STATO_RECORD +TYPE(65)=STRINGA_R +POSITION(65)=1023 +LENGTH(65)=1 + +[RECORD RTABI] +USE = 84 + +NAME(0)=TIPO_RECORD_RTABI +TYPE(0)=TIPO_REC_5 +POSITION(0)=0 + +NAME(1)=CODICE_ANALISI +TYPE(1)=STRINGA_R +POSITION(1)=5 +LENGTH(1)=2 + +NAME(2)=CODICE_VOCE_COMPOSTA +TYPE(2)=FILLED_STRINGA_R10 +FIELD(2)=84->CODVC +FTYPE(2)=FILLED_STRINGA_R10 +POSITION(2)=7 + +NAME(3)=NUMERO_PROGRESSIVO_COMPONENTE +TYPE(3)=FILLED_NUMERO_R5 +FIELD(3)=84->IDCOMP +FTYPE(3)=NUMERO_R +//FTYPE(3)=FILLED_NUMERO_R5 +POSITION(3)=17 + +NAME(4)=CODICE_VOCE_COMPONENTE +TYPE(4)=FILLED_STRINGA_R15 +FIELD(4)=84->COMP +FTYPE(4)=STRINGA_L +POSITION(4)=22 + +NAME(5)=VUOTO1 +TYPE(5)=FILLER +POSITION(5)=37 +LENGTH(5)=23 + +NAME(6)=ULTIMO_NUMERO_SOTTORELAZIONE +TYPE(6)=FILLED_NUMERO_R5 +POSITION(6)=60 + +NAME(7)=CONTATORE_SOTTORELAZIONI +TYPE(7)=FILLED_NUMERO_R5 +POSITION(7)=65 + +NAME(8)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA1 +TYPE(8)=FILLED_NUMERO_R5 +POSITION(8)=70 + +NAME(9)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA2 +TYPE(9)=FILLED_NUMERO_R5 +POSITION(9)=75 + +NAME(10)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA3 +TYPE(10)=FILLED_NUMERO_R5 +POSITION(10)=80 + +NAME(11)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA4 +TYPE(11)=FILLED_NUMERO_R5 +POSITION(11)=85 + +NAME(12)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA5 +TYPE(12)=FILLED_NUMERO_R5 +POSITION(12)=90 + +NAME(13)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA6 +TYPE(13)=FILLED_NUMERO_R5 +POSITION(13)=95 + +NAME(14)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA7 +TYPE(14)=FILLED_NUMERO_R5 +POSITION(14)=100 + +NAME(15)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA8 +TYPE(15)=FILLED_NUMERO_R5 +POSITION(15)=105 + +NAME(16)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA9 +TYPE(16)=FILLED_NUMERO_R5 +POSITION(16)=110 + +NAME(17)=CONTATORE_SOTTOREL_UTENTI_CONSUL_ANA10 +TYPE(17)=FILLED_NUMERO_R5 +POSITION(17)=115 + +NAME(18)=TIPO_CAMPO_DA_CALCOLARE +TYPE(18)=NUMERO_R +POSITION(18)=120 +LENGTH(18)=1 + +NAME(19)=SCHIERA_OPERATORI_ANTECEDENTI_OPERANDO +TYPE(19)=NUMERO_R +POSITION(19)=121 +LENGTH(19)=20 + +NAME(20)=SCHIERA_OPERATORI_SEGUIENTI_OPERANDO +TYPE(20)=NUMERO_R +POSITION(20)=141 +LENGTH(20)=20 + +NAME(21)=VUOTO2 +TYPE(21)=FILLER +POSITION(21)=161 +LENGTH(21)=862 + +NAME(22)=STATO_RECORD +TYPE(22)=STRINGA_R +POSITION(22)=1023 +LENGTH(22)=1 + +[RECORD STABI] +USE = 85 +JOINRO(2)=127 TO 85 INTO ID=IDCOLDICH +JOINRO(3)=126 TO 85 INTO ID=IDCARADD + +NAME(0)=TIPO_RECORD_STABI +TYPE(0)=TIPO_REC_5 +POSITION(0)=0 + +NAME(1)=CODICE_ANALISI +TYPE(1)=STRINGA_L +FIELD(1)= 85->CODAN +FTYPE(1)=STRINGA_L +POSITION(1)=5 +LENGTH(1)=2 + +//Modificato il da filled_stringa_r12 a filled_stringa_r10 +NAME(2)=CODICE_VOCE_COMPOSTO +TYPE(2)=FILLED_STRINGA_R10 +FIELD(2)=85->CODVC +FTYPE(2)=FILLED_STRINGA_R10 +POSITION(2)=7 + +NAME(3)=NUMERO_PROGRESSIVO_COMPONENTE_NEL_COMPOSTO +TYPE(3)=FILLED_NUMERO_R5 +FIELD(3)=85->IDCOMP +FTYPE(3)=FILLED_NUMERO_R5 +POSITION(3)=17 + +NAME(4)=CODICE_VOCE_COMPONENTE +TYPE(4)=FILLED_STRINGA_R15 +POSITION(4)=22 + +NAME(5)=NUMERO_PROGRESSIVO_SOTTORELAZIONE +TYPE(5)=FILLED_NUMERO_R5 +POSITION(5)=37 + +NAME(6)=VUOTO1 +TYPE(6)=FILLER +POSITION(6)=42 +LENGTH(6)=18 + +NAME(7)=DESCRIZIONE_VOCE_PARTE1 +TYPE(7)=STRINGA_L +FIELD(7)=85->DESCRIZ[1,40] +FTYPE(7)=STRINGA_L +POSITION(7)=60 +LENGTH(7)=40 + +NAME(8)=TIPO_VOCE +TYPE(8)=STRINGA_R +POSITION(8)=100 +LENGTH(8)=1 + +NAME(9)=CODICE_TABELLA_PIANO_CONTI +TYPE(9)=FILLED_STRINGA_R10 +POSITION(9)=101 + +NAME(10)=INDICATORE_BILANCIO +TYPE(10)=FILLED_NUMERO_R1 +POSITION(10)=111 + +NAME(11)=FLAG_STAMPA_DETTAGLIO +TYPE(11)=BOOLEANO +FIELD(11)=126->STD +FTYPE(11)=BOOLEANO +POSITION(11)=112 + +NAME(12)=COLONNA_STAMPA_IMPORTO +TYPE(12)=FILLED_NUMERO_R1 +FIELD(12)=126->CLI +FTYPE(12)=FILLED_NUMERO_R1 +POSITION(12)=113 + +NAME(13)=CARATTERE_SOPRALINEATURA +TYPE(13)=STRINGA_R +FIELD(13)=126->SPI +FTYPE(13)=STRINGA_R +POSITION(13)=114 +LENGTH(13)=1 + +NAME(14)=CARATTERE_DI_SOTTOLINEATURA +TYPE(14)=STRINGA_R +FIELD(14)=126->STI +FTYPE(14)=STRINGA_R +POSITION(14)=115 +LENGTH(14)=1 + +NAME(15)=DESCRIZIONE_TOTALE_PARTE1 +TYPE(15)=STRINGA_L +FIELD(15)=126->DST[1,40] +FTYPE(15)=STRINGA_L +POSITION(15)=116 +LENGTH(15)=40 + +NAME(16)=COLONNA_STAMPA_TOTALE +TYPE(16)=FILLED_NUMERO_R1 +FIELD(16)=126->CLT +FTYPE(16)=FILLED_NUMERO_R1 +POSITION(16)=156 + +NAME(17)=CARATTERE_SOPRALINEATURA_TOTALE +TYPE(17)=STRINGA_R +FIELD(17)=126->SPT +FTYPE(17)=STRINGA_R +POSITION(17)=157 +LENGTH(17)=1 + +NAME(18)=CARATTERE_SOTTOLINEATURA_TOTALE +TYPE(18)=STRINGA_R +FIELD(18)=126->STT +FTYPE(18)=STRINGA_R +POSITION(18)=158 +LENGTH(18)=1 + +NAME(19)=STAMPA_IMPORTO_TOTALE_SU_RIGA_VOCE +TYPE(19)=STRINGA_R +FIEDL(19)=126->SVT +FTYPE(19)=STRINGA_R +POSITION(19)=159 +LENGTH(19)=1 + +NAME(20)=LIVELLO_STRUTTURA +TYPE(20)=FILLED_NUMERO_R2 +FIELD(20)=126->LST +FTYPE(20)=FILLED_NUMERO_R1 +POSITION(20)=160 + +NAME(21)=SEGNO_CONTO_DORDINE +TYPE(21)=STRINGA_R +FIELD(21)=126->ODA +FTYPE(21)=STRINGA_R +POSITION(21)=162 +LENGTH(21)=1 + +NAME(22)=NS_SKIP_STAMPA +TYPE(22)=FILLED_STRINGA_R2 +FIELD(22)=126->SKI +FTYPE(22)=FILLED_STRINGA_R2 +POSITION(22)=163 + +NAME(23)=NS_SKIP_STAMPA_PER_TOTALE +TYPE(23)=FILLED_STRINGA_R2 +FIELD(23)=126->SKT +FTYPE(23)=FILLED_STRINGA_R2 +POSITION(23)=165 + +NAME(24)=NON_STAMPARE_VOCE_COMPLESSA +TYPE(24)=BOOLEANO +FIELD(24)=126->NDV +FTYPE(24)=BOOLEANO +POSITION(24)=167 + +NAME(25)=RIGA_VOCE_GRASSETTO +TYPE(25)=BOOLEANO +FIELD(25)=126->RII +FTYPE(25)=BOOLEANO +POSITION(25)=168 + +NAME(26)=RIGA_TOTALE_VOCE_GRASSETTO +TYPE(26)=BOOLEANO +FIELD(26)=126->RIT +FTYPE(26)=BOOLEANO +POSITION(26)=169 + +NAME(27)=RIFERIMENTO_RIGA_MOD740F +TYPE(27)=FILLED_NUMERO_R3 +FIELD(27)=127->F4A +FTYPE(27)=FILLED_NUMERO_R3 +POSITION(27)=170 + +NAME(28)=RIGA_BIS_MOD740F +TYPE(28)=STRINGA_R +FIELD(28)=127->F4B +FTYPE(28)=STRINGA_R +POSITION(28)=173 +LNEGTH(28)=1 + +NAME(29)=RIFERIMENTO_PROSPETTO_BILANCIO_MOD740 +TYPE(29)=FILLED_NUMERO_R3 +FIELD(29)=127->P4A +FTYPE(29)=FILLED_NUMERO_R3 +POSITION(29)=174 + +NAME(30)=RIGA_BIS_PROSPETTO_BILANCIO_MOD740 +TYPE(30)=STRINGA_R +POSITION(30)=177 +LENGTH(30)=1 + +NAME(31)=RIFERIMENTO_RIGA_MOD750A +TYPE(31)=FILLED_NUMERO_R3 +FIELD(31)=127->A5A +FTYPE(31)=FILLED_NUMERO_R3 +POSITION(31)=178 + +NAME(32)=RIGA_BIS_MOD750A +TYPE(32)=STRINGA_R +FIELD(32)=127->A5B +FTYPE(32)=STRINGA_R +POSITION(32)=181 +LENGTH(32)=1 + +NAME(33)=RIFERIMENTO_PROSPETTO_BILANCIO_MOD750 +TYPE(33)=FILLED_NUMERO_R3 +FIELD(33)=127->P5A +FTYPE(33)=FILLED_NUMERO_R3 +POSITION(33)=182 + +NAME(34)=RIGA_BIS_PROSPETTO_BILANCIO_MOD750 +TYPE(34)=STRINGA_R +FIELD(34)=127->P5B +FTYPE(34)=STRINGA_R +POSITION(34)=185 +LENGTH(34)=1 + +NAME(35)=RIFERIMENTO_RIGA_MOD760A +TYPE(35)=FILLED_NUMERO_R3 +FIELD(35)=127->A6A +FTYPE(35)=FILLED_NUMERO_R3 +POSITION(35)=186 + +NAME(36)=RIGA_BIS_MOD760A +TYPE(36)=STRINGA_R +FIELD(36)=127->A6B +FTYPE(36)=STRINGA_R +POSITION(36)=189 +LENGTH(36)=1 + +NAME(37)=RIFERIMENTO_CREDITI_ENTI_NON_FINAN_MOD760 +TYPE(37)=FILLED_NUMERO_R3 +POSITION(37)=190 + +NAME(38)=RIGA_BIS_CREDITI_NON_FINAN_MOD760 +TYPE(38)=STRINGA_R +POSITION(38)=193 +LENGHT(38)=1 + +NAME(39)=RIFERIMENTO_PROSPETTO_BILANCIO_MOD760 +TYPE(39)=FILLED_STRINGA_R3 +FIELD(39)=127->P6A +FTYPE(39)=FILLED_STRINGA_R3 +POSITION(39)=194 + +NAME(40)=RIGA_BIS_PROSPETTO_BILANCIO_MOD760 +TYPE(40)=STRINGA_R +FIELD(40)=127->P6B +FTYPE(40)=STRINGA_R +POSITION(40)=197 +LENGTH(40)=1 + +NAME(41)=TIPO_VALORE +TYPE(41)=STRINGA_R +POSITION(41)=198 +LENGTH(41)=1 + +NAME(42)=CODICE_VOCE_SU_CUI_CALCOLARE_INCIDENZA +TYPE(42)=FILLED_STRINGA_R10 +FIELD(42)=85->VOCEINCID +FTYPE(42)=FILLED_STRINGA_R12 +POSITION(42)=199 + +NAME(43)=VOCE_INDICA_RISULTATO +TYPE(43)=BOOLEANO +POSITION(43)=209 + +NAME(44)=DESCRIZIONE_VOCE_PARTE2 +TYPE(44)=STRINGA_L +FIELD(44)=85->DESCRIZ[41,80] +FTYPE(44)=STRINGA_L +POSITION(44)=210 +LENGTH(44)=40 + +NAME(45)=CLASSE_VOCE +TYPE(45)=STRINGA_R +POSITION(45)=250 +LENGTH(45)=5 + +NAME(46)=RIFERIMENTO_RIGA_MOD740K +TYPE(46)=FILLED_NUMERO_R3 +FIELD(46)=127->K4A +FTYPE(46)=FILLED_NUMERO_R3 +POSITION(46)=255 + +NAME(47)=RIFERIMENTO_RIGA_MOD750K +TYPE(47)=FILLED_NUMERO_R3 +FIELD(47)=127->K5A +FTYPE(47)=FILLED_NUMERO_R3 +POSITION(47)=258 + +NAME(48)=RIFERIMENTO_RIGA_MOD760 +TYPE(48)=FILLED_NUMERO_R3 +FIEDL(48)=127->K6A +FTYPE(48)=FILLED_NUMERO_R3 +POSITION(48)=261 + +NAME(49)=RIFERIMENTO_PROSPETTO_CREDITI_MOD740 +TYPE(49)=FILLED_NUMERO_R3 +FIELD(49)=127->X4A +FTYPE(49)=FILLED_NUMERO_R3 +POSITION(49)=264 + +NAME(50)=RIGA_BIS_PROSPETTO_CREDITI_MOD740 +TYPE(50)=STRINGA_R +FIELD(50)=127->X4B +FTYPE(50)=STRINGA_R +POSITION(50)=267 +LENGHT(50)=1 + +NAME(51)=RIFERIMENTO_CREDITI_ENTI_NON_FINAN_MOD750 +TYPE(51)=FILLED_NUMERO_R3 +POSITION(51)=268 +LENGTH(51)=3 + +NAME(52)=RIGA_BIS_CREDITI_ENTI_NON_FINAN_MOD750 +TYPE(52)=STRINGA_R +POSITION(52)=271 +LENGTH(52)=1 + +NAME(53)=NON_STAMPARE_IMPORTO +TYPE(53)=BOOLEANO +POSITION(53)=272 + +NAME(54)=DESCRIZIONE_TOTALE_PARTE2 +TYPE(54)=STRINGA_L +FIELD(54)=126->DST[41,80] +FTYPE(54)=STRINGA_L +POSITION(54)=273 +LENGTH(54)=40 + +NAME(55)=RIFERIMENTO_PROSPETTO_PARAMETRI_MOD740 +TYPE(55)=FILLED_NUMERO_R3 +POSITION(55)=313 + +NAME(56)=RIGA_BIS_PROSPETTO_PARAMETRI_MOD740 +TYPE(56)=STRINGA_R +POSITION(56)=316 +LENGTH(56)=1 + +NAME(57)=RIFERIMENTO_PROSPETTO_PARAMETRI_MOD750 +TYPE(57)=FILLED_NUMERO_R3 +POSITION(57)=317 + +NAME(58)=RIGA_BIS_PROSPETTO-PARAMETRI_MOD750 +TYPE(58)=STRINGA_R +LENGTH(58)=1 +POSITION(58)=320 + +NAME(59)=RIFERIMENTO_PROSPETTO_PARAMETRI_MOD760 +TYPE(59)=FILLED_NUMERO_R3 +POSITION(59)=321 + +NAME(60)=RIGA_BIS_PROSPETTO_PARAMETRI_MOD760 +TYPE(60)=STRINGA_R +POSITION(60)=324 +LENGTH(60)=1 + +NAME(61)=RIFERIMENTO_CREDITI_ENTI_CREDITIZI_FINAN_MOD750 +TYPE(61)=FILLED_NUMERO_R3 +POSITION(61)=325 + +NAME(62)=RIGA_BIS_CREDITI_ENTI_CREDITIZI_FINAN_MOD750 +TYPE(62)=STRINGA_R +POSITION(62)=328 +LENGTH(62)=1 + +NAME(63)=RIFERIMENTO_CREDITI_ENTI_CREDITIZI_FINAN_MOD760 +TYPE(63)=FILLED_NUMERO_R3 +POSITION(63)=329 + +NAME(64)=RIGA_BIS_CREDITI_ENTI_CREDITIZI_FINAN_MOD760 +TYPE(64)=STRINGA_R +POSITION(64)=332 +LENGTH(64)=1 + +NAME(65)=VUOTO2 +TYPE(65)=FILLER +POSITION(65)=333 +LENGHT(65)=690 + +NAME(66)=STATO_RECORD +TYPE(66)=STRINGA_R +POSITION(66)=1023 +LENGHT(66)=1 + [RECORD GENAZ] NAME(0)=TIPO_RECORD_GENAZ @@ -1149,10 +2101,384 @@ POSITION(1)=5 TYPE(1)=STRINGA_R LENGTH(1)=1019 +[RECORD SOCI ] + +NAME(0)=TIPO_RECORD_SOCI +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=6 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD ANAGR] + +NAME(0)=TIPO_RECORD_ANAGR +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD BINOT] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPA1] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPA2] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPA3] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPA4] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPA5] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPC1] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPC2] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPC3] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPC4] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPE1] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPE2] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPE3] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPE4] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPE5] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPE6] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPR1] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPR2] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPR3] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPR4] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPR5] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPR6] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPX1] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPX2] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPX3] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPX4] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPX5] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD TBPX6] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + + +[RECORD TBSDD] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + [RECORD DITAA] -NAME(0)=TIPO_RECORD_DITA +NAME(0)=TIPO_RECORD TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 POSITION(0)=0 NAME(1)=DA_DEFINIRE @@ -1162,19 +2488,9 @@ LENGTH(1)=1020 [RECORD DITAC] -NAME(0)=TIPO_RECORD_DITA -TYPE(0)=TIPO_REC_5 -POSITION(0)=0 - -NAME(1)=DA_DEFINIRE -POSITION(1)=4 -TYPE(1)=STRINGA_R -LENGTH(1)=1020 - -[RECORD DITBA] - -NAME(0)=TIPO_RECORD_DITA +NAME(0)=TIPO_RECORD TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 POSITION(0)=0 NAME(1)=DA_DEFINIRE @@ -1184,8 +2500,21 @@ LENGTH(1)=1020 [RECORD DITAD] -NAME(0)=TIPO_RECORD_DITA +NAME(0)=TIPO_RECORD TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 +POSITION(0)=0 + +NAME(1)=DA_DEFINIRE +POSITION(1)=4 +TYPE(1)=STRINGA_R +LENGTH(1)=1020 + +[RECORD DITBA] + +NAME(0)=TIPO_RECORD +TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 POSITION(0)=0 NAME(1)=DA_DEFINIRE @@ -1195,30 +2524,9 @@ LENGTH(1)=1020 [RECORD DITBB] -NAME(0)=TIPO_RECORD_DITA -TYPE(0)=TIPO_REC_5 -POSITION(0)=0 - -NAME(1)=DA_DEFINIRE -POSITION(1)=4 -TYPE(1)=STRINGA_R -LENGTH(1)=1020 - -[RECORD SOCI ] - -NAME(0)=TIPO_RECORD_SOCI -TYPE(0)=TIPO_REC_5 -POSITION(0)=0 - -NAME(1)=DA_DEFINIRE -POSITION(1)=4 -TYPE(1)=STRINGA_R -LENGTH(1)=1020 - -[RECORD ANAGR] - -NAME(0)=TIPO_RECORD_ANAGR +NAME(0)=TIPO_RECORD TYPE(0)=TIPO_REC_5 +LENGTH(0) = 5 POSITION(0)=0 NAME(1)=DA_DEFINIRE diff --git a/ab/ab2100a.uml b/ab/ab2100a.uml index a11833432..d30191051 100755 --- a/ab/ab2100a.uml +++ b/ab/ab2100a.uml @@ -1,5 +1,5 @@ #include "ab2100a.h" -PAGE "" 0 -1 0 19 +PAGE "Ricezione e Invio di Bilanci & Analisi" 0 -1 0 19 GROUPBOX DLG_NULL 76 5 BEGIN @@ -28,11 +28,11 @@ LISTBOX F_TIPO_RICE 15 BEGIN PROMPT 2 5 "Tipo: " ITEM "1|WINDOWS" - MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE + MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE|HIDE, F_TIPO_BILANCIO ITEM "2|AS400" - MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE + MESSAGE DISABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE|SHOW, F_TIPO_BILANCIO ITEM "3|USER DEFINED" - MESSAGE ENABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE + MESSAGE ENABLE,F_PERCORSO_UTENTE|DISABLE,F_TESTO_UTENTE|SHOW, F_TIPO_BILANCIO END TEXT F_TESTO_UTENTE @@ -75,18 +75,21 @@ BOOLEAN F_PIANO_CONTI BEGIN PROMPT 2 9 "Piano dei conti" FLAG "D" + GROUP 1 END BOOLEAN F_PERIODI_BILANCI BEGIN PROMPT 2 11 "Tabella periodi di bilanci" FLAG "D" + GROUP 1 END BOOLEAN F_ANALISI BEGIN PROMPT 2 13 "Tabella analisi di bilancio" FLAG "D" + GROUP 1 END BOOLEAN F_MOVIMENTI @@ -94,6 +97,7 @@ BEGIN PROMPT 2 15 "Movimenti" MESSAGE TRUE ENABLE,F_TIPO_BILANCIO | COPY, F_SALDI FLAG "D" + GROUP 1 END BOOLEAN F_SALDI @@ -102,6 +106,7 @@ BEGIN MESSAGE TRUE ENABLE,F_TIPO_BILANCIO MESSAGE FALSE COPY, F_MOVIMENTI | DISABLE, F_TIPO_BILANCIO FLAG "D" + GROUP 1 END BOOLEAN F_VOCI @@ -109,6 +114,7 @@ BEGIN PROMPT 40 11 "Voci" MESSAGE TRUE COPY, F_RELAZ | COPY, F_SRELAZ MESSAGE FALSE COPY, F_RELAZ | COPY, F_SRELAZ + GROUP 1 END BOOLEAN F_RELAZ @@ -116,6 +122,7 @@ BEGIN PROMTP 40 13 "Relazioni" MESSAGE TRUE COPY, F_VOCI | COPY, F_SRELAZ MESSAGE FALSE COPY, F_VOCI | COPY, F_SRELAZ + GROUP 1 END BOOLENAN F_SRELAZ @@ -123,6 +130,7 @@ BEGIN PROMPT 40 15 "Sottorelazioni" MESSAGE TRUE COPY, F_RELAZ | COPY, F_VOCI MESSAGE FALSE COPY, F_RELAZ | COPY, F_VOCI + GROUP 1 END BUTTON DLG_OK 10 2 diff --git a/ab/ab2100b.ini b/ab/ab2100b.ini new file mode 100755 index 000000000..25e30e08f --- /dev/null +++ b/ab/ab2100b.ini @@ -0,0 +1,200 @@ +[MAIN] +DECSEP = +FIELDSEP = | +RECORDSEP = +RECORDSIZE = 0 +TYPEFIELD = 0 + +[RECORD PIACO] +USE = 78 + +FIELD(1) = CODCBL +FIELD(2) = DESCRIZ +ALIGN(2) = L +FIELD(3) = INDBIL +FIELD(4) = CODCONTR +FIELD(5) = SOSPESO + +[RECORD NTBBB] +USE = %NTB + +FIELD(1) = COD +FIELD(2) = CODTAB +ALING(2) = L +FIELD(3) = S0 +ALIGN(3) = L + +[RECORD TBBBD] +USE = %PDB + +FIELD(1) = COD +FIELD(2) = CODTAB +ALIGN(2) = L +FIELD(3) = S0 +ALIGN(3) = L +FIELD(4) = I0 +FIELD(5) = I1 +FIELD(6) = I2 +FIELD(7) = I3 + + +[RECORD SALDI] +USE = 79 + +FIELD(1) = CODDITTA +FIELD(2) = ANNO +FIELD(3) = CODPDB +FIELD(4) = TIPOBIL +FIELD(5) = CODCBL +FIELD(6) = FLDA +FIELD(7) = SALDO +FIELD(8) = PDARE +FIELD(9) = PAVERE +FIELD(10) = RDARE +FIELD(11) = RAVERE +FIELD(12) = IDMOVDETT +ALIGN(12) = L + +[RECORD ANALI] +USE = 82 + +FIELD(1) = CODAN +FIELD(2) = DESCRIZ +ALIGN(2) = L +FIELD(3) = TIPOAN +FIELD(4) = PFSTAL +FIELD(5) = PFSTRF +FIELD(6) = NOTE + +[RECORD CARAD] +USE = 126 + +FIELD(1) = ID +FIELD(2) = STD +FIELD(3) = CLI +FIELD(4) = SPI +FIELD(5) = STI +FIELD(6) = DST +ALING(6) = L +FIELD(7) = CLT +FIELD(8) = SPT +FIELD(9) = STT +FIELD(10) = SVT +FIELD(11) = LST +FIELD(12) = ODA +FIELD(13) = SKI +FIELD(14) = SKT +FIELD(15) = NDV +FIELD(16) = RII +FIELD(17) = RIT +FIELD(18) = TVL + +[RECORD COLLD] +USE = 127 + +FIELD(1) = ID +FIELD(2) = F4A +FIELD(3) = F4B +FIELD(4) = P4A +FIELD(5) = P4B +FIELD(6) = A5A +FIELD(7) = A5B +FIELD(8) = P5A +FIELD(9) = P5B +FIELD(10) = A6A +FIELD(11) = A6B +FIELD(12) = X4A +FIELD(13) = X4B +FIELD(14) = X5A +FIELD(15) = X5B +FIELD(16) = X6A +FIELD(17) = X6B +FIELD(18) = P6A +FIELD(19) = P6B +FIELD(20) = K4A +FIELD(21) = K5A +FIELD(22) = K6A + +[RECORD MOVDE] +USE = 80 + +FIELD(1) = CODDITTA +FIELD(2) = ANNO +FIELD(3) = CODPDB +FIELD(4) = TIPOBIL +FIELD(5) = CODCBL +FIELD(6) = ID +FIELD(7) = TIPODETT +FIELD(8) = CODDETT +ALING(8) = L +FIELD(9) = DESCRIZ +ALIGN(9) = L +FIELD(10) = FLDA +FIELD(11) = IMPORTO +FIELD(12) = PDARE +FIELD(13) = PAVERE +FIELD(14) = RDARE +FIELD(15) = RAVERE +FIELD(16) = DATAREG +FIELD(17) = ANR +FIELD(18) = DATADOC +FIELD(19) = NDOC +FIELD(20) = CAUS +FIELD(21) = IMMESSO +FIELD(22) = DETT +FIELD(23) = INDIR +FIELD(24) = LOC +FIELD(25) = PROV +FIELD(26) = CAP +FIELD(27) = COFI +FIELD(28) = STATOPAIV +FIELD(29) = PAIV +FIELD(30) = IDPADRE +FIELD(31) = IDFIGLIO +FIELD(32) = IDSUCC +FIELD(33) = IDPREC + +[RECORD RELNA] +USE = 85 + +FIELD(1) = CODAN +FIELD(2) = ID +FIELD(3) = IDPADRE +FIELD(4) = IDFIGLIO +FIELD(5) = IDPREC +FIELD(6) = IDSUCC +FIELD(7) = TIPOCOD +FIELD(8) = CODVC +ALING(8) = R +LENGTH(8)= 10 +FIELD(9) = IDCOMP +FIELD(10) = DESCRIZ +ALIGN(10) = L +FIELD(11) = IDCARADD +FIELD(12) = USACARADD +FIELD(13) = IDCOLDICH +FIELD(14) = VOCEINCID + +[RECORD RELVC] +USE = 84 + +FIELD(1) = TIPOCOD +FIELD(2) = CODVC +FIELD(3) = IDCOMP +FIELD(4) = NEXTCOMP +FIELD(5) = PREVCOMP +FIELD(6) = COMP +ALING(6) = L + +[RECORD TVOCI] +USE = 83 + +FIELD(1) = CODVC +FIELD(2) = DESCRIZ +ALING(2) = L +FIELD(3) = TIPOVC +FIELD(4) = CODCBL +FIELD(5) = INDBIL +FIELD(6) = IDCARADD +FIELD(7) = TVL +FIELD(8) = CLASSEVOCE diff --git a/ab/ab2101.cpp b/ab/ab2101.cpp index d60bee39c..8ed696286 100755 --- a/ab/ab2101.cpp +++ b/ab/ab2101.cpp @@ -190,9 +190,8 @@ bool TFile_text_AS400::pre_writerel(TRelation& rel,const TRecord_text& rec) if (logic_num==LF_ABSALDI) {//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()); +// TString prova = get_tipo_bil(); + rel.lfile().put(ABMD_TIPOBIL,get_tipo_bil()); return TRUE; }//Fine parte riservata ai SALDI @@ -307,7 +306,7 @@ bool TFile_text_AS400::pre_writerel(TRelation& rel,const TRecord_text& rec) {//Scrivo la chiave anche sul file secondario della relazione real idcaradd_ra; idcaradd_ra = 0; - TString prova = *idcaradd_ra.string(); +// TString prova = *idcaradd_ra.string(); TLocalisamfile fil(LF_VOCI); fil.curr()=rel.curr(); if (fil.read() != NOERR) @@ -397,7 +396,7 @@ bool TFile_text_AS400::pre_writerel(TRelation& rel,const TRecord_text& rec) //Non ho trovato la VOCE o CARATTERISTICA ADDIZIONALE oppure è diversa caradd.write(); rel.lfile().put(ABRA_USACARADD,TRUE); //Setto il flag - long prova = atol (caradd.get(ABCA_ID)); //Solo per debug +// long prova = atol (caradd.get(ABCA_ID)); //Solo per debug rel.lfile().put(ABRA_IDCARADD,caradd.get(ABCA_ID)); //Aggiungo il collegamento alla carat. add. } else @@ -450,7 +449,7 @@ bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k) 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 - if (f.mask().get_int(F_TIPO_RICE) == 2) + if (f.mask().get_int(F_TIPO_RICE) == RICEZIONE_AS400) { //Questa parte dell'handler è riservata solo al campo F_PERCORSO //se è abilitata la ricezione da AS400: in tutti gli altri casi //non è garantito che ci sia un record di testa @@ -509,7 +508,7 @@ bool TTrasfer::inseriscipercorso(TMask_field& f, KEY k) /* ********************************************************************************************************* */ /* TRicezione */ /*********************************************************************************************************** */ - +/* bool TRicezione::create() { _files.add(new TLocalisamfile(LF_CARADD),1); @@ -521,13 +520,17 @@ bool TRicezione::create() bool TRicezione::destroy() //Distruttore { return TRUE; -} +} */ //Funzione membro che effettua la conversione -bool TRicezione::menu(MENU_TAG) -{ +//bool TRicezione::menu(MENU_TAG) +void TRicezione::main_loop() +{ + _files.add(new TLocalisamfile(LF_CARADD),1); + _files.add(new TLocalisamfile(LF_COLLDICH),2); + 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 @@ -539,7 +542,7 @@ bool TRicezione::menu(MENU_TAG) 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); + TIndwin idle(0,"Attendere: aggiornamento della tabella in corso. \n L'operazione potrebbe richiedere qualche minuto ... ",FALSE,FALSE,60); percorso=msk.get(F_PERCORSO); //Leggo il contenuto di F_PERCORSO @@ -570,7 +573,7 @@ bool TRicezione::menu(MENU_TAG) //messaggio finale message_box(" ... aggiornamento delle tabelle selezionate effettuato"); } //end if (msk.run()) - return FALSE; +// return FALSE; } @@ -578,8 +581,9 @@ void TObject_reception::ricevi(TMask & msk) { TRecord_text rec; //Istanzio un tipo record_text - if (msk.get_bool(F_VOCI)) - { + if ((msk.get_bool(F_VOCI)) && + (msk.get_int(F_TIPO_RICE) == RICEZIONE_AS400)) + {//Eseguo questa parte solo per la ricezione AS400 TRelation *r=_trasfile->t_rec(LF_VOCI)->relation(); TAdditional_cars * ca=new TAdditional_cars(_excllock); r->replacef(ca,LF_CARADD); @@ -619,6 +623,12 @@ void TObject_reception::ricevi(TMask & msk) if (msk.get_bool(F_RELAZ)) { _trasfile->autosave(rec,LF_RELVOCI); + if (msk.get_int(F_TIPO_RICE) != RICEZIONE_AS400) + {// Se è abilitito è abilitato la RICEZIONE_INTERNA devo ricevere anche questi files + _trasfile->autosave(rec,LF_RELANA); + _trasfile->autosave(rec,LF_CARADD); + _trasfile->autosave(rec,LF_COLLDICH); + } } } } @@ -948,7 +958,7 @@ void TRicezione_AS400::build_relana(TString& config_file, const TMask &msk, cons //ft = set_config_name(config_file,msk,percorso); ft = trans_file(); - ft->close(); //Chiudo il file +// ft->close(); //Chiudo il file ft->open('r'); //Apro il file di testo in lettura //Inizia il ciclo sulle Analisi in radici @@ -1008,8 +1018,8 @@ void TRicezione_AS400::build_relana(TString& config_file, const TMask &msk, cons // modifica e scarica il record - TRectype prova(LF_COLLDICH); - prova= rel.lfile(LF_COLLDICH).curr(); +// TRectype prova(LF_COLLDICH); +// prova= rel.lfile(LF_COLLDICH).curr(); ft->autosave(rel,rec); //La relazione principale è basata su RELANA tabtree.remove(key); } while ((ft->read(rec) == NOERR) && (rec.type() == TIPO_SRELAZ)); @@ -1150,15 +1160,23 @@ void TRicezione_AS400::print_ana_tree(int &level,TRectype & nodo,FILE * stream) void TRicezione_AS400::ricevi(TMask & msk) { + trasfile()->set_tipo_bilancio(msk.get(F_TIPO_BILANCIO)); // 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); } + + 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); + } //La chiusura del _trasfile non può essere eseguita prima poichè questo //serve nella costruzione dell'albero dei movimenti if (_trasfile != NULL) @@ -1167,13 +1185,6 @@ void TRicezione_AS400::ricevi(TMask & msk) delete _trasfile; _trasfile =NULL; } - 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) @@ -1181,6 +1192,7 @@ 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->open('r'); //apro il TFile_text in lettura //_trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione } @@ -1191,12 +1203,15 @@ TRicezione_AS400::TRicezione_AS400(const TFilename &percorso) delete _trasfile; TString config("ab2100a.ini"); _trasfile = new TFile_text_AS400(percorso, config); //Leggo il file di configurazione + _trasfile->open('r'); //apro il TFile_text in lettura } + 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 + _trasfile->open('r'); //apro il TFile_text in lettura } diff --git a/ab/ab2102.cpp b/ab/ab2102.cpp index d5b760705..0ae6ac934 100755 --- a/ab/ab2102.cpp +++ b/ab/ab2102.cpp @@ -10,7 +10,7 @@ #include #include - +#define TABELLA_TIPO_BILANCI "NTBBB" const char* get_ordinamento(TVariable_rectype & rec) { @@ -250,12 +250,60 @@ void TInvio_AS400::formatta(TRecord_text &rec, TRectype &node, int &logic_num) rec.add(SIGLA_TABELLA_PERIODI,SIGLA_TAB_PER); } } - + +void TObject_send::converti(int logic_num) +{ + TRelation *tr_relation=_trasfile->t_rec(logic_num)->relation(); + TRecord_text rec(_trasfile->t_rec(logic_num)->type()); //Istanzio un tipo record_text + TCursor *cur=NULL; + cur = new TCursor(tr_relation); + + //Leggo il numero di records da convertire + long items =cur->items(); + //Barra scorrevole di attesa + TProgind idle(items,"Attendere: conversione in corso ...",TRUE,TRUE,60); + + //Ciclo principale di conversione + for (*cur=0;cur->pos()autoload(rec,logic_num); + rec.add(rec.type(),0); + _trasfile->write(rec); + } + delete cur; +} + +void TObject_send::converti(int main_file, const char * tabname) +{ + TRelation *tr_relation=_trasfile->t_rec(main_file,tabname)->relation(); + TRecord_text rec(_trasfile->t_rec(main_file,tabname)->type()); //Istanzio un tipo record_text + TCursor *cur=NULL; + cur = new TCursor(tr_relation); + + int logic_num= tr_relation->lfile().num(); + //Leggo il numero di records da convertire + long items =cur->items(); + //Barra scorrevole di attesa + TProgind idle(items,"Attendere: conversione in corso ...",TRUE,TRUE,60); + + //Ciclo principale di conversione + for (*cur=0;cur->pos()autoload(rec,logic_num); + _trasfile->autoload(rec,tabname); + rec.add(rec.type(),0); + _trasfile->write(rec); + } + delete cur; +} + void TInvio_AS400::converti(int logic_num) { - TRelation *tr_relation=_trasfile->t_rec(logic_num)->relation(); - TRecord_text rec(_trasfile->t_rec(logic_num)->type()); //Istanzio un tipo record_text + TRelation *tr_relation=trans_file()->t_rec(logic_num)->relation(); + TRecord_text rec(trans_file()->t_rec(logic_num)->type()); //Istanzio un tipo record_text TCursor *cur=NULL; TAssoc_array progressivi; @@ -289,27 +337,27 @@ void TInvio_AS400::converti(int logic_num) if (logic_num == LF_MOVDETT) {//In questo caso la conversione è un po' particolare rec.set_type(tr_relation->lfile().get(ABMD_TIPO_TRACCIATO)); - _trasfile->autoload(rec,*cur,&rec.type()); + trans_file()->autoload(rec,*cur,&rec.type()); if (mov_da_scrivere(tr_relation->lfile().curr())) { trasferisci_albero(tr_relation->lfile().curr(),rec,progressivi); formatta(rec,tr_relation->lfile().curr(),logic_num); - _trasfile->write(rec); + trans_file()->write(rec); } } else {//in tutti gli altri casi la conversione è semplice - _trasfile->autoload(rec,logic_num); + trans_file()->autoload(rec,logic_num); if (logic_num == LF_ABSALDI || logic_num == LF_TABCOM) formatta(rec,tr_relation->lfile().curr(),logic_num); - _trasfile->write(rec); + trans_file()->write(rec); } } delete cur; } //Handler per l'inserimento del percorso completo -bool TInvio_AS400::inseriscipercorso(TMask_field& f, KEY k) +bool TInvio::inseriscipercorso(TMask_field& f, KEY k) { TString percorso; percorso=f.get(); //Leggo il contenuto del campo @@ -318,9 +366,9 @@ bool TInvio_AS400::inseriscipercorso(TMask_field& f, KEY k) //Funzione membro che esegue la conversione di trasferimento -bool TInvio_AS400::menu(MENU_TAG) +//bool TInvio_AS400::menu(MENU_TAG) +void TInvio::main_loop() { - 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 @@ -328,53 +376,129 @@ bool TInvio_AS400::menu(MENU_TAG) 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.hide(F_TIPO_BILANCIO); //nascondo questo campo poichè non mi serve msk.hide(F_TESTO_TIPOBIL); //nascondo questo campo poichè non mi serve - 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 + msk.enable(-1,TRUE); 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 - - _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_int(F_TIPO_RICE) == RICEZIONE_AS400) + { + if ((msk.get_bool(F_VOCI) == TRUE) || + (msk.get_bool(F_RELAZ) == TRUE) || + (msk.get_bool(F_SRELAZ) == TRUE)) + { + message_box("L'ivio a AS400 delle VOCI, RELAZIONI e SOTTORELAZIONI non è attualmente previsto"); + } + _invio = new TInvio_AS400(percorso); + } + + if (msk.get_int(F_TIPO_RICE) == RICEZIONE_INTERNA) + { + _invio = new TObject_send(percorso); + } + if (msk.get_int(F_TIPO_RICE) == RICEZIONE_USER_DEFINED) + { + TString config_file(msk.get(F_PERCORSO_UTENTE)); //Nome del file di configurazione + _invio = new TInvio_user_defined(config_file,percorso); + } + +// Parte di invio if (msk.get_bool(F_PIANO_CONTI)==TRUE) //Controllo se si è scelto di convertire il piano dei conti { - converti(LF_ABPCON); //Conversione + _invio->converti(LF_ABPCON); //Conversione } + + if (msk.get_bool(F_PERIODI_BILANCI)==TRUE) //Scelta di convertire la tabella periodi bilanci { - converti(LF_TABCOM); + if (msk.get_int(F_TIPO_RICE) == RICEZIONE_AS400) + {//Se eseguo un invio a AS400 converto passando il numero del file + _invio->converti(LF_TABCOM); + } + else + { //Se eseguo un invio interno converto passando il nome della tabella comune + _invio->converti(LF_TABCOM,"%PDB"); + _invio->converti(LF_TABCOM,"%NTB"); + } } + if (msk.get_bool(F_ANALISI)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio { - converti(LF_ANALISI); + _invio->converti(LF_ANALISI); } if (msk.get_bool(F_MOVIMENTI)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio { - converti(LF_MOVDETT); + _invio->converti(LF_MOVDETT); } + if (msk.get_bool(F_SALDI)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio { - converti(LF_ABSALDI); + _invio->converti(LF_ABSALDI); } - _trasfile->close(); - delete _trasfile; + + if (msk.get_int(F_TIPO_RICE) != RICEZIONE_AS400) + {// Solo se non è un invio ad AS400 + if (msk.get_bool(F_VOCI)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio + { + _invio->converti(LF_VOCI); + } + + if (msk.get_bool(F_RELAZ)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio + { + _invio->converti(LF_RELVOCI); + } + + if (msk.get_bool(F_SRELAZ)==TRUE) //scelta di cnverite la tabella tipi analisi di bilancio + { + if (msk.get_int(F_TIPO_RICE) == RICEZIONE_INTERNA) + { + _invio->converti(LF_CARADD); + _invio->converti(LF_COLLDICH); + } + _invio->converti(LF_RELANA); + } + } + delete _invio; + //messaggio finale message_box(" ... aggiornamento delle tabelle effettuato"); } //end if (msk.run()) - return FALSE; +// return FALSE; } int ab2102(int argc, char **argv) { - TInvio_AS400 a; + TInvio a; a.run(argc,argv,"Trasferimento su file di testo"); return 0; -} \ No newline at end of file +} + +TObject_send::TObject_send(const TFilename &percorso) +{ + if (_trasfile != NULL) + delete _trasfile; + _trasfile = new TFile_text(percorso, "AB2100B.INI"); /*DA CAMBIARE*/ + _trasfile->open('w'); //apro il TFile_text in lettura +} + +TInvio_AS400::TInvio_AS400(const TFilename &percorso) +{ + if (_trasfile != NULL) + delete _trasfile; + _trasfile = new TFile_text(percorso, "AB2100A.INI"); /*DA CAMBIARE*/ + _trasfile->open('w'); //apro il TFile_text in lettura + +} + +TInvio_user_defined::TInvio_user_defined(const TString & config, const TFilename &percorso) +{ + if (_trasfile != NULL) + delete _trasfile; + _trasfile = new TFile_text(percorso, config); //Leggo il file di configurazione + _trasfile->open('w'); //apro il TFile_text in lettura +} diff --git a/ab/bastarb.uml b/ab/bastarb.uml index 5fc25829b..85f72854f 100755 --- a/ab/bastarb.uml +++ b/ab/bastarb.uml @@ -9,9 +9,9 @@ BEGIN USE %ARB INPUT CODTAB[1,5] F_INIZIO1 DISPLAY "Codice" CODTAB[1,5] - DISPLAY "Anno" CODTAB[6,9] - DISPLAY "Periodo" CODTAB[10,12] - DISPLAY "Tipo" CODTAB[13,15] + DISPLAY "Anno@15" CODTAB[6,9] + DISPLAY "Periodo@15" CODTAB[10,12] + DISPLAY "Tipo@15" CODTAB[13,15] OUTPUT F_INIZIO1 CODTAB[1,5] GROUP 1 FIELD CODTAB[1,5]