#include #include #include #include #include #include "at7.h" // nomi dei campi #include "soggetti.h" #define ALIAS_LCPD 100 #define ALIAS_LCPR 200 #define ALIAS_COMD 300 #define ALIAS_COMR 400 class TCermes : public TPrintapp { TMask* _msk; TRelation* _rel; int _cur; TString16 _cermes, _vuoto; protected: virtual bool user_create(); virtual bool user_destroy(); virtual bool set_print(int m); virtual void set_page(int file, int cnt); virtual bool preprocess_page(int file, int counter); public: TCermes() {} }; HIDDEN inline TCermes& app() { return (TCermes&) main_app(); } bool TCermes::preprocess_page(int file, int counter) { bool rew = FALSE; TString16 cap; TString16 loc; TString16 com; TRectype& recsog = current_cursor()->curr(); TString16 codcom = recsog.get(SOG_COMNASC); if (codcom == _cermes) { recsog.put(SOG_COMNASC,_vuoto); rew = TRUE; } if (rew) current_cursor()->file().rewrite(); return rew; } void TCermes::set_page(int file, int cnt) { set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"########")); set_row(1,"@10g@S", FLD(LF_SOGGETTI,SOG_COGNOME)); set_row(1,"@36g@S", FLD(LF_SOGGETTI,SOG_NOME)); } bool TCermes::set_print(int) { KEY tasto; tasto = _msk->run(); if (tasto == K_ENTER) { reset_files(); add_file(LF_SOGGETTI); reset_print(); return TRUE; } else return FALSE; } bool TCermes::user_create() { _msk = new TMask("at7400a"); _rel = new TRelation(LF_SOGGETTI); _rel->add("LCP", "CODTAB==DOM_CODLOC",1,0,ALIAS_LCPD); _rel->add(LF_COMUNI, "COM==DOM_CODCOM",1,0,ALIAS_COMD); _rel->add("LCP", "CODTAB==RES_CODLOC",1,0,ALIAS_LCPR); _rel->add(LF_COMUNI, "COM==RES_CODCOM",1,0,ALIAS_COMR); _cur = add_cursor(new TCursor(_rel, "", 1)); _cermes = "A022"; _vuoto = " "; return TRUE; } bool TCermes::user_destroy() { delete _rel; delete _msk; return TRUE; } int at7400(int argc, char* argv[]) { TCermes a; a.run(argc, argv, "Correzione nati a CERMES"); return 0; }