#include #include #include #include #include #include #include #include #include "mg0200.h" class TStampa_tabmag : public TApplication { TMask * _mask; TForm * _form; void set_print(TString & tabname); protected: virtual bool create(); virtual bool destroy(); }; void TStampa_tabmag::set_print(TString & tabname) { 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[2,20]>=" << _mask->get(F_INIZIO2); if (filter.not_empty()) filter << "&&"; if (*_mask->get(F_FINE2)) filter << "500@->CODTAB[2,20]<=" << _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); } bool TStampa_tabmag::create() { TString16 maskname("bast"); TString16 formname("tab_"); TString16 tabname(argv(2)); tabname.upper(); maskname << tabname; formname << tabname; _mask = new TMask(maskname); while ((_mask->run() == K_ENTER)) { _form = new TForm(formname); set_print(tabname); _form->print(); delete _form; } // while return FALSE; } bool TStampa_tabmag::destroy() { delete _mask; return TRUE; } 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; }