Files correlati : Ricompilazione Demo : [ ] Commento : RIportata la verione 3.2 1167 git-svn-id: svn://10.65.10.50/trunk@16716 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			214 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			214 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <execp.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <reputils.h>
 | 
						|
#include <utility.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <reprint.h>
 | 
						|
#include <textset.h>
 | 
						|
 | 
						|
#include "tabutil.h"
 | 
						|
 | 
						|
#include "ps0713.h"
 | 
						|
#include "ps0713300a.h"
 | 
						|
 | 
						|
#include <causali.h>
 | 
						|
#include <clifo.h>
 | 
						|
#include <mov.h>
 | 
						|
#include <rmoviva.h>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
// TAutomask
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
 | 
						|
class TImportaFat_mask : public TAutomask
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
 | 
						|
public:
 | 
						|
  TImportaFat_mask();
 | 
						|
};
 | 
						|
  
 | 
						|
TImportaFat_mask::TImportaFat_mask() :TAutomask ("ps0713300a")
 | 
						|
{
 | 
						|
}  
 | 
						|
 | 
						|
bool TImportaFat_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | 
						|
{ 
 | 
						|
	switch (f.dlg())
 | 
						|
	{
 | 
						|
		//giochetto per avere la lista dei files validi nella directory di trasferimento!
 | 
						|
		case F_NAME:
 | 
						|
			if (e == fe_button)
 | 
						|
			{
 | 
						|
				TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), 
 | 
						|
                           "File@32");
 | 
						|
				TFilename path = get(F_PATH);
 | 
						|
				path.add("*.csv");	//files delle testate
 | 
						|
				list_files(path, as.rows_array());
 | 
						|
				TFilename name;
 | 
						|
				FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
 | 
						|
				{
 | 
						|
					name = *row;
 | 
						|
					*row = name.name();
 | 
						|
				}
 | 
						|
				if (as.run() == K_ENTER)
 | 
						|
				{
 | 
						|
					f.set(as.row(as.selected()));
 | 
						|
				}
 | 
						|
			}
 | 
						|
			break;
 | 
						|
		default:
 | 
						|
			break;
 | 
						|
	}
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
                                      ///////////////////////////////////////////////
 | 
						|
                                      //// CLASSI DERIVATE PER IMPORTAZIONE DATI ////
 | 
						|
                                      ///////////////////////////////////////////////  
 | 
						|
 | 
						|
/////////////////////////////////////////////////////////////
 | 
						|
//	Recordset specifici per i dati da trasferire
 | 
						|
/////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
//Piano dei conti
 | 
						|
class TImporta_fatt_recordset : public TCSV_recordset
 | 
						|
{
 | 
						|
  public:
 | 
						|
    TImporta_fatt_recordset(const char * fileName);
 | 
						|
};
 | 
						|
 | 
						|
TImporta_fatt_recordset::TImporta_fatt_recordset(const char * fileName)
 | 
						|
                          : TCSV_recordset("CSV(\",\")")
 | 
						|
{
 | 
						|
	load_file(fileName);
 | 
						|
}
 | 
						|
 | 
						|
///////////////////////////////////////
 | 
						|
// TSkeleton_application
 | 
						|
///////////////////////////////////////
 | 
						|
class TFattCSV : public TSkeleton_application
 | 
						|
{
 | 
						|
	virtual bool check_autorization() const {return false;}
 | 
						|
  virtual const char * extra_modules() const {return "ve";}
 | 
						|
 | 
						|
	TImportaFat_mask*				  _msk;
 | 
						|
	TConfig*							    _configfile;
 | 
						|
 | 
						|
 | 
						|
//protected:
 | 
						|
 | 
						|
 | 
						|
public:           
 | 
						|
  virtual bool create();
 | 
						|
  virtual bool destroy();
 | 
						|
  virtual void main_loop();
 | 
						|
	bool transfer(const TFilename& file);
 | 
						|
 
 | 
						|
  TFattCSV() {};
 | 
						|
};
 | 
						|
 | 
						|
