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;
};