diff --git a/lv/lv0.cpp b/lv/lv0.cpp index 13a407641..0674d83d2 100755 --- a/lv/lv0.cpp +++ b/lv/lv0.cpp @@ -7,6 +7,7 @@ int main(int argc, char** argv) const int r = (argc > 1) ? argv[1][1] - '0' : 0; switch (r) { + case 1: lv0200(argc, argv); break; // stampa tabelle lavanderie lv0200 case 2: lv0300(argc, argv); break; // parametri lavanderie lv0300 case 3: lv0400(argc, argv); break; // gestione contratti lv0400 case 4: lv0500(argc, argv); break; // passaggi planning per contratto lv0500 (e periodi di sospensione) diff --git a/lv/lv0.h b/lv/lv0.h index d90201086..ed78261eb 100755 --- a/lv/lv0.h +++ b/lv/lv0.h @@ -2,6 +2,7 @@ #define __LV0_H int lv0100(int argc, char* argv[]); +int lv0200(int argc, char* argv[]); int lv0300(int argc, char* argv[]); int lv0400(int argc, char* argv[]); int lv0500(int argc, char* argv[]); diff --git a/lv/lv0200.cpp b/lv/lv0200.cpp new file mode 100755 index 000000000..fa95ac572 --- /dev/null +++ b/lv/lv0200.cpp @@ -0,0 +1,67 @@ +#include +#include + +class TReport_lv : public TReport +{ +protected: + virtual bool get_usr_val(const TString& name, TVariant& var) const; +}; + +bool TReport_lv::get_usr_val(const TString& name, TVariant& var) const +{ + if (name == "#NEXTCONS") + { + TRecordset& recset = *recordset(); + const long clifo = recset.get("CODCF").as_int(); + const long contr = recset.get("CODCONT").as_int(); + const TDate dtcons = recset.get("DTCONS").as_date(); + if (clifo > 0 && contr > 0 && dtcons.ok()) + { + // Scrivere qui il calcolo della prossima data di consegna ... + // ... al momento non sono capace di farlo! + TDate next_dtcons = dtcons; + next_dtcons += 7; + var = next_dtcons; + return true; + } + } + return TReport::get_usr_val(name, var); +} + +class TStampa_tabelle_lv : public TSkeleton_application +{ +protected: + virtual void main_loop(); +}; + +void TStampa_tabelle_lv::main_loop() +{ + // Costruisce il nome del report in base alla riga di comando + TFilename rep; + if (argc() > 2) + { + rep = argv(2); + rep.strip("-&%$^"); + if (rep.len() == 3) + rep.insert("lvst"); + rep.ext("rep"); + } + + TReport_lv r; + bool ok = r.load(rep); // Controlla l'effettiva esistenza del report + while (ok) + { + TReport_book b; + ok = b.add(r); // Richiede parametri di stampa in base alla maschera omonima + if (ok) + b.print_or_preview(); // Stampa effettivamente + } +} + +int lv0200(int argc, char* argv[]) +{ + TStampa_tabelle_lv app; + app.run(argc, argv, TR("Stampa tabelle")); + return 0; +} +