bool TFattCSV::transfer(const TFilename& file)
 | 
						|
{
 | 
						|
  TImporta_fatt_recordset s(file);
 | 
						|
 | 
						|
  TProgind pi(s.items(),"Importazione fatture in corso ...",true,true);
 | 
						|
 | 
						|
  _configfile->set_paragraph("Transaction"); //setto il paragrafo [Transaction] del file ini
 | 
						|
  
 | 
						|
  _configfile->set("Action","INSERT");
 | 
						|
  _configfile->set("Mode","AUTO");
 | 
						|
 | 
						|
  _configfile->set_paragraph("23"); //setto il paragrafo [23] del file ini (testata)
 | 
						|
 | 
						|
  _configfile->set(MOV_TIPO,"F");
 | 
						|
  _configfile->set(MOV_CODCF, _msk->get(F_CODCF));
 | 
						|
 | 
						|
  _configfile->set(MOV_CODCAUS, _msk->get(F_CODCAU));
 | 
						|
  
 | 
						|
  _configfile->set(MOV_DATAREG, _msk->get(F_DATAREG));
 | 
						|
 | 
						|
 | 
						|
  int nriga = 1;
 | 
						|
 | 
						|
  for (bool ok=s.move_first();ok;ok=s.move_next())
 | 
						|
  {
 | 
						|
    if (!pi.addstatus(1)) 
 | 
						|
      break;
 | 
						|
 | 
						|
    TString8 paragraph;
 | 
						|
    paragraph.format("%d,%d",LF_RMOVIVA,nriga++);
 | 
						|
    _configfile->set_paragraph(paragraph);
 | 
						|
 | 
						|
    TString16 codcom = s.get(0).as_string();
 | 
						|
    real imp = s.get(1).as_real();
 | 
						|
 | 
						|
    _configfile->set(RMI_IMPONIBILE,imp.string());
 | 
						|
    _configfile->set(RMI_CODIVA,_msk->get(F_CODIVA));
 | 
						|
    _configfile->set(RMI_CODCMS,codcom);
 | 
						|
 | 
						|
  }
 | 
						|
 | 
						|
  _configfile->set_paragraph("Transaction");
 | 
						|
    
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
const char* nomeini = "ps0713300fatt.ini";
 | 
						|
 | 
						|
bool TFattCSV::create()
 | 
						|
{
 | 
						|
  xvt_fsys_removefile(nomeini);
 | 
						|
  _configfile = new TConfig(nomeini);
 | 
						|
 | 
						|
  _msk = new TImportaFat_mask();
 | 
						|
         
 | 
						|
  return TSkeleton_application::create();
 | 
						|
}
 | 
						|
 | 
						|
bool TFattCSV::destroy()
 | 
						|
{
 | 
						|
	delete _msk;
 | 
						|
	delete _configfile;
 | 
						|
  return TApplication::destroy();
 | 
						|
}
 | 
						|
 | 
						|
void TFattCSV::main_loop()
 | 
						|
{
 | 
						|
  KEY	tasto;
 | 
						|
	tasto = _msk->run();
 | 
						|
  if (tasto == K_ENTER)
 | 
						|
  {
 | 
						|
		
 | 
						|
    //genero il nome del file da caricare
 | 
						|
    TFilename name = _msk->get(F_PATH);
 | 
						|
    name.add(_msk->get(F_NAME));
 | 
						|
		if (transfer(name))
 | 
						|
		{
 | 
						|
			
 | 
						|
      TString app;
 | 
						|
      app << "cg2 -0 -i" << nomeini; 
 | 
						|
      TExternal_app primanota(app);
 | 
						|
      primanota.run();
 | 
						|
 | 
						|
      message_box(TR("Importazione fatture completata"));
 | 
						|
		}
 | 
						|
  }   
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
TFattCSV& app() { return (TFattCSV&) main_app(); }
 | 
						|
 | 
						|
 | 
						|
int ps0713300 (int argc, char* argv[])
 | 
						|
{
 | 
						|
  TFattCSV main_app;
 | 
						|
  main_app.run(argc, argv, TR("Importazione Fatture"));
 | 
						|
  return true;
 | 
						|
} |