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;
 | 
						|
} |