Files correlati :in0.exe Ricompilazione Demo : [ ] Commento : Creati tracciati record e relativi programmi di gestione INTRA git-svn-id: svn://10.65.10.50/trunk@7839 c028cbd2-c16b-5b4b-a496-9718f37d4682
129 lines
2.8 KiB
C++
Executable File
129 lines
2.8 KiB
C++
Executable File
#include <recarray.h>
|
|
#include <relapp.h>
|
|
|
|
#include "in0.h"
|
|
#include "in0600a.h"
|
|
#include "inlib01.h"
|
|
|
|
class TRiepiloghi_mask : public TIntra_mask
|
|
{
|
|
protected:
|
|
virtual short type_field() const;
|
|
virtual short period_field() const;
|
|
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
TRiepiloghi_mask();
|
|
virtual ~TRiepiloghi_mask() { }
|
|
};
|
|
|
|
short TRiepiloghi_mask::type_field() const
|
|
{ return F_TIPO; }
|
|
|
|
short TRiepiloghi_mask::period_field() const
|
|
{ return F_PERIODO_M; }
|
|
|
|
bool TRiepiloghi_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
switch (o.dlg())
|
|
{
|
|
case F_NATURA_TRANS:
|
|
if (e == fe_modify || e == fe_init)
|
|
o.check();
|
|
break;
|
|
case F_RIEPILOGHI:
|
|
if (e == fe_button)
|
|
genera_riepiloghi();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return TIntra_mask::on_field_event(o, e, jolly);
|
|
}
|
|
|
|
TRiepiloghi_mask::TRiepiloghi_mask()
|
|
: TIntra_mask("in0600a")
|
|
{
|
|
first_focus(F_NUM_RIG);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// Applicazione principale
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TRiepiloghi_intra : public TRelation_application
|
|
{
|
|
TRelation* _rel;
|
|
TRiepiloghi_mask* _msk;
|
|
|
|
protected:
|
|
virtual bool user_create();
|
|
virtual TRelation* get_relation() const { return _rel; }
|
|
virtual TMask* get_mask(int) { return _msk; }
|
|
virtual bool changing_mask(int mode) { return FALSE; }
|
|
virtual bool user_destroy();
|
|
virtual bool get_next_key(TToken_string& k);
|
|
virtual void init_query_mode(TMask& m);
|
|
public:
|
|
};
|
|
|
|
bool TRiepiloghi_intra::user_create()
|
|
{
|
|
open_files(LF_TABCOM, LF_TAB, LF_CLIFO,
|
|
LF_RIEPRETT, 0);
|
|
_rel = new TRelation(LF_RIEPRETT);
|
|
_msk = new TRiepiloghi_mask;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
bool TRiepiloghi_intra::user_destroy()
|
|
{
|
|
delete _msk;
|
|
delete _rel;
|
|
return TRUE;
|
|
}
|
|
|
|
bool TRiepiloghi_intra::get_next_key(TToken_string& k)
|
|
{
|
|
if (_msk->get(F_ANNO).empty() || _msk->get(F_PARTITA_IVA).empty())
|
|
return FALSE;
|
|
|
|
_msk->autosave(*_rel);
|
|
TRectype filter(_rel->curr());
|
|
filter.zero("NUMRIG");
|
|
|
|
TCursor cur(_rel, "", 1, &filter, &filter);
|
|
const long r = cur.items();
|
|
long num_rig = 1;
|
|
if (r > 0)
|
|
{
|
|
cur = r-1;
|
|
num_rig = cur.curr().get_long("NUMRIG")+1;
|
|
}
|
|
|
|
k.cut(0); k.add(F_NUM_RIG); k.add(num_rig);
|
|
return TRUE;
|
|
}
|
|
|
|
void TRiepiloghi_intra::init_query_mode(TMask& m)
|
|
{
|
|
TEdit_field& numrig = m.efield(F_NUM_RIG);
|
|
TCursor& cur = *numrig.browse()->cursor();
|
|
cur.last_item();
|
|
const TRectype& curr = cur.curr();
|
|
m.set(F_ANNO, curr.get("ANNO"));
|
|
m.set(F_TIPO, curr.get("TIPO"), TRUE);
|
|
m.set(F_PERIODO_M, curr.get("PERIODO"));
|
|
m.set(F_PERIODO_T, curr.get("PERIODO"));
|
|
}
|
|
|
|
int is0600(int argc, char* argv[])
|
|
{
|
|
TRiepiloghi_intra a;
|
|
a.run(argc, argv, "Riepiloghi INTRA");
|
|
return 0;
|
|
}
|