campo-sirio/in/in0500.cpp
guy 76a80dd0e5 This commit was generated by cvs2svn to compensate for changes in r7803,
which included commits to RCS files with non-trunk default branches.

git-svn-id: svn://10.65.10.50/trunk@7804 c028cbd2-c16b-5b4b-a496-9718f37d4682
1999-02-15 16:33:42 +00:00

104 lines
2.2 KiB
C++
Executable File

#include <automask.h>
#include <currency.h>
#include <relapp.h>
#include "in0.h"
#include "in0500a.h"
class TImmissione_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TImmissione_mask() : TAutomask("in0500a") { }
virtual ~TImmissione_mask() { }
};
bool TImmissione_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_VALUTA:
if (e == fe_modify)
{
TEdit_field& cambio = efield(F_CAMBIO);
if (cambio.empty())
{
TCursor* cur = efield(F_VALUTA).browse()->cursor();
cambio.set(cur->curr().get("S4"));
}
}
break;
case F_AMM_LIRE:
if (e == fe_modify)
{
TMask& m = o.mask();
if (m.get_real(F_AMM_VALUTA).is_zero())
{
TCurrency curr(real(o.get()), "_FIRM");
curr.change_value(get(F_VALUTA), get_real(F_CAMBIO));
m.set(F_AMM_VALUTA, curr.string(), TRUE);
}
}
break;
case F_AMM_VALUTA:
if (e == fe_modify)
{
TMask& m = o.mask();
if (m.get_real(F_AMM_LIRE).is_zero())
{
TCurrency curr(real(o.get()), get(F_VALUTA), get_real(F_CAMBIO));
curr.change_value("_FIRM");
m.set(F_AMM_LIRE, curr.string(), TRUE);
}
}
break;
default:
break;
}
return TRUE;
}
///////////////////////////////////////////////////////////
// Applicazione principale
///////////////////////////////////////////////////////////
class TImmissione_intra : public TRelation_application
{
TRelation* _rel;
TImmissione_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();
public:
};
bool TImmissione_intra::user_create()
{
open_files(LF_TABCOM, LF_TAB, LF_CLIFO, LF_MOV,
LF_INTRA, LF_RINTRA, 0);
_rel = new TRelation(LF_INTRA);
_msk = new TImmissione_mask;
return TRUE;
}
bool TImmissione_intra::user_destroy()
{
delete _msk;
delete _rel;
return TRUE;
}
int is0500(int argc, char* argv[])
{
TImmissione_intra a;
a.run(argc, argv, "Immissione movimenti");
return 0;
}