Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 650 git-svn-id: svn://10.65.10.50/trunk@14148 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			239 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			239 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <defmask.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <reprint.h>
 | 
						|
 | 
						|
#include "ps0872.h"
 | 
						|
#include "ps0872200a.h"
 | 
						|
 | 
						|
class TReportPs08722 : public TReport
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool get_usr_val(const TString& name, TVariant& var) const;
 | 
						|
};
 | 
						|
 | 
						|
class TMaskPs08722 : public TAutomask
 | 
						|
{
 | 
						|
  TCursor_sheet  * _sht;
 | 
						|
  TCursor        * _cur;
 | 
						|
	TReport        _rep;
 | 
						|
	bool           _select_changed;
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
	void update_sheet();
 | 
						|
 | 
						|
public:
 | 
						|
	TCursor_sheet & sheet() const { return *_sht;}
 | 
						|
  TMaskPs08722();
 | 
						|
  virtual ~TMaskPs08722();
 | 
						|
};
 | 
						|
 | 
						|
TMaskPs08722::TMaskPs08722()
 | 
						|
             : TAutomask("ps0872200a"), _sht(NULL), _cur(NULL)
 | 
						|
{
 | 
						|
  // crea relazioni, cursori e cursor_sheets
 | 
						|
	update_sheet();
 | 
						|
	((TButton_field&) field(DLG_SELECT)).set_exit_key(0);
 | 
						|
	_select_changed = false;
 | 
						|
}
 | 
						|
 | 
						|
TMaskPs08722::~TMaskPs08722()
 | 
						|
{  
 | 
						|
	if (_sht != NULL)
 | 
						|
		delete _sht;
 | 
						|
}             
 | 
						|
 | 
						|
