505 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			505 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| //AB2102.CPP Trasferimento 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
 | |
| #include "relana.h"     //Contiene le definizioni di costanti relative ai nomi dei campi di LF_RELANA
 | |
| #include "ab2100.h"   
 | |
| #include "ab2100a.h"
 | |
| #include <progind.h>
 | |
| #include <assoc.h>
 | |
| #include <varrec.h>
 | |
| 
 | |
| #define TABELLA_TIPO_BILANCI "NTBBB"
 | |
| 
 | |
| const char* get_ordinamento(TVariable_rectype & rec)
 | |
| {     
 | |
|   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_CL)
 | |
|   {//E' un record di MOVI4
 | |
|      return (MOVIMENTO4);
 | |
|   }                       
 | |
|   
 | |
|   if (rec.get(ABMD_TIPODETT) == FLAG_FORNITORE_FO)
 | |
|   {//E' un record di MOVI5
 | |
|     return (MOVIMENTO5);
 | |
|   }
 | |
|   
 | |
|   if (rec.get(ABMD_TIPODETT) == FLAG_MOVIMENTO_MO)
 | |
|   {//Può essere MOVI 1 2
 | |
|     real r(rec.get(ABMD_IMPORTO)); 
 | |
|     if (r > 0)
 | |
|     //Se è un saldo il record va in MOVI1
 | |
|       return (MOVIMENTO1);
 | |
|     //Se è un progressivo o una riclassificazione va in MOVI2
 | |
|     return (MOVIMENTO2);
 | |
|   } 
 | |
|   //A questo punto la funzione non dovrebbe mai arrivare
 | |
|   CHECK (FALSE,"La funzione get_ordinamento ritorna un valore non valido");
 | |
|   return NULL;
 | |
| }   
 | |
| 
 | |
| 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));
 | |
|   padre.put(ABMD_CODPDB,node.get(ABMD_CODPDB));
 | |
|   padre.put(ABMD_TIPOBIL,node.get(ABMD_TIPOBIL));
 | |
|   padre.put(ABMD_CODCBL,node.get(ABMD_CODCBL));
 | |
|   padre.put(ABMD_ID,node.get(ABMD_IDPADRE));
 | |
|   if (padre.read() == NOERR)
 | |
|     return TRUE;
 | |
|   return FALSE;
 | |
| }
 | |
|                         
 | |
| long TInvio_AS400::my_num(TLocalisamfile& mov, TAssoc_array& progressivi)
 | |
| {
 | |
|   long ret = 1;
 | |
|   
 | |
|   TToken_string my_key;
 | |
|   my_key.add(mov.get(ABMD_CODDITTA));
 | |
|   my_key.add(mov.get(ABMD_ANNO));
 | |
|   my_key.add(mov.get(ABMD_CODPDB));
 | |
|   my_key.add(mov.get(ABMD_TIPOBIL));
 | |
|   my_key.add(mov.get(ABMD_CODCBL));
 | |
|   my_key.add(mov.get(ABMD_ID));
 | |
|   
 | |
|   if (progressivi.is_key(my_key))
 | |
|   { 
 | |
|     ret = atol(*(TString*)progressivi.objptr(my_key));
 | |
|   }
 | |
|   else
 | |
|   {                         
 | |
|     long id_prec =mov.get_long(ABMD_IDPREC);
 | |
|    // if (id_prec != ID_NULLO) // Se il padre di un movimento è nullo significa che è un movimento di un saldo
 | |
|    // {                 
 | |
|     mov.put(ABMD_ID,id_prec);
 | |
|     if (mov.read()== NOERR)
 | |
|     {
 | |
|       ret=my_num(mov,progressivi)+1;
 | |
|     }
 | |
|      // else
 | |
|      //   CHECK (FALSE,"Si è verificata una inconsistenza nei dati: è stato trovato un movimento senza il padre!");
 | |
|     //}       
 | |
|     TString16 str_ret;
 | |
|     str_ret << ret;
 | |
|     progressivi.add(my_key,str_ret);
 | |
|   }  
 | |
|   return ret;
 | |
| }
 | |
|                         
 | |
| 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_CG)
 | |
|     rec.add(node.get(ABMD_CODDETT),CONTO_COGE_MOVDETT);
 | |
|     
 | |
|   //Se è un 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_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
 | |
|     }
 | |
|   // Se il padre del movimento non esiste, allora è un movimento di un saldo
 | |
|   //  else
 | |
