diff --git a/mg/mg3300.cpp b/mg/mg3300.cpp index 1bf9c9598..d6824a4ed 100755 --- a/mg/mg3300.cpp +++ b/mg/mg3300.cpp @@ -11,7 +11,7 @@ #define VALUE_NOT_SET "~~" -TCausale_magazzino& get_cau(const char* codcaus) +inline TCausale_magazzino& get_cau(const char* codcaus) { return cached_causale_magazzino(codcaus); } class TForm_schedemag : public TForm_stampemg @@ -555,7 +555,7 @@ void TForm_schedemag::set_date_limite(const int anno, const TDate& d, const TDat TEsercizi_contabili ec; _annoes = anno; - _anno_prec.format("%4d",ec.pred(anno)); + _anno_prec.format("%04d",ec.pred(anno)); _magazzino_chiuso = (ec.pred(anno) == 0) || !(ec.esercizio(atoi(_anno_prec)).chiusura_mag().empty()); _data_inizio = d; @@ -705,12 +705,12 @@ void TStampa_schede_mag::setprint_perarticoli() char subordine =m.get(F_SUBORDINE)[0]; _cur = _form->cursor(); // filtering ANNOES - filter << '(' << LF_MOVMAG << "->ANNOES==" << m.get(F_ANNOES)<< ")&&" ; + filter << "(STR(" << LF_MOVMAG << "->ANNOES==" << m.get(F_ANNOES)<< "))&&" ; // filtering from/to MAGS - if (m.get(F_DAMAG)[0]) - filter << "(" << LF_RMOVMAG << "->CODMAG[1,3]>=" <<'"' << m.get(F_DAMAG)<< "\")&&" ; - if (m.get(F_AMAG)[0]) - filter << "(" << LF_RMOVMAG << "->CODMAG[1,3]<=" <<'"' << m.get(F_AMAG)<< "\")&&" ; + if (m.get(F_DAMAG).full()) + filter << "(" << LF_RMOVMAG << "->CODMAG[1,3]>=" <<'"' << m.get(F_DAMAG) << "\")&&" ; + if (m.get(F_AMAG).full()) + filter << "(" << LF_RMOVMAG << "->CODMAG[1,3]<=" <<'"' << m.get(F_AMAG) << "\")&&" ; if (m.get(F_DADEP).full()) filter << "(" << LF_RMOVMAG << "->CODMAG[4,]>=" <<'"' << m.get(F_DADEP)<< "\")&&" ; @@ -808,6 +808,11 @@ void TStampa_schede_mag::setprint_perarticoli() rmovmag->setregion(darecr,arecr,tilde); if (tiposcheda() != s_giac) rmovmag->cursor().set_filterfunction(cau_filter); + +#ifdef DBG + rmovmag->first(); +#endif + _cur->relation()->replace(rmovmag,1, _form->rmov_joinexp() ); TLocalisamfile *mag=new TLocalisamfile(LF_MAG);