#include #include #include #include #include #include "lv1100a.h" class TStampaBuoni_mask: public TAutomask { protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); public: TStampaBuoni_mask(); }; TStampaBuoni_mask::TStampaBuoni_mask():TAutomask("lv1100a") { TConfig configlv(CONFIG_DITTA, "lv"); const char* title = NULL; const char tipobuoni = main_app().argv(2)[0]; switch (tipobuoni) { case 'P': { set_caption(TR("Stampa buoni di prelievo")); set(F_CODNUM, configlv.get("NUM_PRE(0)")); set(F_TIPODOC, configlv.get("TIPODOC_PRE(0)")); } break; case 'R': { set_caption(TR("Stampa buoni di ritiro")); set(F_CODNUM, configlv.get("NUM_RIT(0)")); set(F_TIPODOC, configlv.get("TIPODOC_RIT(0)")); } break; case 'C': { set_caption(TR("Stampa buoni di consegna")); set(F_CODNUM, configlv.get("NUM_GEN")); set(F_TIPODOC, configlv.get("TIPODOC_GEN")); } break; default: break; } } bool TStampaBuoni_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) { return true; } class TStampaBuoni_app: public TSkeleton_application { protected: virtual void main_loop(); void elabora(const TMask& mask) const; }; void TStampaBuoni_app::elabora(const TMask& mask) const { const TDate data_from = mask.get_date(F_DATA_FROM); TString query = "USE DOC \n" "SELECT (BETWEEN(DATADOC,#DATA_FROM,#DATA_TO))" "&&(BETWEEN(CODCF,#CODCF_FROM,#CODCF_TO))" "&&(BETWEEN(G1:CODITI,#CODITI_FROM,#CODITI_TO))\n" "JOIN CLIFO INTO TIPOCF=='C' CODCF==CODCF\n" ; query << "FROM PROVV=\"D\" ANNO=" << data_from.year() << " CODNUM=\"" << mask.get(F_CODNUM) << "\"\n" << "TO PROVV=\"D\" ANNO=" << data_from.year() << " CODNUM=\"" << mask.get(F_CODNUM) << "\"\n"; TISAM_recordset buoni(query); //inserire parametri filtri buoni.set_var("#DATA_FROM", mask.get_date(F_DATA_FROM)); buoni.set_var("#DATA_TO", mask.get_date(F_DATA_TO)); buoni.set_var("#CODCF_FROM", TVariant(mask.get(F_CODCF_FROM))); buoni.set_var("#CODCF_TO", TVariant(mask.get(F_CODCF_TO))); buoni.set_var("#CODITI_FROM", TVariant(mask.get(F_CODITI_FROM))); buoni.set_var("#CODITI_TO", TVariant(mask.get(F_CODITI_TO))); TString80 chiavedoc = "D|"; chiavedoc << data_from.year() << "|" << mask.get(F_CODNUM) << "|"; TCursor* c = buoni.cursor(); TCursor_sheet sht(c, " |NDOC|DATADOC|CODCF|20->RAGSOC", TR("Selezione Documenti"), HR("@1|Numero\nDoc.@7|Data\nDoc.@10|Cliente|Ragione Sociale@50")); if (sht.run() && sht.one_checked()) { TFilename tmp; tmp.temp(); ofstream outf(tmp); const long items = sht.items(); for (long i = 0L; i