campo-sirio/mg/mg4100.cpp
alex f5e27b6add Patch level :
Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Riportata la versione 98.01.03pl015


git-svn-id: svn://10.65.10.50/trunk@6577 c028cbd2-c16b-5b4b-a496-9718f37d4682
1998-04-30 14:59:47 +00:00

127 lines
3.5 KiB
C++
Executable File

#include <applicat.h>
#include "mglib.h"
#include "mg4100.h"
class TStampa_listamov : public TSkeleton_application
{
TArray _files;
TStampemg_mask * _mask;
TForm * _form;
int _codicees;
bool _raggmag;
TString _daart,_aart,_damag,_amag;
TDate _dadata,_adata;
protected:
virtual bool create();
virtual bool destroy();
virtual void main_loop();
};
bool TStampa_listamov::create()
{
_mask = new TStampemg_mask("mg4100");
_files.add(new TLocalisamfile(LF_MOVMAG));
_files.add(new TLocalisamfile(LF_RMOVMAG));
_files.add(new TLocalisamfile(LF_ANAMAG));
_files.add(new TLocalisamfile(LF_UMART));
_files.add(new TLocalisamfile(LF_TAB));
return TSkeleton_application::create();
}
bool TStampa_listamov::destroy()
{
delete _mask;
return TSkeleton_application::destroy();
}
bool TStampa_listamov::filtro_causali(const TRelation* r)
{
delete _mask;
TSkeleton_application::destroy();
return TRUE;
}
void TStampa_listamov::main_loop()
{
TRectype darec(LF_RMOVMAG),arec(LF_RMOVMAG);
while (_mask->run() == K_ENTER)
{
if (_mask->magazz_ini().gestmag(TRUE))
{
_form = new TForm("mg4100", "");
TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor();
TString sortexp;
TString filter;
filter << '(' << LF_MOVMAG << "->ANNOES==\""<< _mask->get(F_ANNOES) << "\")";
if (_mask->get(F_DAARTICOLO).not_empty())
filter << "&&(CODART>=\"" << _mask->get(F_DAARTICOLO) << "\")";
if (_mask->get(F_AARTICOLO).not_empty())
filter << "&&(CODART<=\"" << _mask->get(F_AARTICOLO) << "~~~~~~~~~~~~~~~~~~~~\")";
if (_mask->get(F_CAU1).not_empty())
{
filtrocausali.cut(0);
filtrocausali.add(_mask->get(F_CAU1));
if (_mask->get(F_CAU2).not_empty())
{
filtrocausali.add(_mask->get(F_CAU2));
if (_mask->get(F_CAU3).not_empty())
{
filtrocausali.add(_mask->get(F_CAU3));
if (_mask->get(F_CAU4).not_empty())
{
filtrocausali.add(_mask->get(F_CAU4));
if (_mask->get(F_CAU5).not_empty())
{
filtrocausali.add(_mask->get(F_CAU5));
if (_mask->get(F_CAU6).not_empty())
filtrocausali.add(_mask->get(F_CAU6));
}
}
}
}
cur.set_filterfunction(filtro_causali);
}
darec.zero(' ');
arec.zero(' ');
if (_mask->get(F_ORDINE)=="N")
{
sortexp="NUMREG|CODART|NRIG";
// trova il record iniziale E finale
darec.put("NUMREG",_mask->get(F_DANUM));
arec.put("NUMREG",_mask->get(F_ANUM));
_form->find_field('B',odd_page,"HEADER_DATA").hide();
} else {
sortexp.cut(0) << LF_MOVMAG << "->DATAREG|NUMREG|CODART|NRIG";
// trova il record iniziale E finale
if (_mask->get(F_DADATA).not_empty())
filter << "&&(" << LF_MOVMAG <<"->DATACOMP>=" << '"' << _mask->get(F_DADATA)<< "\")";
if (_mask->get(F_ADATA).not_empty())
filter << "&&(" << LF_MOVMAG <<"->DATACOMP<=" << '"' << _mask->get(F_ADATA) << "\")";
_form->find_field('B',odd_page,"HEADER_DATA").show();
}
cur.change_order(sortexp);
cur.setfilter(filter,TRUE);
cur.setregion(darec,arec);
_form->print();
delete _form;
}
} // while true
}
int mg4100(int argc, char* argv[])
{
TStampa_listamov a;// derivata da Application e con uso di form
a.run(argc,argv,"Stampa lista movimenti");
return 0;
}