Files correlati : cacnv.exe ca2.exe Ricompilazione Demo : [ ] Commento : Modlo contabilità analitica aggiunta ricostruzione saldi . Aggiungere a menu git-svn-id: svn://10.65.10.50/trunk@13003 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			138 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <recarray.h>
 | 
						|
#include <relation.h>
 | 
						|
 | 
						|
#include "calib01.h"
 | 
						|
#include "ca2.h"
 | 
						|
#include "ca2300a.h"
 | 
						|
 | 
						|
#include "movana.h"
 | 
						|
#include "rmovana.h"
 | 
						|
#include "saldana.h"
 | 
						|
 | 
						|
//--------------------------------------------------------------------
 | 
						|
//  MASCHERA
 | 
						|
//--------------------------------------------------------------------
 | 
						|
class TRic_saldi_msk : public TAutomask
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event fe, long jolly) {  return true; }
 | 
						|
 | 
						|
public:
 | 
						|
  TRic_saldi_msk();  
 | 
						|
  virtual ~TRic_saldi_msk(){};
 | 
						|
};
 | 
						|
 | 
						|
TRic_saldi_msk::TRic_saldi_msk() :TAutomask ("ca2300a") { }  
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
// TAnal_mov_ric
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
 | 
						|
class TAnal_mov_ric : public TAnal_mov
 | 
						|
{
 | 
						|
  
 | 
						|
public:
 | 
						|
  virtual int readat(TBaseisamfile& f, TRecnotype nrec, word lockop);
 | 
						|
  virtual int read(TBaseisamfile& f, word op, word lockop);
 | 
						|
 | 
						|
public:
 | 
						|
  TAnal_mov_ric(long numreg = 0) : TAnal_mov(numreg) {}
 | 
						|
};
 | 
						|
 | 
						|
int TAnal_mov_ric::readat(TBaseisamfile& f, TRecnotype nrec, word lockop)
 | 
						|
{
 | 
						|
  const int err = TMultiple_rectype::readat(f, nrec, lockop);
 | 
						|
  
 | 
						|
	kill_saldi();
 | 
						|
	update_saldi(false);
 | 
						|
  return err;
 | 
						|
}
 | 
						|
 | 
						|
int TAnal_mov_ric::read(TBaseisamfile& f, word op, word lockop)
 | 
						|
{
 | 
						|
  const int err = TMultiple_rectype::read(f, op, lockop);
 | 
						|
	
 | 
						|
	kill_saldi();
 | 
						|
	update_saldi(false);
 | 
						|
  return err;
 | 
						|
}
 | 
						|
 | 
						|
//--------------------------------------------------------------------
 | 
						|
//  APPLICAZIONE
 | 
						|
//--------------------------------------------------------------------
 | 
						|
 | 
						|
class TRic_saldi_app : public TSkeleton_application
 | 
						|
{
 | 
						|
  TRic_saldi_msk * _mask;
 | 
						|
 | 
						|
  virtual const char * extra_modules() const {return "cm";} //deve funzionare anche per le commesse
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual bool create();
 | 
						|
  virtual bool destroy();
 | 
						|
  virtual void main_loop();
 | 
						|
  static bool elabora_movimento(const TRelation& rel, void* pJolly) {	return true; }
 | 
						|
  static bool remove_saldo(const TRelation& rel, void* pJolly);
 | 
						|
 | 
						|
public:
 | 
						|
  TRic_saldi_app() {}
 | 
						|
  virtual ~TRic_saldi_app() {}
 | 
						|
};
 | 
						|
 | 
						|
bool TRic_saldi_app::create()
 | 
						|
{
 | 
						|
  _mask = new TRic_saldi_msk;  
 | 
						|
  return TSkeleton_application::create();
 | 
						|
}
 | 
						|
 | 
						|
bool TRic_saldi_app::destroy()
 | 
						|
{
 | 
						|
  delete _mask;
 | 
						|
  return TSkeleton_application::destroy();
 | 
						|
}
 | 
						|
 | 
						|
bool TRic_saldi_app::remove_saldo(const TRelation& rel, void* pJolly)
 | 
						|
{	
 | 
						|
	((TRelation &)rel).remove();
 | 
						|
	return true;
 | 
						|
}
 | 
						|
 | 
						|
void TRic_saldi_app::main_loop()
 | 
						|
{
 | 
						|
  while (_mask->run() == K_ENTER)
 | 
						|
  { 
 | 
						|
		const int anno = _mask->get_int(F_ANNO);
 | 
						|
	  TRelation rel_saldi(LF_SALDANA);
 | 
						|
		TRectype rec_saldi(rel_saldi.curr());
 | 
						|
 | 
						|
		rec_saldi.put(SALDANA_ANNO, anno);
 | 
						|
    TCursor cur_saldi(&rel_saldi, "", 1, &rec_saldi, &rec_saldi);
 | 
						|
    const long items_saldi = cur_saldi.items();
 | 
						|
 | 
						|
		if (items_saldi > 0)
 | 
						|
      cur_saldi.scan(remove_saldo, this, "Azzeramento saldi...");
 | 
						|
 | 
						|
    TRelation rel_movana(LF_MOVANA);
 | 
						|
		TString filter; filter.format("ANNOES==%04d", anno) ;
 | 
						|
 | 
						|
    TCursor cur_movana(&rel_movana, filter, 1);
 | 
						|
    const long items = cur_movana.items();
 | 
						|
    //usa la scan dei TCursor,quindi niente progind e for,x' gia' nel metodo
 | 
						|
    if (items > 0)
 | 
						|
    {
 | 
						|
			rel_movana.lfile().set_curr(new TAnal_mov_ric); //il record principale della rel e' un TMov_anal!!
 | 
						|
      cur_movana.scan(elabora_movimento, this, "Ricostruzione saldi...");
 | 
						|
    }
 | 
						|
  } 
 | 
						|
}
 | 
						|
 | 
						|
int ca2300(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TRic_saldi_app app;
 | 
						|
  app.run(argc, argv, "Ricostruzione saldi di analitica");
 | 
						|
  return 0;
 | 
						|
}
 |