diff --git a/lv/lv0200.cpp b/lv/lv0200.cpp index 6a1da5cea..134dd593f 100755 --- a/lv/lv0200.cpp +++ b/lv/lv0200.cpp @@ -33,7 +33,7 @@ void TStampa_tabelle_lv::main_loop() rep.ext("rep"); } - TReport_lv r; + TLV_report r; bool ok = r.load(rep); // Controlla l'effettiva esistenza del report while (ok) { diff --git a/lv/lv0400d.h b/lv/lv0400d.h index ca754df66..8d0dfbbf1 100755 --- a/lv/lv0400d.h +++ b/lv/lv0400d.h @@ -9,4 +9,5 @@ #define F_PREZZO_DA 207 #define F_PREZZO_A 208 #define F_ZONA 209 -#define F_DESZONA 210 \ No newline at end of file +#define F_DESZONA 210 +#define F_ANNO 211 \ No newline at end of file diff --git a/lv/lv0400d.rep b/lv/lv0400d.rep index f68ec1176..3a2963902 100755 --- a/lv/lv0400d.rep +++ b/lv/lv0400d.rep @@ -41,13 +41,13 @@ - + - + - + @@ -56,27 +56,35 @@
- 169.CODCF + CODCF - 1000@.RAGSOC + 20.RAGSOC - 169.PREZZO + PREZZO - 169.MINCIC + MINCIC - 169.DOTIN + 166.DOTIN + + + 166.CONSMESE + + + 166.CONSANNO
USE 169 KEY 1 SELECT (CODART==#F_CODART_TO)(BETWEEN(17.CODZONA,#F_ZONA_FROM,#F_ZONA_FROM))(STR(BETWEEN(PREZZO,#F_PREZZO_FROM,#F_PREZZO_TO))) -JOIN 20 TO 169 ALIAS 1000 INTO TIPOCF=="C" CODCF==CODCF -JOIN 17 TO 169 ALIAS 2000 INTO TIPOCF=="C" CODCF==CODCF +JOIN 20 TO 169 INTO TIPOCF=="C" CODCF==CODCF +JOIN 17 TO 169 INTO TIPOCF=="C" CODCF==CODCF +JOIN 168 INTO CODCF==CODCF CODCONT==CODCONT +JOIN 166 INTO ANNOES==#ANNOES TIPOCF=="C" CODCF==CODCF INDSPED=="" CODART==CODART FROM CODCF=#F_CODCF_FROM TO CODCF=#F_CODCF_TO \ No newline at end of file diff --git a/lv/lv0400d.uml b/lv/lv0400d.uml index 4a6bb92f3..888fd8644 100755 --- a/lv/lv0400d.uml +++ b/lv/lv0400d.uml @@ -147,6 +147,12 @@ BEGIN OUTPUT F_DESZONA S0 END +NUMBER F_ANNO 4 +BEGIN + PROMPT 2 19 "Anno " + FIELD #ANNOES + FLAGS "ADH" +END ENDPAGE ENDMASK diff --git a/lv/lvlib.cpp b/lv/lvlib.cpp index d8672fc46..b24061eea 100755 --- a/lv/lvlib.cpp +++ b/lv/lvlib.cpp @@ -320,6 +320,17 @@ TLaundry_contract::TLaundry_contract(const long codcf, const long indsped, const // TRecmag_lavanderie /////////////////////////////////////////////////////////// +int TRecmag_lavanderie::read(TBaseisamfile& f, word op, word lockop) +{ + _update_time = 0L; + return TVariable_rectype::read(f, op, lockop); +} +int TRecmag_lavanderie::readat(TBaseisamfile& f, TRecnotype nrec, word lockop) +{ + _update_time = 0L; + return TVariable_rectype::readat(f, nrec, lockop); +} + void TRecmag_lavanderie::update() { if (_update_time > 0L) @@ -354,7 +365,8 @@ void TRecmag_lavanderie::update() TISAM_recordset recmag(query); - for (bool ok=recmag.move_first(); ok; ok=recmag.move_next()) + _consmese = ZERO; + for (bool ok=recmag.move_first(); ok; ok=recmag.move_next()) { const TDate datareg = recmag.get(MOVMAG_DATAREG).as_date(); TString queryrmag="USE RMOVMAG\n"; @@ -1509,7 +1521,7 @@ TGiac_per_cli::TGiac_per_cli() _year = 0; _indsped = 0; } -bool TReport_lv::get_usr_val(const TString& name, TVariant& var) const +bool TLV_report::get_usr_val(const TString& name, TVariant& var) const { if (name == "#NEXTCONS") { @@ -1530,3 +1542,28 @@ bool TReport_lv::get_usr_val(const TString& name, TVariant& var) const return TReport::get_usr_val(name, var); } +TCursor* TLV_recordset::cursor() const +{ + bool to_create = !valid_cursor(); + TCursor * c = TISAM_recordset::cursor(); + + if (to_create && c != NULL) + { + TLocalisamfile & clifogiac = relation()->lfile(LF_CLIFOGIAC); + + clifogiac.set_curr(new TRecmag_lavanderie); + } + return c; +} + +bool TLV_report::set_recordset(const TString& sql) +{ + if (sql.starts_with("US", true)) + { + TLV_recordset* rex = new TLV_recordset(sql); + + TReport::set_recordset(rex); + return rex != NULL; + } + return TReport::set_recordset(sql); +} diff --git a/lv/lvlib.h b/lv/lvlib.h index 9ae44a416..38dda16f8 100755 --- a/lv/lvlib.h +++ b/lv/lvlib.h @@ -66,6 +66,9 @@ protected: void update(); public: + virtual int read(TBaseisamfile& f, word op = _isequal, word lockop = _nolock); + virtual int readat(TBaseisamfile& f, TRecnotype nrec, word lockop = _nolock); + virtual int name2index(const char* fieldname) const; virtual TFieldtypes type(const char* fieldname) const; virtual int length(const char* fieldname) const; @@ -359,9 +362,19 @@ public: TGiac_per_cli(); //costruttore }; -class TReport_lv : public TReport +class TLV_recordset : public TISAM_recordset +{ +public: + virtual TCursor* cursor() const; + + TLV_recordset(const char* use) : TISAM_recordset(use) {} + virtual ~TLV_recordset() {} +}; + +class TLV_report : public TReport { protected: + virtual bool set_recordset(const TString& sql); virtual bool get_usr_val(const TString& name, TVariant& var) const; };