Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@17464 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			139 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <confapp.h>
 | 
						|
#include <defmask.h>
 | 
						|
#include <reprint.h>
 | 
						|
 | 
						|
#include "vd1.h"
 | 
						|
#include "vd1700.h"
 | 
						|
 | 
						|
 | 
						|
////////////////
 | 
						|
//	MASCHERA
 | 
						|
////////////////
 | 
						|
class TPrint_payments_datail_mask : public TAutomask
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
 | 
						|
public:
 | 
						|
  TPrint_payments_datail_mask();
 | 
						|
  virtual ~TPrint_payments_datail_mask();
 | 
						|
};
 | 
						|
 | 
						|
TPrint_payments_datail_mask::TPrint_payments_datail_mask()
 | 
						|
            : TAutomask("vd1700")	//NON si puo' chiamare vd1700a perche' in tal caso la...
 | 
						|
																	//..maschera scatta 2 volte (scatta anche quella omonima del report)
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
TPrint_payments_datail_mask::~TPrint_payments_datail_mask() {}             
 | 
						|
 | 
						|
bool TPrint_payments_datail_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{
 | 
						|
	const int id = o.dlg();
 | 
						|
	switch (id)
 | 
						|
	{
 | 
						|
		case F_DADATA:
 | 
						|
			if (e == fe_modify)
 | 
						|
			{
 | 
						|
				const TDate dadata(o.get());
 | 
						|
				set(F_ANNO, dadata.year());
 | 
						|
			}
 | 
						|
			break;
 | 
						|
		case F_ADATA:
 | 
						|
			if (e == fe_close)
 | 
						|
			{
 | 
						|
				const TDate adata(o.get());
 | 
						|
				const TDate dadata = get(F_DADATA);
 | 
						|
				if (adata.year() != dadata.year() || adata < dadata)
 | 
						|
					return error_box(TR("La data finale deve essere maggiore od uguale a quella finale ed appartenere allo stesso anno!"));				
 | 
						|
			}
 | 
						|
			break;
 | 
						|
		default:
 | 
						|
			break;
 | 
						|
	}
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
////////////////////////////////////////////////////////
 | 
						|
//	REPORT
 | 
						|
////////////////////////////////////////////////////////
 | 
						|
class TPrint_payments_datail_rep : public TReport
 | 
						|
{
 | 
						|
	TString_array _tipincasso;
 | 
						|
 | 
						|
protected:
 | 
						|
	virtual bool get_usr_val(const TString& name, TVariant& var) const;
 | 
						|
	virtual bool use_mask() {return false;}
 | 
						|
 | 
						|
public:
 | 
						|
	TPrint_payments_datail_rep::TPrint_payments_datail_rep();
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
TPrint_payments_datail_rep::TPrint_payments_datail_rep()
 | 
						|
{
 | 
						|
	TConfig conf(CONFIG_DITTA, "vd");
 | 
						|
	for (int i = 1;; i++)
 | 
						|
	{
 | 
						|
		const TString& lab = conf.get("LABPAG", NULL, i);
 | 
						|
		if (lab.empty())
 | 
						|
			break;
 | 
						|
		_tipincasso.add(lab, i);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool TPrint_payments_datail_rep::get_usr_val(const TString& name, TVariant& var) const
 | 
						|
{
 | 
						|
	if (name.starts_with("#LABINC0"))
 | 
						|
	{
 | 
						|
		const int i = name[8] - '0';	//indicatore del tipo di incasso
 | 
						|
		//cerca il corrispondente label di incasso nell'array con le labels	
 | 
						|
		const TString* label = (const TString*)_tipincasso.objptr(i);
 | 
						|
		if (label != NULL)			
 | 
						|
			var = *label;
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
	return TReport::get_usr_val(name, var);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////
 | 
						|
//	APPLICAZIONE
 | 
						|
///////////////////////////////
 | 
						|
 | 
						|
class TPrint_payments_datail : public TSkeleton_application  
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
};
 | 
						|
 | 
						|
void TPrint_payments_datail::main_loop()
 | 
						|
{
 | 
						|
	TPrint_payments_datail_mask mask;
 | 
						|
  while (mask.run() == K_ENTER)
 | 
						|
  {
 | 
						|
	  TReport_book book;
 | 
						|
		TString path = mask.get(F_REPORT);
 | 
						|
		if (path.empty())
 | 
						|
			path = "vd1700a";
 | 
						|
		TPrint_payments_datail_rep rep;
 | 
						|
		rep.load(path);
 | 
						|
 | 
						|
		rep.mask2report(mask);
 | 
						|
		book.add(rep);
 | 
						|
		book.print_or_preview();
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int vd1700(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TPrint_payments_datail a;
 | 
						|
  a.run(argc, argv, "Riepilogo dettagli pagamenti");
 | 
						|
  return 0;
 | 
						|
}
 |