bool TMaskPs08722::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{
 | 
						|
	const int id = o.dlg();
 | 
						|
	switch (id)
 | 
						|
	{
 | 
						|
		case F_NUM:
 | 
						|
		case F_DACLI:
 | 
						|
		case F_DAL:
 | 
						|
			if (e == fe_modify)
 | 
						|
				_select_changed = true;
 | 
						|
			break;
 | 
						|
		case F_ACLI:
 | 
						|
			if (e == fe_close)
 | 
						|
			{
 | 
						|
				const long dacli = o.mask().get_long(F_DACLI);
 | 
						|
				const long acli = atol(o.get());
 | 
						|
				
 | 
						|
				if (acli > 0  && acli < dacli)
 | 
						|
					return error_box("Inserire un codice cliente maggiore o uguale a quello iniziale");
 | 
						|
			}
 | 
						|
			else 
 | 
						|
				if (e == fe_modify)
 | 
						|
					_select_changed = true;
 | 
						|
			break;
 | 
						|
		case F_AL:
 | 
						|
			if (e == fe_close)
 | 
						|
			{
 | 
						|
				const TDate dal(o.mask().get_date(F_DAL));
 | 
						|
				const TDate al(o.get());
 | 
						|
				
 | 
						|
				if (al.ok() && al < dal)
 | 
						|
					return error_box("Inserire una data maggiore o uguale alla data iniziale");
 | 
						|
			}
 | 
						|
			else 
 | 
						|
				if (e == fe_modify)
 | 
						|
					_select_changed = true;
 | 
						|
			break;
 | 
						|
		case F_REPORT:
 | 
						|
			if (e == fe_modify)
 | 
						|
				enable(DLG_SELECT, _sht != NULL && o.get() == "StampaSchedProd");
 | 
						|
			break;
 | 
						|
		case DLG_SELECT:
 | 
						|
			if (e == fe_button)
 | 
						|
			{
 | 
						|
				if (_select_changed)
 | 
						|
					update_sheet();
 | 
						|
				_select_changed = false;
 | 
						|
				_sht->run();
 | 
						|
			}
 | 
						|
			break;
 | 
						|
		default:
 | 
						|
			break;
 | 
						|
	}
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
void TMaskPs08722::update_sheet()
 | 
						|
{
 | 
						|
	
 | 
						|
	if (_sht != NULL)
 | 
						|
	{
 | 
						|
		delete _sht;
 | 
						|
		_sht = NULL;
 | 
						|
	}
 | 
						|
	else
 | 
						|
	{
 | 
						|
		TFilename name("StampaSchedProd.rep");
 | 
						|
 | 
						|
		name.custom_path();
 | 
						|
		_rep.load(name);
 | 
						|
	}
 | 
						|
	
 | 
						|
	TISAM_recordset * r = (TISAM_recordset *) _rep.recordset();
 | 
						|
 | 
						|
	if (r != NULL)
 | 
						|
	{
 | 
						|
		TVariant var;
 | 
						|
 | 
						|
		var = get(F_NUM);
 | 
						|
		r->set_var("#NUM", var);
 | 
						|
		var = get(F_DACLI);
 | 
						|
		r->set_var("#DACLI", var);
 | 
						|
		var = get(F_ACLI);
 | 
						|
		r->set_var("#ACLI", var);
 | 
						|
		var = get_date(F_DAL);
 | 
						|
		if (!var.as_date().ok())
 | 
						|
			var = botime;
 | 
						|
		r->set_var("#DAL", var);
 | 
						|
		var = get_date(F_AL);
 | 
						|
		if (!var.as_date().ok())
 | 
						|
			var = eotime;
 | 
						|
		r->set_var("#AL", var);
 | 
						|
		var = "F";
 | 
						|
		r->set_var("#F", var);
 | 
						|
	}
 | 
						|
	_select_changed = false;
 | 
						|
	_sht = new TCursor_sheet(r->cursor(), " |33->DATADOC|NDOC|CODARTMAG|20->RAGSOC", "Selezione clienti per codice",
 | 
						|
		                                    "@1|Data@10|Numero|Articolo@20|Ragione Sociale@50",0,1);
 | 
						|
	_sht->check(-1);
 | 
						|
}
 | 
						|
 | 
						|
class TStampaProduzionePs0872 : public TSkeleton_application  
 | 
						|
{
 | 
						|
  TMaskPs08722 * _mask;
 | 
						|
	virtual bool check_autorization() const {return false;}
 | 
						|
  virtual const char * extra_modules() const {return "ve";}
 | 
						|
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
  virtual bool create();
 | 
						|
 | 
						|
public:
 | 
						|
  const TMaskPs08722 & mask() const {return *_mask;}
 | 
						|
  virtual ~TStampaProduzionePs0872();
 | 
						|
};
 | 
						|
 | 
						|
void TStampaProduzionePs0872::main_loop()
 | 
						|
{
 | 
						|
  while (_mask->run() == K_ENTER)
 | 
						|
  {
 | 
						|
	  TReport_book book;
 | 
						|
    TReportPs08722 rep; 
 | 
						|
		TFilename report_name(_mask->get(F_REPORT));
 | 
						|
 | 
						|
		report_name.ext("rep");
 | 
						|
		report_name.custom_path();
 | 
						|
    if (rep.load(report_name))
 | 
						|
		{
 | 
						|
	    TRecordset * r = rep.recordset();
 | 
						|
 | 
						|
      if (r != NULL)
 | 
						|
			{
 | 
						|
				TVariant var;
 | 
						|
 | 
						|
				var = _mask->get(F_NUM);
 | 
						|
				r->set_var("#NUM", var);
 | 
						|
				var = _mask->get(F_DACLI);
 | 
						|
				r->set_var("#DACLI", var);
 | 
						|
				var = _mask->get(F_ACLI);
 | 
						|
				r->set_var("#ACLI", var);
 | 
						|
				var = _mask->get_date(F_DAL);
 | 
						|
				if (!var.as_date().ok())
 | 
						|
					var = botime;
 | 
						|
				r->set_var("#DAL", var);
 | 
						|
				var = _mask->get_date(F_AL);
 | 
						|
				if (!var.as_date().ok())
 | 
						|
					var = eotime;
 | 
						|
				r->set_var("#AL", var);
 | 
						|
				var = "F";
 | 
						|
				r->set_var("#F", var);
 | 
						|
			}
 | 
						|
			book.add(rep);
 | 
						|
		  if (book.pages() > 0)
 | 
						|
			  book.print_or_preview();
 | 
						|
		}
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
bool TStampaProduzionePs0872::create()
 | 
						|
{
 | 
						|
	_mask = new TMaskPs08722;
 | 
						|
	return TSkeleton_application:: create();
 | 
						|
}
 | 
						|
 | 
						|
TStampaProduzionePs0872::~TStampaProduzionePs0872()
 | 
						|
{
 | 
						|
	delete _mask;
 | 
						|
}
 | 
						|
 | 
						|
TStampaProduzionePs0872 & app() { return (TStampaProduzionePs0872&) main_app();}
 | 
						|
 | 
						|
bool TReportPs08722::get_usr_val(const TString& name, TVariant& var) const
 | 
						|
{
 | 
						|
	if (name == "#TO_PRINT")
 | 
						|
	{
 | 
						|
		TISAM_recordset * r = (TISAM_recordset *) recordset();
 | 
						|
		const long pos = r->cursor()->pos();
 | 
						|
 | 
						|
		var = (long) (app().mask().sheet().checked(pos) ? 1 : 0);
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
	return TReport::get_usr_val(name, var);
 | 
						|
}
 | 
						|
 | 
						|
int ps0872200(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TStampaProduzionePs0872 a;
 | 
						|
  a.run(argc, argv, "Stampa Produzione RealPlast");
 | 
						|
  return 0;
 | 
						|
}
 |