campo-sirio/lv/lv0400.cpp
rajitgill 8a7c148eb6 Patch level :
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@17070 c028cbd2-c16b-5b4b-a496-9718f37d4682
2008-08-21 15:41:07 +00:00

89 lines
1.8 KiB
C++
Executable File

#include <relapp.h>
#include <recset.h>
#include "lv0400.h"
class TContratti_app: public TRelation_application
{
TMask* _amsk;
TMask* _bmsk;
TRelation* _rel;
bool _unicont;
protected:
virtual bool changing_mask (int mode) { return true;}
virtual TMask* get_mask (int mode) {return mode==MODE_QUERY?_amsk:_bmsk; }
virtual TRelation* get_relation() const {return _rel;}
virtual bool user_create();
virtual bool user_destroy();
virtual void on_config_change();
virtual bool get_next_key(TToken_string& key);
};
bool TContratti_app:: user_create()
{
_rel=new TRelation (LF_LVCONDV);
_amsk= new TMask ("lv0400a");
_bmsk= new TMask ("lv0400b");
return true;
}
bool TContratti_app:: user_destroy()
{
delete _bmsk;
delete _amsk;
delete _rel;
return true;
}
void TContratti_app:: on_config_change()
{
TConfig ini(CONFIG_DITTA);
_unicont=ini.get_bool("UniCont");
}
bool TContratti_app:: get_next_key(TToken_string& key)
{
const long cliente=_amsk->get_long(F_CODCF);
if (cliente<=0) return false;
key.add(F_CODCF);
key.add(cliente);
key.add(F_CODCONT);
long codcont=0;
if (_unicont)
{
TISAM_recordset recset ("USE LVCONDV");
for (bool ok=recset.move_first(); ok; ok=recset.move_next())
{
const long codice=recset.get("CODCONT").as_int();
if (codice>codcont)
codcont=codice;
}
}
else
{
TString query;
query<<"USE LVCONDV \n"
<<"FROM CODCF=#CLIENTE\n"
<<"TO CODCF=#CLIENTE\n";
TISAM_recordset recset (query);
recset.set_var("#CLIENTE",cliente);
if (recset.move_last())
codcont=recset.get("CODCONT").as_int();
}
codcont++;
key.add(codcont);
return true;
}
int lv0400(int argc, char* argv[])
{
TContratti_app app;
app.run (argc,argv,TR("Gestione contratti"));
return 0;
}