#include #include #include #include #include "cglib05.h" #include "cg0800a.h" /////////////////////////////////////////////////////////// // TRiepilogoIVA_mask /////////////////////////////////////////////////////////// class TRiepilogoIVA_mask : public TAutomask { protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); public: TRiepilogoIVA_mask() : TAutomask("cg0800a") { } }; bool TRiepilogoIVA_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) { TRiepilogoIVA_mask & m = (TRiepilogoIVA_mask &) o.mask(); switch (o.dlg()) { case F_DAMESE: if (e == fe_modify || e == fe_close) { if (atoi(o.get()) > m.get_int(F_AMESE)) m.set(F_AMESE, o.get()); } break; case F_AMESE: if (e == fe_modify || e == fe_close) { if (atoi(o.get()) < m.get_int(F_DAMESE)) o.set(m.get(F_DAMESE)); } break; default: break; } return true; } /////////////////////////////////////////////////////////// // TRiepilogoIVA_app /////////////////////////////////////////////////////////// class TRiepilogoIVA_app : public TSkeleton_application { protected: virtual void main_loop(); }; void TRiepilogoIVA_app::main_loop() { TRiepilogoIVA_mask m; while (m.run() != K_QUIT) { TRiepilogoIVA_report rep; TFilename repname = m.get(F_REPORT); TRiepilogoIVA_recordset * recset = new TRiepilogoIVA_recordset; if (repname.blank()) repname = "cg0800a"; rep.load(repname); if (recset != NULL) { int anno = m.get_int(F_ANNO); int damese = m.get_int(F_DAMESE); int amese = m.get_int(F_AMESE); recset->freeze(); recset->set_da_mese_var(damese); recset->set_a_mese_var(amese); if (damese == 13) { damese = 1; amese = 12; recset->set_annual(true); } recset->set_anno(anno); recset->set_da_mese(damese); recset->set_a_mese(amese); if (damese == 13) { damese = 1; amese = 12; recset->set_annual(true); } recset->set_da_mese(damese); recset->set_a_mese(amese); const TDate da(1, damese, anno); TDate a(1, amese, anno); if (m.get_long(F_DAMESE) == 13) a.addyear(); a.set_end_month(); recset->set_from(da); recset->set_to(a); recset->unfreeze(); rep.set_recordset(recset); rep.print_or_preview(); } } } int cg0800(int argc, char* argv[]) { TRiepilogoIVA_app app; app.run(argc, argv, TR("Stampa progressivi IVA avanzata")); return 0; }