|   //  {//Non dovrebbe mai succedere: non esiste il padre del movimento
 | |
|   //    CHECK (FALSE,"Si è verificata una inconsistenza nei dati: è stato trovato un movimento senza il padre!");
 | |
|   //  }                         
 | |
|     
 | |
|     //Questa parte esegue la "numerazione progressiva" dei movimenti: assegna il numero di riga
 | |
|     TString16 num_riga;
 | |
|     mov.curr()=node;
 | |
|     num_riga << my_num(mov,progressivi);
 | |
|     rec.add(num_riga,NUMERO_RIGA_MOVDETT);
 | |
|     
 | |
|     //Trovo il padre se esiste      
 | |
|     long id_padre = atol(node.get(ABMD_IDPADRE));
 | |
|     real r(node.get(ABMD_CODDETT));
 | |
|     if ((id_padre != ID_NULLO) && (r == 0)) //Se esiste il padre e non sono un COGE devo assegnarmi
 | |
|                               //nel campo PROGRESSIVO_DETT il numero progressivo del padre
 | |
|     {//Leggo il padre
 | |
|       mov.curr()=node;
 | |
|       mov.put(ABMD_ID,id_padre);
 | |
|       if (mov.read()==NOERR)
 | |
|       {
 | |
|         TString16 num_prog;
 | |
|         num_prog << my_num(mov,progressivi);
 | |
|         rec.add(num_prog,PROGRESSIVO_DETT_MOVDETT);  //Questo è un record di tipo MOVIMENTI
 | |
|       }
 | |
|       else
 | |
|         CHECK (FALSE,"Si è verificata una inconsistenza nei dati: è stato trovato un movimento senza il padre!");
 | |
|     }
 | |
|   }//Fine parte "ricostruzione" albero dei movimenti
 | |
|   
 | |
|   //Questa parte "ricostruisce" l'albero dei dettaglio
 | |
|   if (node.get(ABMD_TIPODETT)== FLAG_DETT_DT)
 | |
|   {                   
 | |
|     mov.curr()=node;       
 | |
|     TString16 num; 
 | |
|     num << my_num(mov,progressivi);
 | |
|     rec.add(num,PROGRESSIVO_DETT_MOVDETT);  //Questo è un record di tipo DETTAGLI
 | |
|   }
 | |
| }
 | |
| 
 | |
| bool TInvio_AS400::mov_da_scrivere(TRectype &node)
 | |
