Files correlati : Ricompilazione Demo : [ ] Commento : mancava questo! git-svn-id: svn://10.65.10.50/branches/R_10_00@21382 c028cbd2-c16b-5b4b-a496-9718f37d4682
162 lines
3.9 KiB
C++
Executable File
162 lines
3.9 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <config.h>
|
|
#include <defmask.h>
|
|
#include <dongle.h>
|
|
#include <prefix.h>
|
|
#include <utility.h>
|
|
|
|
#include "ca0900a.h"
|
|
|
|
//////////////////////////////////////////////
|
|
// Maschera
|
|
//////////////////////////////////////////////
|
|
class TGestione_permessi_CA_mask : public TAutomask
|
|
{
|
|
int _pos_prog, _pos_codcms, _pos_cdc, _pos_fase;
|
|
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
void mask2ini();
|
|
void ini2mask(const TString& username);
|
|
const TFilename build_path();
|
|
|
|
public:
|
|
TGestione_permessi_CA_mask();
|
|
~TGestione_permessi_CA_mask();
|
|
};
|
|
|
|
const TFilename TGestione_permessi_CA_mask::build_path()
|
|
{
|
|
//il file deve essere nascostamente nascosto in Dati\config
|
|
TFilename fileconf;
|
|
fileconf = firm2dir(-1); // Directory dati
|
|
fileconf.add("config"); // + Directory config
|
|
if (!fileconf.exist()) // Creala se necessario (in generale caso impossibilissimo!)
|
|
make_dir(fileconf);
|
|
fileconf.add("ca0900conf.ini"); //il file si chiama così per mascherarsi tra i tanti
|
|
|
|
return fileconf;
|
|
}
|
|
|
|
void TGestione_permessi_CA_mask::ini2mask(const TString& username)
|
|
{
|
|
//carica i parametri dal file ini
|
|
TFilename fileconf = build_path();
|
|
TConfig config(fileconf, username);
|
|
|
|
//filtri principali
|
|
set(F_CODCMS, config.get("Cms"));
|
|
set(F_CDC, config.get("Cdc"));
|
|
set(F_FASE, config.get("Fas"));
|
|
//filtri secondari per programma
|
|
TSheet_field& sf_righe = sfield(F_RIGHE);
|
|
for (int i = 0; config.exist("Prog", NULL, i); i++)
|
|
{
|
|
sf_righe.row(-1) = config.get("Prog", NULL, i);
|
|
}
|
|
sf_righe.force_update();
|
|
}
|
|
|
|
//salva i dati nel file ini
|
|
void TGestione_permessi_CA_mask::mask2ini()
|
|
{
|
|
const TString& username = get(F_USERNAME);
|
|
|
|
//il file deve essere nascostamente nascosto in Dati\config
|
|
TFilename fileconf = build_path();
|
|
TConfig config(fileconf, username);
|
|
config.remove_all();
|
|
|
|
//filtri principali
|
|
config.set("Cms", get(F_CODCMS));
|
|
config.set("Cdc", get(F_CDC));
|
|
config.set("Fas", get(F_FASE));
|
|
//filtri secondari per programma
|
|
TSheet_field& sf_righe = sfield(F_RIGHE);
|
|
FOR_EACH_SHEET_ROW(sf_righe, r, riga)
|
|
{
|
|
config.set("Prog", *riga, NULL, true, r);
|
|
}
|
|
}
|
|
|
|
bool TGestione_permessi_CA_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
switch (o.dlg())
|
|
{
|
|
case F_USERNAME:
|
|
if (e == fe_modify)
|
|
{
|
|
//carica tutte le righe del .ini al caricamento dell'utente
|
|
ini2mask(o.get());
|
|
disable(F_USERNAME);
|
|
enable(DLG_SAVEREC);
|
|
enable(DLG_CANCEL);
|
|
}
|
|
break;
|
|
case DLG_SAVEREC:
|
|
if (e == fe_button && check_fields())
|
|
{
|
|
mask2ini();
|
|
return false;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
TGestione_permessi_CA_mask::TGestione_permessi_CA_mask() : TAutomask ("ca0900a")
|
|
{
|
|
//assegna una volta per tutte le pos delle colonne di sheet
|
|
TSheet_field& sf_righe = sfield(F_RIGHE);
|
|
_pos_prog = sf_righe.cid2index(S_PROGRAMMA);
|
|
_pos_codcms = sf_righe.cid2index(S_CODCMS);
|
|
_pos_cdc = sf_righe.cid2index(S_CDC);
|
|
_pos_fase = sf_righe.cid2index(S_FASE);
|
|
}
|
|
|
|
TGestione_permessi_CA_mask::~TGestione_permessi_CA_mask()
|
|
{
|
|
}
|
|
|
|
//////////////////////////////////////////////
|
|
// Applicazione
|
|
//////////////////////////////////////////////
|
|
class TGestione_permessi_CA : public TSkeleton_application
|
|
{
|
|
protected:
|
|
public:
|
|
virtual void main_loop();
|
|
virtual bool create();
|
|
};
|
|
|
|
void TGestione_permessi_CA::main_loop()
|
|
{
|
|
TGestione_permessi_CA_mask mask;
|
|
while (mask.run() == K_ENTER)
|
|
{
|
|
}
|
|
}
|
|
|
|
bool TGestione_permessi_CA::create()
|
|
{
|
|
const TString& utente = user();
|
|
|
|
if (utente.compare(::dongle().administrator()) != 0)
|
|
{
|
|
TString msg;
|
|
msg << "Utente " << utente << " non autorizzato all'uso di questo programma!";
|
|
return error_box(msg);
|
|
}
|
|
|
|
return TSkeleton_application::create();
|
|
}
|
|
|
|
int ca0900 (int argc, char* argv[])
|
|
{
|
|
TGestione_permessi_CA app;
|
|
app.run(argc, argv, TR("Gestione permessi CA"));
|
|
return 0;
|
|
} |