From 3680024c6d4fd030da2938d35a1d8a2001d13e6f Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 19 Feb 2009 11:16:03 +0000 Subject: [PATCH] Patch level :10.0 244 Files correlati : Ricompilazione Demo : [ ] Commento :sistemata stampa dei movimenti di analitica; aggiunto ordinamento per numreg (che esisteva solo in via teorica) e sistemato ordinamento per data (che andava statisticamente). Riporto da 5.0 git-svn-id: svn://10.65.10.50/trunk@18299 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ca/ca3100.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++------- ca/ca3100.uml | 6 +++--- ca/ca3100a.rep | 12 ++++++++++- ca/ca3100b.rep | 5 +++-- 4 files changed, 66 insertions(+), 13 deletions(-) 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 @@ - + Movimenti CA per numero registrazione @@ -20,6 +20,16 @@ THEN #REPORT.PAGE + + + + #DANUMREG + + + + + #ANUMREG + 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 @@ - + Movimenti CA per data @@ -194,7 +194,8 @@ MESSAGE ADD,F2.132
USE RMOVANA -JOIN MOVANA INTO NUMREG==NUMREG +JOIN MOVANA INTO NUMREG==NUMREG +BY MOVANA-E;#DATAORD : SCAMBIA_CAMPI ( F1 F2 -- ) VARIABLE _X1 \ coordinate del campo F1 VARIABLE _Y1