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
		
			
				
	
	
		
			176 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			176 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <defmask.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <reprint.h>
 | 
						|
 | 
						|
#include "ps0920.h"
 | 
						|
#include "ps0920100a.h"
 | 
						|
 | 
						|
#include <rdoc.h>
 | 
						|
 | 
						|
class TMaskPs09201 : public TAutomask
 | 
						|
{
 | 
						|
  TCursor_sheet  * _sht;
 | 
						|
	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;}
 | 
						|
  TMaskPs09201();
 | 
						|
  virtual ~TMaskPs09201();
 | 
						|
};
 | 
						|
 | 
						|
TMaskPs09201::TMaskPs09201()
 | 
						|
            : TAutomask("ps0920100a"), _sht(NULL)
 | 
						|
{
 | 
						|
	((TButton_field&) field(DLG_SELECT)).set_exit_key(0);
 | 
						|
	_select_changed = true;
 | 
						|
}
 | 
						|
 | 
						|
TMaskPs09201::~TMaskPs09201()
 | 
						|
{  
 | 
						|
	if (_sht != NULL)
 | 
						|
		delete _sht;
 | 
						|
}             
 | 
						|
 | 
						|
bool TMaskPs09201::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{
 | 
						|
	const int id = o.dlg();
 | 
						|
	switch (id)
 | 
						|
	{
 | 
						|
		case F_NUM:
 | 
						|
		case F_ANNO:
 | 
						|
		case F_CODCLI:
 | 
						|
			_select_changed = true;
 | 
						|
			break;
 | 
						|
		case DLG_SELECT:
 | 
						|
			if (e == fe_button)
 | 
						|
			{
 | 
						|
				if (_select_changed)
 | 
						|
					update_sheet();
 | 
						|
				_select_changed = false;
 | 
						|
				_sht->run();
 | 
						|
			}
 | 
						|
			break;
 | 
						|
		default:
 | 
						|
			break;
 | 
						|
	}
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
void TMaskPs09201::update_sheet()
 | 
						|
{
 | 
						|
	
 | 
						|
	if (_sht != NULL)
 | 
						|
	{
 | 
						|
		delete _sht;
 | 
						|
		_sht = NULL;
 | 
						|
	}
 | 
						|
	
 | 
						|
	_select_changed = false;
 | 
						|
 | 
						|
	TRelation * r = new TRelation(LF_RIGHEDOC);
 | 
						|
	TRectype from(r->curr());
 | 
						|
	const long codcli = get_long(F_CODCLI);
 | 
						|
	TString codartfrom; codartfrom.format("%03ld", codcli);
 | 
						|
 | 
						|
	from.put(RDOC_CODNUM, get(F_NUM));
 | 
						|
	from.put(RDOC_ANNO, get(F_ANNO));
 | 
						|
	from.put(RDOC_PROVV, "D");
 | 
						|
	from.put(RDOC_CODART, codartfrom);
 | 
						|
 | 
						|
	TRectype to(from);
 | 
						|
	
 | 
						|
	TString codartto; codartto.format("%03ld", codcli + 1);
 | 
						|
	to.put(RDOC_CODART, codartto);
 | 
						|
	TCursor * c = new TSorted_cursor(r, "CODNUM|NDOC|NRIGA", "RIGAEVASA!=\"X\"", 2, &from, &to);
 | 
						|
  _sht = new TCursor_sheet(c, " |CODNUM|NDOC|NRIGA|DATACONS|CODART|DESCR", "Selezione articoli",
 | 
						|
		                                    "@1|Ordine@6|N.Doc.@7|N.Riga@6|Data\nConsegna@10|Articolo@20|Descr@50",0,1);
 | 
						|
	_sht->uncheck(-1);
 | 
						|
}
 | 
						|
 | 
						|
class TStampaProduzionePs0920 : public TSkeleton_application  
 | 
						|
{
 | 
						|
  TMaskPs09201 * _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 TMaskPs09201 & mask() const {return *_mask;}
 | 
						|
  virtual ~TStampaProduzionePs0920();
 | 
						|
};
 | 
						|
 | 
						|
void TStampaProduzionePs0920::main_loop()
 | 
						|
{
 | 
						|
  while (_mask->run() == K_ENTER)
 | 
						|
  {
 | 
						|
	  TReport_book book;
 | 
						|
		TCursor_sheet & s = _mask->sheet();
 | 
						|
		TCursor * cur = s.cursor();
 | 
						|
		const long items = cur->items();
 | 
						|
 | 
						|
		for (long pos= 0L; pos <items; pos++)
 | 
						|
		{
 | 
						|
			if (s.checked(pos))
 | 
						|
			{
 | 
						|
				*cur = pos;
 | 
						|
				TRectype & rec = cur->curr();
 | 
						|
				TReport rep; 
 | 
						|
				TFilename report_name("OrdineProd.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("#S_NUM", var);
 | 
						|
						var = rec.get(RDOC_ANNO);
 | 
						|
						r->set_var("#S_ANNO", var);
 | 
						|
						var = rec.get(RDOC_NDOC);
 | 
						|
						r->set_var("#S_NDOC", var);
 | 
						|
						var = rec.get(RDOC_NRIGA);
 | 
						|
						r->set_var("#S_NRIGA", var);
 | 
						|
					}
 | 
						|
				}
 | 
						|
				book.add(rep);
 | 
						|
			}
 | 
						|
		}
 | 
						|
	  if (book.pages() > 0)
 | 
						|
		  book.print_or_preview();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
bool TStampaProduzionePs0920::create()
 | 
						|
{
 | 
						|
	_mask = new TMaskPs09201;
 | 
						|
	return TSkeleton_application:: create();
 | 
						|
}
 | 
						|
 | 
						|
TStampaProduzionePs0920::~TStampaProduzionePs0920()
 | 
						|
{
 | 
						|
	delete _mask;
 | 
						|
}
 | 
						|
 | 
						|
TStampaProduzionePs0920 & app() { return (TStampaProduzionePs0920&) main_app();}
 | 
						|
 | 
						|
int ps0920100(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TStampaProduzionePs0920 a;
 | 
						|
  a.run(argc, argv, "Stampa ordini di produzione");
 | 
						|
  return 0;
 | 
						|
}
 |