campo-sirio/ri/ri0200.cpp
alex db19dfd129 Patch level : 10,0 nopatch
Files correlati     : ci0.exe ci2.exe
Ricompilazione Demo : [ ]
Commento            :


Riclassificazioni cnti  da non compilare ora


git-svn-id: svn://10.65.10.50/branches/R_10_00@20780 c028cbd2-c16b-5b4b-a496-9718f37d4682
2010-08-11 00:46:50 +00:00

212 lines
4.5 KiB
C++
Executable File

#include <automask.h>
#include <execp.h>
#include <relapp.h>
#include <pconti.h>
#include <recarray.h>
#include <riclpdc.h>
#include "ri0200a.h"
////////////////////////////////////////////////////////////////////////
//MASCHERA
////////////////////////////////////////////////////////////////////////
class TTS_ricl_msk : public TAutomask
{
void update_browse(const short id);
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TTS_ricl_msk() : TAutomask("ri0200a") {}
};
void TTS_ricl_msk::update_browse(const short id)
{
TBrowse * b = efield(id).browse();
if (b != NULL)
{
TCursor * c = b->cursor();
if ( c != NULL)
{
TRelation * r = c->relation();
if (r != NULL)
{
TToken_string relexpr;
TString s(RICLPDC_TIPORIC);
s << "==\"RI" << get(F_RICL) << "\"";
relexpr.add(s);
s = RICLPDC_GRUPPO;
s << "==" << PCN_GRUPPO;
relexpr.add(s);
s = RICLPDC_CONTO;
s << "==" << PCN_CONTO;
relexpr.add(s);
s = RICLPDC_SOTTOCONTO;
s << "==" << PCN_SOTTOCONTO;
relexpr.add(s);
r->replace(new TLocalisamfile(LF_RICLPDC), r->log2ind(LF_RICLPDC), relexpr);
}
}
}
}
bool TTS_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_RICL:
if (e == fe_modify)
{
update_browse(F_GRUPPO);
update_browse(F_CONTO);
update_browse(F_SOTTOCONTO);
update_browse(F_DESCRIZ);
}
break;
default:
break;
}
return true;
}
class TTSRiclass_application : public TRelation_application
// @author:(INTERNAL) Vari
// @access:(INTERNAL) Private Member
{
// @cmember:(INTERNAL) Maschera corrente dell'applicazione
TMask* _msk;
// @cmember:(INTERNAL) Relazione corrente dell'applicazione
TRelation* _rel;
bool _use_pcn;
// @access Protected Member
protected:
virtual TMask* get_mask(int mode = MODE_QUERY) { CHECK(_msk, "Null mask"); return _msk; }
// @cmember Indica se la futura <mf Tab_application::get_mask> ritornera' una maschera diversa
// dalla corrente.
virtual bool changing_mask(int mode) { return false; }
// @cmember Ritorna la relazione da modificare
virtual TRelation* get_relation() const { CHECK(_rel, "Null relation"); return _rel; }
// @cmember Inizializza la maschera per il modo ricerca
virtual void init_query_mode(TMask& m);
// @cmember Inizializza la maschera per il modo ricerca ed inserimento (chiama <mf TRelation_application::init_query_mode>)
virtual void init_query_insert_mode(TMask& m) ;
// @cmember Inizializza la maschera per il modo inserimento
virtual void init_insert_mode(TMask& m);
// @cmember Inizializza la maschera per il modo modifica
virtual void init_modify_mode(TMask& m);
// @cmember Inizializzazione dei dati dell'utente
virtual bool user_create() ;
// @cmember Distruzione dei dati dell'utente
virtual bool user_destroy() ;
// @cmember Chiama il programma di stampa
virtual void print();
// @access Public Member
public:
// @cmember Costruttore
TTSRiclass_application() : _msk(NULL), _rel(NULL) { }
// @cmember Distruttore
virtual ~TTSRiclass_application() {}
};
void TTSRiclass_application::print()
{
TFilename rep("riricl.rep");
TString cmd;
rep.custom_path();
cmd << "ba8 -4 "<< rep;
TExternal_app stampa(cmd);
stampa.run();
}
void TTSRiclass_application::init_query_mode(TMask& m)
{
TRelation_application::init_query_mode(m);
m.show(-1);
m.enable(-1);
m.hide(-2);
m.disable(-2);
m.disable(-10);
}
void TTSRiclass_application::init_query_insert_mode(TMask& m)
{
TRelation_application::init_query_insert_mode(m);
m.hide(-1);
m.disable(-1);
m.show(-2);
m.enable(-2);
m.enable(-10);
}
void TTSRiclass_application::init_modify_mode(TMask& m)
{
TRelation_application::init_modify_mode(m);
m.show(-1);
m.disable(-1);
m.hide(-2);
m.disable(-10);
}
void TTSRiclass_application::init_insert_mode(TMask& m)
{
TRelation_application::init_insert_mode(m);
m.show(-1);
m.disable(-1);
m.hide(-2);
m.disable(-2);
m.disable(-10);
}
bool TTSRiclass_application::user_create()
{
_rel = new TRelation(LF_RICLPDC);
_msk = new TTS_ricl_msk;
TConfig config(CONFIG_DITTA);
TFilename rep("riricl.rep");
if (rep.custom_path())
enable_menu_item(M_FILE_PRINT);
TString title;
_msk->get_caption(title);
set_title(title);
return true;
}
bool TTSRiclass_application::user_destroy()
{
if (_msk)
delete _msk;
if (_rel)
delete _rel;
return true;
}
int ri0200(int argc, char* argv[])
{
TTSRiclass_application a;
a.run(argc, argv, TR("Riclassificazione piano dei conti"));
return 0;
}