diff --git a/ca/ca3100.cpp b/ca/ca3100.cpp index 1e0290fa3..ca7660024 100755 --- a/ca/ca3100.cpp +++ b/ca/ca3100.cpp @@ -138,7 +138,7 @@ TPrint_movimenti_ca_mask::TPrint_movimenti_ca_mask() class TPrint_movimenti_ca_recordset : public TISAM_recordset { - int _anno; + int _anno, _tipoord; TDate _dadata, _adata; char _tipomov; long _danumreg, _anumreg; @@ -164,11 +164,26 @@ bool TPrint_movimenti_ca_recordset::valid_record(const TRelation& rel) const //prima controlla la testata... const TRectype& mov = rel.curr(LF_MOVANA); - const char* datefld = _anno > 0 ? MOVANA_DATACOMP : MOVANA_DATAREG; - const TDate data = mov.get(datefld); - if (data < _dadata || (_adata.ok() && data > _adata)) - return false; - + switch (_tipoord) + { + case 1: //controllo sul numreg + { + const long numreg = mov.get_long(MOVANA_NUMREG); + if (numreg < _danumreg || ( _anumreg >= _danumreg && numreg > _anumreg )) + return false; + } + break; + case 2: //controllo sulle date + { + const char* datefld = _anno > 0 ? MOVANA_DATACOMP : MOVANA_DATAREG; + const TDate data = mov.get(datefld); + if (data < _dadata || ( _adata.ok() && data > _adata )) + return false; + } + break; + default: + break; + } const TString& codcaus = mov.get(MOVANA_CODCAUS); if (codcaus < _dacaus || (_acaus.not_empty() && codcaus > _acaus)) return false; @@ -232,9 +247,22 @@ void TPrint_movimenti_ca_recordset::set_filter(const TPrint_movimenti_ca_mask& m _codfas = rel.curr().get(RMOVANA_CODFASE); } + _tipoord = msk.get_int(F_TIPOSTAMPA); + + //stabilisce il tipo di data di ordinamento del recordset + _anno = msk.get_int(F_ANNO); + + if (_anno > 0) + set_var("#DATAORD", MOVANA_DATACOMP, true); + else + set_var("#DATAORD", MOVANA_DATAREG, true); + _dadata = msk.get_date(F_DATAINI); _adata = msk.get_date(F_DATAFIN); + _danumreg = msk.get_long(F_NUMEROINI); + _anumreg = msk.get_long(F_NUMEROFIN); + _dacaus = msk.get(F_CAUSALEINI); _acaus = msk.get(F_CAUSALEFIN); @@ -248,8 +276,9 @@ void TPrint_movimenti_ca_recordset::set_filter(const TPrint_movimenti_ca_mask& m //////////////////////////////////////////////////////// class TPrint_movimenti_ca_rep : public TAnal_report { - int _anno; + int _anno, _tipoord; TDate _dadata, _adata; + long _danumreg, _anumreg; protected: virtual bool set_recordset(const TString& sql); @@ -276,6 +305,16 @@ bool TPrint_movimenti_ca_rep::get_usr_val(const TString& name, TVariant& var) co var.set(_adata); return true; } + if (name == "#DANUMREG") + { + var.set(_danumreg); + return true; + } + if (name == "#ANUMREG") + { + var.set(_anumreg); + return true; + } return TAnal_report::get_usr_val(name, var); } @@ -288,8 +327,11 @@ bool TPrint_movimenti_ca_rep::set_recordset(const TString& sql) void TPrint_movimenti_ca_rep::set_filter(const TPrint_movimenti_ca_mask& msk, int cms_row) { _anno = msk.get_int(F_ANNO); + _tipoord = msk.get_int(F_TIPOSTAMPA); _dadata = msk.get_date(F_DATAINI); _adata = msk.get_date(F_DATAFIN); + _danumreg = msk.get_long(F_NUMEROINI); + _anumreg = msk.get_long(F_NUMEROFIN); TPrint_movimenti_ca_recordset* rs = (TPrint_movimenti_ca_recordset*)recordset(); rs->set_filter(msk, cms_row); } diff --git a/ca/ca3100.uml b/ca/ca3100.uml index dedc7de97..a7ba442ef 100755 --- a/ca/ca3100.uml +++ b/ca/ca3100.uml @@ -94,7 +94,7 @@ END NUMBER F_NUMEROINI 7 BEGIN PROMPT 16 6 "Stampa mov. dal numero " - USE LF_MOV KEY 1 + USE LF_MOVANA KEY 1 INPUT NUMREG F_NUMEROINI DISPLAY "Numero@7" NUMREG DISPLAY "Data@10" DATAREG @@ -111,7 +111,7 @@ BEGIN COPY USE F_NUMEROINI INPUT NUMREG F_NUMEROFIN COPY DISPLAY F_NUMEROINI - FLAGS "R" + OUTPUT F_NUMEROFIN NUMREG NUM_EXPR ((#F_NUMEROFIN==0)||(#F_NUMEROFIN>=#F_NUMEROINI)) WARNING "Limite superiore errato" GROUP 2 @@ -120,7 +120,7 @@ END STRING F_CAUSALEINI 3 BEGIN PROMPT 1 8 "Stampa dalla causale " - USE LF_CAUSALI KEY 1 + USE LF_CAUSALI SELECT MOVIND!='' INPUT CODCAUS F_CAUSALEINI DISPLAY "Codice causale" CODCAUS DISPLAY "Descrizione@50" DESCR diff --git a/ca/ca3100a.rep b/ca/ca3100a.rep index f3d1126f3..4a1e9a23c 100755 --- a/ca/ca3100a.rep +++ b/ca/ca3100a.rep @@ -1,4 +1,4 @@ - +<?xml version="1.0" encoding="UTF-8" ?> <report libraries="ve1300" name="ca3100a" lpi="8" class="ca3100b"> <description>Movimenti CA per numero registrazione</description> <font face="Courier New" size="8" /> @@ -20,6 +20,16 @@ THEN <field x="157" type="Numero" align="right" width="3" pattern="1"> <source>#REPORT.PAGE</source> </field> + <field x="10" y="1.25" type="Testo" width="12" pattern="1" text="Dal numero" /> + <field x="22" y="1.25" type="Numero" width="12" pattern="1"> + <font face="Courier New" bold="1" size="8" /> + <source>#DANUMREG</source> + </field> + <field x="40" y="1.25" type="Testo" width="12" pattern="1" text="Al numero" /> + <field x="52" y="1.25" type="Numero" width="12" pattern="1"> + <font face="Courier New" bold="1" size="8" /> + <source>#ANUMREG</source> + </field> <field border="2" x="1" y="2.5" type="Linea" width="161" height="0" pattern="1" /> <field x="1.5" y="3" type="Testo" align="center" width="7" pattern="1" text="N.Reg." /> <field x="33.5" y="3" type="Testo" align="center" width="10" pattern="1" text="Data Doc." /> diff --git a/ca/ca3100b.rep b/ca/ca3100b.rep index b47cb80bc..8e1ceb0ba 100755 --- a/ca/ca3100b.rep +++ b/ca/ca3100b.rep @@ -1,4 +1,4 @@ - +<?xml version="1.0" encoding="UTF-8" ?> <report libraries="ve1300" name="ca3100b" lpi="8" class="ca3100b"> <description>Movimenti CA per data</description> <font face="Courier New" size="8" /> @@ -194,7 +194,8 @@ MESSAGE ADD,F2.132</postscript> </section> <section type="Foot" level="3" /> <sql>USE RMOVANA -JOIN MOVANA INTO NUMREG==NUMREG</sql> +JOIN MOVANA INTO NUMREG==NUMREG +BY MOVANA-E;#DATAORD</sql> <prescript description="PRESCRIPT">: SCAMBIA_CAMPI ( F1 F2 -- ) VARIABLE _X1 \ coordinate del campo F1 VARIABLE _Y1