Files correlati : ca?.exe Ricompilazione Demo : [ ] Commento : Aggiunto supporto per la creazione di campi analitici dinamicamente sulle pagine successive alla prima git-svn-id: svn://10.65.10.50/trunk@12965 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			111 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <reprint.h>
 | 
						|
 | 
						|
#include "ca1.h"
 | 
						|
#include "ca1700a.h"
 | 
						|
#include "calib01.h"
 | 
						|
#include "calib02.h"
 | 
						|
 | 
						|
class TMask_print_fasi : public TAutomask
 | 
						|
{
 | 
						|
	int _nfields;
 | 
						|
protected:
 | 
						|
  bool on_field_event(TOperable_field& o, TField_event e, long jolly) {return true;}
 | 
						|
 | 
						|
public:
 | 
						|
	int nfields() { return _nfields; }
 | 
						|
  TMask_print_fasi();
 | 
						|
  virtual ~TMask_print_fasi() {}
 | 
						|
};
 | 
						|
 | 
						|
TMask_print_fasi::TMask_print_fasi()
 | 
						|
								:TAutomask("ca1700a")
 | 
						|
{
 | 
						|
	ca_create_fields(*this, 0, LF_FASI, 3, 2, F_DAFASE, F_DAFASE + 100);
 | 
						|
	_nfields = ca_create_fields(*this, 0, LF_FASI, 3, 9, F_AFASE, F_AFASE + 100);
 | 
						|
  TString80 workstring;
 | 
						|
 | 
						|
	for (int i = 0; i < _nfields; i++)
 | 
						|
	{
 | 
						|
		TEdit_field& dafase = efield(F_DAFASE + i);
 | 
						|
    dafase.set_group(1);
 | 
						|
    dafase.check_type(CHECK_NORMAL);
 | 
						|
    const TFieldref& dafr = *dafase.field();
 | 
						|
    workstring.format("DA%s[%d,%d]", (const char*)dafr.name(), dafr.from()+1, dafr.to());
 | 
						|
    dafase.set_field(workstring);
 | 
						|
 | 
						|
		TEdit_field& afase = efield(F_AFASE + i);
 | 
						|
    afase.set_group(2);
 | 
						|
    afase.check_type(CHECK_NORMAL);
 | 
						|
    const TFieldref& afr = *afase.field();
 | 
						|
    workstring.format("A%s[%d,%d]", (const char*)afr.name(), afr.from()+1, afr.to());
 | 
						|
    afase.set_field(workstring);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
class TPrint_fasi : public TSkeleton_application
 | 
						|
{
 | 
						|
	bool create();
 | 
						|
 | 
						|
public:
 | 
						|
  virtual void main_loop();
 | 
						|
};
 | 
						|
 | 
						|
bool TPrint_fasi::create()
 | 
						|
{
 | 
						|
  const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_FASI);
 | 
						|
  if (mci.levels() <= 0)
 | 
						|
    return error_box(TR("Le fasi non sono state configurate"));
 | 
						|
 | 
						|
  return TSkeleton_application::create();
 | 
						|
}
 | 
						|
 | 
						|
void TPrint_fasi::main_loop()
 | 
						|
{
 | 
						|
  TFilename path;
 | 
						|
  TMask_print_fasi m;
 | 
						|
  while (m.run() == K_ENTER)
 | 
						|
  {
 | 
						|
    TReport_book book;
 | 
						|
    TAnal_report rep;
 | 
						|
 | 
						|
		path = m.get(F_REPORT);
 | 
						|
		if (path.empty())
 | 
						|
			path = "ca1700a";
 | 
						|
 | 
						|
		rep.load(path);
 | 
						|
		rep.mask2report(m);
 | 
						|
	  const TMultilevel_code_info& main_info = ca_multilevel_code_info(LF_FASI);
 | 
						|
 | 
						|
		if (main_info.parent() == 0)
 | 
						|
		{
 | 
						|
		  TRecordset* rset = rep.recordset();
 | 
						|
 | 
						|
			if (rset != NULL)
 | 
						|
			{
 | 
						|
				TVariant var;
 | 
						|
 | 
						|
				var = "";
 | 
						|
				rset->set_var("#DACODCMSFAS", var);
 | 
						|
				TString fs;
 | 
						|
 | 
						|
				for (int i = 0 ; fs.empty() && i < m.nfields(); i++)
 | 
						|
					fs << m.field(F_AFASE + i).get();
 | 
						|
				if (fs.empty())
 | 
						|
					var = "zzzzzzzzzzzz";
 | 
						|
				rset->set_var("#ACODCMSFAS", var);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		book.add(rep);
 | 
						|
    book.print_or_preview();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
int ca1700(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TPrint_fasi a;
 | 
						|
  a.run(argc, argv, TR("Stampa fasi"));
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 |