Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 848 git-svn-id: svn://10.65.10.50/trunk@14993 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			111 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
//Programma per stampa report tabelle
 | 
						|
 | 
						|
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <reprint.h>
 | 
						|
#include <tabutil.h>
 | 
						|
#include "../ba/ba3200.h"
 | 
						|
#define F_REPORT  250
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
// TMask_print_table
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
 | 
						|
class TMask_print_table : public TAutomask
 | 
						|
{
 | 
						|
 | 
						|
protected:
 | 
						|
  bool on_field_event(TOperable_field& o, TField_event e, long jolly) {return true;}
 | 
						|
public:
 | 
						|
  TMask_print_table(const char * name);
 | 
						|
  virtual ~TMask_print_table() {}
 | 
						|
};
 | 
						|
 | 
						|
TMask_print_table::TMask_print_table(const char * name)
 | 
						|
								  :TAutomask(name)
 | 
						|
{
 | 
						|
	TEdit_field & f = add_string(F_REPORT, 0, TR("Report    "), 2, -3, 20, "B");
 | 
						|
  f.set_query_button(new TReport_select(&f, name));
 | 
						|
  f.enable_check();
 | 
						|
}
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
// TTable_report
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
 | 
						|
class TTable_report : public TReport
 | 
						|
{
 | 
						|
public:
 | 
						|
  virtual bool use_mask() { return false;}
 | 
						|
 | 
						|
  TTable_report() {}
 | 
						|
  virtual ~TTable_report() {}
 | 
						|
};
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
// TTable_dettaglio_reporter 
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
 | 
						|
class TTable_dettaglio_reporter : public TSkeleton_application
 | 
						|
{ 
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
 | 
						|
public:
 | 
						|
  bool get_rpt_name(TFilename& rptname) const;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
bool TTable_dettaglio_reporter::get_rpt_name(TFilename& rptname) const
 | 
						|
{
 | 
						|
  TTable tab(argv(2));  
 | 
						|
 | 
						|
  rptname = tab.get("COD");
 | 
						|
  rptname.insert("vdst", 0);
 | 
						|
  rptname.ext("rep");
 | 
						|
  rptname.lower();
 | 
						|
  return rptname.custom_path();
 | 
						|
}
 | 
						|
 | 
						|
void TTable_dettaglio_reporter::main_loop()
 | 
						|
{
 | 
						|
  TFilename rptname;
 | 
						|
 | 
						|
  if (get_rpt_name(rptname))
 | 
						|
  {
 | 
						|
 | 
						|
	  TFilename msk(rptname.name()); msk.ext(""); msk.lower();
 | 
						|
	  TMask_print_table m(msk);
 | 
						|
  
 | 
						|
    while (m.run() == K_ENTER)
 | 
						|
    {
 | 
						|
	    TTable_report rep;
 | 
						|
			TReport_book book;
 | 
						|
			TString name(m.get(F_REPORT));
 | 
						|
 | 
						|
			if (name.empty())
 | 
						|
				name = rptname;
 | 
						|
      rep.load(name);
 | 
						|
			rep.mask2report(m);
 | 
						|
      book.add(rep);
 | 
						|
      book.print_or_preview();
 | 
						|
    }
 | 
						|
  }
 | 
						|
  else
 | 
						|
    error_box(FR("Manca il file %s"), (const char *)rptname);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int vd0200(int argc, char* argv[])
 | 
						|
{     
 | 
						|
  if (argc > 2)
 | 
						|
  {
 | 
						|
    TString name;
 | 
						|
	  TTable_dettaglio_reporter app;
 | 
						|
 | 
						|
    name << TR("Stampa Tabelle ") << argv[2];
 | 
						|
		app.run(argc, argv, name);
 | 
						|
  }
 | 
						|
  return 0;
 | 
						|
} |