#include <applicat.h>
#include <automask.h>
#include <reprint.h>

#include "at9.h"
#include "at9500a.h"

class TMaskModInt : public TAutomask
{
protected:
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);

public:
  TMaskModInt() : TAutomask("at9500a") { }
  virtual ~TMaskModInt() { }
};

bool TMaskModInt::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
  switch (o.dlg())
  {
  case F_S_REPORT:
    if (e == fe_button)
    {                                      
			TFilename path = "at95*";
			if (select_custom_file(path,"rep"))
				o.set(path.name());
    }
    break;
  default:
    break;
  }
  return true;
}

class TTModInt : public TSkeleton_application  
{
	virtual bool check_autorization() const {return false;}
  virtual const char * extra_modules() const {return "at";}

protected:
  virtual void main_loop();

public:
};

void TTModInt::main_loop()
{
  TMaskModInt m;
  while (m.run() != K_QUIT)
  {
	  TReport_book book;
    TReport rep; 
		TFilename report_name(m.get(F_S_REPORT));
		report_name.ext("rep");
		report_name.custom_path();
    if (rep.load(report_name))
		{
	    TRecordset * r = rep.recordset();
      if (r != NULL)
			{
				TVariant var;
				var = m.get(F_S_CODICE);
				r->set_var("#F_CODICE", var);
				var = m.get(F_S_TESTO1);
				r->set_var("#F_TESTO1", var);
				var = m.get(F_S_TESTO2);
				r->set_var("#F_TESTO2", var);
				var = m.get(F_S_TESTO3);
				r->set_var("#F_TESTO3", var);
				var = m.get(F_S_TESTO4);
				r->set_var("#F_TESTO4", var);
				var = m.get(F_S_TESTO5);
				r->set_var("#F_TESTO5", var);
			}
			book.add(rep);
		  if (book.pages() > 0)
			  book.print_or_preview();
		}
  }
}

int at9500(int argc, char* argv[])
{
  TTModInt a;
  a.run(argc, argv, "Stampa moduli intestati");
  return 0;
}