// Programma generico di gestione tabelle modulo provvigioni agenti #include #include #include "prtbapr.h" class TTablePR_app : public Tab_application { protected: virtual bool user_destroy() ; virtual bool user_create() ; static bool gmc_handler(TMask_field& f, KEY k); public: TTablePR_app() {} virtual ~TTablePR_app() {} }; static inline TTablePR_app& app() { return (TTablePR_app&)main_app(); } bool TTablePR_app::gmc_handler(TMask_field& f, KEY k) { if (f.to_check(k)) { TString v1 = f.get(),v2; TMask& m = f.mask(); if (v1 == "E" || v1 == "R") { for (short id = F_SEQRIC1; id <= F_SEQRIC4; id++) { if (f.dlg() == id) continue; v2 = m.get(id); if (v1 == "E" && v2 == "R" || v1 == "R" && v2 == "E") return f.error_box("Non e' possibile usare contemporaneamente la " "tabella gruppo merceologico e la tabella sottogruppo " "merceologico"); } } } return TRUE; } bool TTablePR_app::user_create() { Tab_application::user_create(); const TString& name = get_tabname(); TMask& mask = *get_mask(); if (name == "APR") { mask.set_handler(F_SEQRIC1,gmc_handler); mask.set_handler(F_SEQRIC2,gmc_handler); mask.set_handler(F_SEQRIC3,gmc_handler); mask.set_handler(F_SEQRIC4,gmc_handler); } return TRUE; } bool TTablePR_app::user_destroy() { return Tab_application::user_destroy(); } int pr0100(int argc, char** argv) { TTablePR_app a; a.run(argc, argv, "Tabella"); return 0; }