| {
 | |
|   TLocalisamfile dett(LF_MOVDETT);
 | |
|   if (node.get_long(ABMD_IDPADRE) == ID_NULLO) //Sono al primo livello
 | |
|     return TRUE;
 | |
|     
 | |
|   if (cerca_padre(dett,node))
 | |
|   {
 | |
|     if (dett.get_long(ABMD_IDPADRE) == ID_NULLO) //Sono al secondo livello
 | |
|       return TRUE;
 | |
|     else
 | |
|     {
 | |
|       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 TInvio_AS400::formatta(TRecord_text &rec, TRectype &node, int &logic_num)
 | |
| {                                           
 | |
|   if (logic_num == LF_MOVDETT)
 | |
|   {
 | |
|     if ((rec.type() == MOVIMENTO1) || (rec.type() == MOVIMENTO2))
 | |
|     {//Se c'è un valore significativo in IMPORTO significa che questo valore va
 | |
|      //inserito nel campo IMPORTO del file di testo e settato il flag D/A 
 | |
|      //Il tipo record (già settato) è MOVI1
 | |
|       real r(node.get(ABMD_IMPORTO));
 | |
|       if (r > 0)
 | |
|       {               
 | |
|         TString imp = node.get(ABMD_IMPORTO);
 | |
|         rec.add(node.get(ABMD_FLDA),FLAG_DA_MOVDETT);
 | |
|         rec.add(imp.rtrim(4),IMPORTO_MOVDETT);
 | |
|       }
 | |
|       else
 | |
|       {//Questi valori vanno inseriti in IMPORTO di MOVI2
 | |
|         real rpd(node.get(ABMD_PDARE));
 | |
|         real rpa(node.get(ABMD_PAVERE));
 | |
|         real rrd(node.get(ABMD_RDARE));
 | |
|         real rra(node.get(ABMD_RAVERE));
 | |
|         if (rpd > 0)
 | |
|         {                   
 | |
|           TString imp =node.get(ABMD_PDARE);
 | |
|           rec.add("D",FLAG_DA_MOVDETT);
 | |
|           rec.add(imp.rtrim(4),IMPORTO_MOVDETT);
 | |
|         }
 | |
|         if (rpa > 0)  
 | |
|         {
 | |
|           TString imp = node.get(ABMD_PAVERE);
 | |
|           rec.add("A",FLAG_DA_MOVDETT);
 | |
|           rec.add(imp.rtrim(4),IMPORTO_MOVDETT);
 | |
|         }
 | |
|         if (rrd > 0)
 | |
|         {            
 | |
|           TString imp = node.get(ABMD_RDARE);
 | |
|           rec.add("X",FLAG_RICLASSIFICAZIONE_MOVDETT);
 | |
|           rec.add("D",FLAG_DA_MOVDETT);
 | |
|           rec.add(imp.rtrim(4),IMPORTO_MOVDETT);
 | |
|         }
 | |
|         if (rra > 0)  
 | |
|         {            
 | |
|           TString imp = node.get(ABMD_RAVERE);
 | |
|           rec.add("X",FLAG_RICLASSIFICAZIONE_MOVDETT);
 | |
|           rec.add("A",FLAG_DA_MOVDETT);
 | |
|           rec.add(imp.rtrim(4),IMPORTO_MOVDETT);
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     else
 | |
|     {//Questi sono gli importi dei dettagli
 | |
|       TString sld = rec.row(SALDO_INIZIO_ANNO_MOVDETT);
 | |
|       rec.add(sld.rtrim(4),SALDO_INIZIO_ANNO_MOVDETT);
 | |
|       TString pda = rec.row(PROGRESSIVO_DARE_MOVDETT);
 | |
|       rec.add(pda.rtrim(4),PROGRESSIVO_DARE_MOVDETT);
 | |
|       TString pav = rec.row(PROGRESSIVO_AVERE_MOVDETT);
 | |
|       rec.add(pav.rtrim(4),PROGRESSIVO_AVERE_MOVDETT);
 | |
|       TString rda = rec.row(RICLASSIFICAZIONE_DARE_MOVDETT);
 | |
|       rec.add(rda.rtrim(4),RICLASSIFICAZIONE_DARE_MOVDETT);
 | |
|       TString rav = rec.row(RICLASSIFICAZIONE_AVERE_MOVDETT);
 | |
|       rec.add(rav.rtrim(4),RICLASSIFICAZIONE_AVERE_MOVDETT);
 | |
|     }
 | |
|   }// end if LF_MOVDETT
 | |
|   if (logic_num == LF_ABSALDI)
 | |
|   {
 | |
|     TString sld = rec.row(SALDO_INIZIO_ANNO_SLD_MOVDETT);
 | |
|     rec.add(sld.rtrim(4),SALDO_INIZIO_ANNO_SLD_MOVDETT);
 | |
|     TString pda = rec.row(PROGRESSIVO_DARE_SLD_MOVDETT);
 | |
|     rec.add(pda.rtrim(4),PROGRESSIVO_DARE_SLD_MOVDETT);
 | |
|     TString pav = rec.row(PROGRESSIVO_AVERE_SLD_MOVDETT);
 | |
|     rec.add(pav.rtrim(4),PROGRESSIVO_AVERE_SLD_MOVDETT);
 | |
|     TString rda = rec.row(RICLASSIFICAZIONE_DARE_SLD_MOVDETT);
 | |
|     rec.add(rda.rtrim(4),RICLASSIFICAZIONE_DARE_SLD_MOVDETT);
 | |
|     TString rav = rec.row(RICLASSIFICAZIONE_AVERE_SLD_MOVDETT);
 | |
|     rec.add(rav.rtrim(4),RICLASSIFICAZIONE_AVERE_SLD_MOVDETT);
 | |
|   }// end if LF_ABSALDI
 | |
|   if (logic_num == LF_TABCOM && rec.type() == TIPO_TABELLA_PERIODI)
 | |
|   {
 | |
|     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,TR("Attendere: conversione in corso ..."),TRUE,TRUE,60);
 | |
|   
 | |
|   //Ciclo principale di conversione
 | |
|   for (*cur=0;cur->pos()<items;++*cur)
 | |
|   {
 | |
|      idle.addstatus(1);
 | |
|      _trasfile->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,TR("Attendere: conversione in corso ..."),TRUE,TRUE,60);
 | |
|   
 | |
|   //Ciclo principale di conversione
 | |
|   for (*cur=0;cur->pos()<items;++*cur)
 | |
|   {
 | |
|      idle.addstatus(1);
 | |
| //     _trasfile->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=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;
 | |
|     
 | |
|   if (logic_num == LF_MOVDETT)
 | |
|   {
 | |
|     TVariable_rectype *vrec_rmov= new TVariable_rectype(LF_MOVDETT);
 | |
|     vrec_rmov->add_field(new TVariable_field (ABMD_TIPO_TRACCIATO,get_ordinamento,5));
 | |
|     //Costruisco la chiave del TSorted_cursor
 | |
|     TToken_string exp(ABMD_TIPO_TRACCIATO);
 | |
|     exp.add(ABMD_CODDITTA);
 | |
|     exp.add(ABMD_ANNO);
 | |
|     exp.add(ABMD_CODPDB);
 | |
|     exp.add(ABMD_TIPOBIL);
 | |
|     exp.add(ABMD_CODCBL);
 | |
|     exp.add(ABMD_ID);
 | |
|     cur = new TSorted_cursor(tr_relation,exp);
 | |
|     cur->file().set_curr(vrec_rmov);
 | |
|   }
 | |
|   else
 | |
|     cur = new TCursor(tr_relation);
 | |
| 
 | |
|   //Leggo il numero di records da convertire
 | |
|   long items =cur->items();
 | |
|   //Barra scorrevole di attesa
 | |
|   TProgind idle(items,TR("Attendere: conversione in corso ..."),TRUE,TRUE,60);
 | |
|   
 | |
|   //Ciclo principale di conversione
 | |
|   for (*cur=0;cur->pos()<items;++*cur)
 | |
|   {
 | |
|     idle.addstatus(1);
 | |
|     if (logic_num == LF_MOVDETT)
 | |
|     {//In questo caso la conversione è un po' particolare
 | |
|       rec.set_type(tr_relation->lfile().get(ABMD_TIPO_TRACCIATO));
 | |
|       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);
 | |
|         trans_file()->write(rec);
 | |
|       }
 | |
|     } 
 | |
|     else
 | |
|     {//in tutti gli altri casi la conversione è semplice
 | |
|       trans_file()->autoload(rec,logic_num);
 | |
|       if (logic_num == LF_ABSALDI || logic_num == LF_TABCOM)
 | |
|         formatta(rec,tr_relation->lfile().curr(),logic_num);
 | |
|       trans_file()->write(rec);
 | |
|     }
 | |
|   }
 | |
|   delete cur;
 | |
| }
 | |
| 
 | |
| //Handler per l'inserimento del percorso completo
 | |
| bool TInvio::inseriscipercorso(TMask_field& f, KEY k)
 | |
| {
 | |
|   TString percorso;
 | |
|   percorso=f.get();       //Leggo il contenuto del campo
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| 
 | |
| //Funzione membro che esegue la conversione di trasferimento
 | |
| //bool TInvio_AS400::menu(MENU_TAG)
 | |
| void TInvio::main_loop()
 | |
| {
 | |
|   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.hide(F_TIPO_BILANCIO);  //nascondo questo campo poichè non mi serve
 | |
|   msk.hide(F_TESTO_TIPOBIL);  //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
 | |
|     
 | |
|     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(TR("L'invio 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
 | |
|     {
 | |
|       _invio->converti(LF_ABPCON);                                //Conversione
 | |
|     }
 | |
|     
 | |
|     
 | |
|     if (msk.get_bool(F_PERIODI_BILANCI)==TRUE)          //Scelta di convertire la tabella periodi bilanci
 | |
|     {
 | |
|       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
 | |
|     {
 | |
|       _invio->converti(LF_ANALISI);
 | |
|     }
 | |
| 
 | |
|     if (msk.get_bool(F_MOVIMENTI)==TRUE)                  //scelta di cnverite la tabella tipi analisi di bilancio
 | |
|     {
 | |
|       _invio->converti(LF_MOVDETT);
 | |
|     }
 | |
|     
 | |
|     if (msk.get_bool(F_SALDI)==TRUE)                  //scelta di cnverite la tabella tipi analisi di bilancio
 | |
|     {
 | |
|       _invio->converti(LF_ABSALDI);
 | |
|     }
 | |
|     
 | |
|     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;
 | |
| } 
 | |
| 
 | |
| int ab2102(int argc, char **argv)
 | |
| {
 | |
|   TInvio a;
 | |
|   a.run(argc,argv,TR("Trasferimento su file di testo"));
 | |
|   return 0;
 | |
| }
 | |
| 
 | |
| 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
 | |
| }
 |