Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 01.05 patch 648 git-svn-id: svn://10.65.10.50/trunk@8633 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <form.h>
 | 
						|
#include <mask.h>   
 | 
						|
 | 
						|
#include "mglib.h"
 | 
						|
#include "mg0200.h"
 | 
						|
 | 
						|
class TStampa_tabmag : public TSkeleton_application
 | 
						|
{
 | 
						|
  TCodice_livelli * _cod_liv;
 | 
						|
  TMask * _mask;
 | 
						|
  TForm * _form; 
 | 
						|
 | 
						|
private:
 | 
						|
  void set_print(const TString& tabname);
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
  
 | 
						|
  static bool hnd_livinizio(TMask_field &, KEY); // handler 
 | 
						|
  static bool hnd_livfine(TMask_field &, KEY); // handler 
 | 
						|
 | 
						|
public:
 | 
						|
  // @cmember Disabilita la verifica del modulo in chiave
 | 
						|
  virtual bool check_autorization() const { return FALSE; }
 | 
						|
  const TCodice_livelli& liv_cod() { return *_cod_liv; }
 | 
						|
};
 | 
						|
 | 
						|
bool TStampa_tabmag::hnd_livinizio(TMask_field &f, KEY k)
 | 
						|
{
 | 
						|
  if (f.empty())
 | 
						|
  {
 | 
						|
    f.set("1");
 | 
						|
  }
 | 
						|
  return TRUE;  
 | 
						|
}
 | 
						|
bool TStampa_tabmag::hnd_livfine(TMask_field &f, KEY k)
 | 
						|
{
 | 
						|
  const TCodice_livelli &codliv = ((TStampa_tabmag &)main_app()).liv_cod();
 | 
						|
  if (f.empty())
 | 
						|
  {
 | 
						|
    f.set(codliv.last_level());
 | 
						|
  }
 | 
						|
 | 
						|
  if (f.focusdirty())
 | 
						|
  {
 | 
						|
    TMask & m=f.mask();
 | 
						|
    const bool enab=(m.get(F_INIZIO1)==f.get() && m.get_bool(F_DETTAGLIO));
 | 
						|
      
 | 
						|
    m.enable(F_INIZIO2,enab );
 | 
						|
    m.enable(F_FINE2,enab );
 | 
						|
  }
 | 
						|
  return TRUE;  
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_tabmag::set_print(const TString& tabname)
 | 
						|
{
 | 
						|
  const short begin=_cod_liv->code_start(_mask->get_int(F_INIZIO1)),
 | 
						|
      end= begin+_cod_liv->code_length(_mask->get_int(F_INIZIO1))-1;
 | 
						|
  
 | 
						|
  TString filter;
 | 
						|
  TRectype from_rec(LF_TAB),to_rec(LF_TAB);
 | 
						|
  from_rec.put("COD",tabname);
 | 
						|
  from_rec.put("CODTAB",_mask->get(F_INIZIO1));
 | 
						|
  to_rec.put("COD",tabname);
 | 
						|
  to_rec.put("CODTAB",_mask->get(F_FINE1));
 | 
						|
  if (tabname=="FCA" || tabname=="FCG") {
 | 
						|
    if (*_mask->get(F_INIZIO2))
 | 
						|
      filter << "500@->CODTAB[" << begin << "," << end << "]>="  << '"' <<_mask->get(F_INIZIO2)  << '"' ;
 | 
						|
    if (*_mask->get(F_FINE2))
 | 
						|
    {
 | 
						|
      if (filter.not_empty()) filter << "&&";
 | 
						|
      filter << "500@->CODTAB[" << begin << "," << end << "]<="  << '"' <<  _mask->get(F_FINE2) << '"' ;
 | 
						|
    }
 | 
						|
    _form->find_field('B',odd_page,"GRUPPI").show(_mask->get_bool(F_DETTAGLIO));
 | 
						|
  }
 | 
						|
  _form->cursor()->setregion(from_rec,to_rec);
 | 
						|
  if (filter.not_empty()) 
 | 
						|
    _form->cursor()->setfilter(filter);
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_tabmag::main_loop()
 | 
						|
{
 | 
						|
  TString16 maskname("bast");
 | 
						|
  TString16 formname("tab_");
 | 
						|
  TString16 tabname(argv(2));
 | 
						|
  tabname.upper();
 | 
						|
  
 | 
						|
  maskname << tabname;
 | 
						|
  formname << tabname;
 | 
						|
 | 
						|
  _mask = new TMask(maskname);
 | 
						|
  _mask->set_handler(F_INIZIO1,hnd_livinizio);
 | 
						|
  _mask->set_handler(F_FINE1,hnd_livfine);
 | 
						|
  if (tabname=="FCA")
 | 
						|
    _cod_liv = new TCodart_livelli();
 | 
						|
  else
 | 
						|
    _cod_liv = new TCodgiac_livelli();
 | 
						|
  while ((_mask->run() == K_ENTER)) {
 | 
						|
    _form = new TForm(formname);
 | 
						|
    set_print(tabname);
 | 
						|
    _form->print();
 | 
						|
    delete _form;
 | 
						|
  } // while 
 | 
						|
 | 
						|
  delete _mask;
 | 
						|
  delete _cod_liv;
 | 
						|
}
 | 
						|
 | 
						|
int mg0200(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TStampa_tabmag a;// derivata da Application e con uso di form
 | 
						|
  a.run(argc,argv,"Stampa tabelle di magazzino");
 | 
						|
  return 0;
 | 
						|
}
 |