From c2c1c356e936fcaa61b04a9351d87a2b0d9b6126 Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 17 Dec 2009 17:33:04 +0000 Subject: [PATCH] Patch level : 10.0 Files correlati : lv1 Ricompilazione Demo : [ ] Commento : Migliorata selezione e stampa buoni git-svn-id: svn://10.65.10.50/trunk@19809 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv1100.cpp | 114 ++++++++++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 49 deletions(-) diff --git a/lv/lv1100.cpp b/lv/lv1100.cpp index 6de50c711..fbd7560dc 100755 --- a/lv/lv1100.cpp +++ b/lv/lv1100.cpp @@ -3,6 +3,8 @@ #include #include #include + +#include #include "lv1100a.h" @@ -14,36 +16,28 @@ public: TStampaBuoni_mask(); }; -TStampaBuoni_mask::TStampaBuoni_mask():TAutomask("lv1100a") +TStampaBuoni_mask::TStampaBuoni_mask() : TAutomask("lv1100a") { + const TApplication& app = main_app(); TConfig configlv(CONFIG_DITTA, "lv"); - const char* title = NULL; - const char tipobuoni = main_app().argv(2)[0]; + const TString& title = app.title(); + set_caption(title); + const char tipobuoni = app.argc() > 2 ? toupper(app.argv(2)[0]) : 'C'; switch (tipobuoni) { + case 'C': + set(F_CODNUM, configlv.get("NUM_GEN")); + set(F_TIPODOC, configlv.get("TIPODOC_GEN")); + break; 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)")); - } + 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)")); - } + default : + 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; } } @@ -59,42 +53,67 @@ protected: void elabora(const TMask& mask, const char action) const; }; - -void TStampaBuoni_app::elabora(const TMask& mask, const char action) const +class TStampaBuoni_set : public TISAM_recordset { - const TDate data_from = mask.get_date(F_DATA_FROM); +protected: + virtual void set_custom_filter(TCursor& cursor) const; + +public: + TStampaBuoni_set(const TMask& mask); +}; + +void TStampaBuoni_set::set_custom_filter(TCursor& cursor) const +{ + if (cursor.items() > 0) + { + cursor = 0L; + const TString4 tipodoc = cursor.curr().get(DOC_TIPODOC); + } +} + +TStampaBuoni_set::TStampaBuoni_set(const TMask& mask) : TISAM_recordset("USE DOC") +{ + 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" + "JOIN %STD INTO CODTAB==STATO\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); + set(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) << "|"; + set_var("#DATA_FROM", data_from); + set_var("#DATA_TO", mask.get_date(F_DATA_TO)); + set_var("#CODCF_FROM", TVariant(mask.get(F_CODCF_FROM))); + set_var("#CODCF_TO", TVariant(mask.get(F_CODCF_TO))); + set_var("#CODITI_FROM", TVariant(mask.get(F_CODITI_FROM))); + set_var("#CODITI_TO", TVariant(mask.get(F_CODITI_TO))); +} + + +void TStampaBuoni_app::elabora(const TMask& mask, const char action) const +{ + TStampaBuoni_set buoni(mask); 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")); + TCursor_sheet sht(c, " |NDOC|DATADOC|4->S0[1,25]|CODCF|20->RAGSOC", TR("Selezione Documenti"), + HR("@1|Numero\nDoc.@7|Data\nDoc.@10|Stato@25|Cliente|Ragione Sociale@50")); if (sht.run() && sht.one_checked()) { - TFilename tmp; tmp.temp(); + const TDate data_from = mask.get_date(F_DATA_FROM); + TString80 chiavedoc = "D|"; + chiavedoc << data_from.year() << "|" << mask.get(F_CODNUM) << "|"; + + TFilename tmp; tmp.temp("", "ini"); ofstream outf(tmp); outf << "[Transaction]" << endl; outf << "Action=" << action << endl; - outf << "Mode=P" << endl; + outf << "Mode=D" << endl; outf << "[33]" << endl; long nx=0; @@ -108,7 +127,7 @@ void TStampaBuoni_app::elabora(const TMask& mask, const char action) const } outf.close(); - TFilename appname = "ve1.exe -2 -i"; + TFilename appname = "ve1 -2 -i"; appname << tmp; TExternal_app app(appname); app.run(); @@ -135,16 +154,13 @@ void TStampaBuoni_app::main_loop() int lv1100(int argc, char* argv[]) { const char* title = NULL; - switch (toupper(*argv[2])) + const char tipo = argc > 2 ? toupper(*argv[2]) : 'C'; + switch (tipo) { - case 'P': title = TR("Stampa buoni di prelievo"); - break; - case 'R': title = TR("Stampa buoni di ritiro"); - break; - case 'C': title = TR("Stampa buoni di consegna"); - break; - default: - break; + case 'C': title = TR("Stampa buoni di consegna"); break; + case 'P': title = TR("Stampa buoni di prelievo"); break; + case 'R': + default : title = TR("Stampa buoni di ritiro"); break; } TStampaBuoni_app app; app.run(argc, argv, title);