Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
iniziata la gestione avanzata permessi di analitica


git-svn-id: svn://10.65.10.50/branches/R_10_00@21328 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2010-12-17 11:44:56 +00:00
parent adea64190f
commit bb96d72185
6 changed files with 339 additions and 14 deletions

View File

@ -9,11 +9,12 @@ int main(int argc, char** argv)
{
// case 1: ca0200(argc,argv); break; // stampa tabelle
case 2: ca0300(argc,argv); break; // parametri configurazione Contabilita' Analitica
case 3: ca0400(argc,argv); break; //immissione piano dei conti
case 4: ca0500(argc,argv); break; //gestione centri di costo
case 5: ca0600(argc,argv); break; //gestione commesse
case 6: ca0700(argc,argv); break; //gestione fasi
case 3: ca0400(argc,argv); break; // immissione piano dei conti
case 4: ca0500(argc,argv); break; // gestione centri di costo
case 5: ca0600(argc,argv); break; // gestione commesse
case 6: ca0700(argc,argv); break; // gestione fasi
case 7: ca0800(argc,argv); break; // tabelle ripartizioni
case 8: ca0900(argc,argv); break; // gestione archivi per utente avanzatissima!
default: ca0100(argc,argv); break; // gestione tabelle
}
exit(0);

View File

@ -9,5 +9,6 @@ int ca0500(int argc, char* argv[]);
int ca0600(int argc, char* argv[]);
int ca0700(int argc, char* argv[]);
int ca0800(int argc, char* argv[]);
int ca0900(int argc, char* argv[]);
#endif // __CA0_H

151
ca/ca0900.cpp Executable file
View File

@ -0,0 +1,151 @@
#include <applicat.h>
#include <automask.h>
#include <config.h>
#include <defmask.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("Codcms"));
set(F_CDC, config.get("CdC"));
set(F_FASE, config.get("Fase"));
//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);
//filtri principali
config.set("Codcms", get(F_CODCMS));
config.set("CdC", get(F_CDC));
config.set("Fase", 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()
{
return TSkeleton_application::create();
}
int ca0900 (int argc, char* argv[])
{
TGestione_permessi_CA app;
app.run(argc, argv, TR("Gestione permessi CA"));
return 0;
}

14
ca/ca0900a.h Executable file
View File

@ -0,0 +1,14 @@
//id campi maschera ca0900a (tabella selezioni per utente avanzate)
//campi normali
#define F_USERNAME 201
#define F_USERDESC 202
#define F_CODCMS 203
#define F_CDC 204
#define F_FASE 205
#define F_RIGHE 220
//sheet
#define S_PROGRAMMA 101
#define S_CODCMS 102
#define S_CDC 103
#define S_FASE 104

154
ca/ca0900a.uml Executable file
View File

@ -0,0 +1,154 @@
#include "ca0900a.h"
TOOLBAR "topbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Selezione archivi per Utente" 0 0 0 2
STRING F_USERNAME 16
BEGIN
PROMPT 1 1 "Utente "
USE LF_USER
INPUT USERNAME F_USERNAME
DISPLAY "Utente@16" USERNAME
DISPLAY "Gruppo@16" GROUPNAME
DISPLAY "Descrizione@50" USERDESC
OUTPUT F_USERNAME USERNAME
OUTPUT F_USERDESC USERDESC
CHECKTYPE REQUIRED
FLAGS "U"
END
STRING F_USERDESC 50
BEGIN
PROMPT 1 2 "Nome "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 3 "@bFormule di filtro principali"
END
STRING F_CODCMS 70 65
BEGIN
PROMPT 2 4 "Commesse "
FIELD S0
END
STRING F_CDC 70 65
BEGIN
PROMPT 2 5 "C.D.C. "
FIELD S1
END
STRING F_FASE 70 65
BEGIN
PROMPT 2 6 "Fasi "
FIELD S2
END
SPREADSHEET F_RIGHE
BEGIN
PROMPT 1 8 "Permessi per programma"
ITEM "Programma@F"
ITEM "Commesse@50"
ITEM "Cdc@50"
ITEM "Fasi@50"
END
ENDPAGE
PAGE "Istruzioni" 0 2 0 0
TEXT -1
BEGIN
PROMPT 0 1 "Le formule di filtro sono espressioni. Si usano per indicare Commesse, Fasi,"
END
TEXT -1
BEGIN
PROMPT 0 2 "e CdC che l'utente selezionato è autorizzato o meno a consultare/modificare."
END
TEXT -1
BEGIN
PROMPT 0 3 "Esempi"
END
TEXT -1
BEGIN
PROMPT 0 4 "CODCMS=codicecommessa, CODCMS=cod*, CODCMS?=cod"
END
TEXT -1
BEGIN
PROMPT 0 5 "CODCOSTO=codicecdc, CODCOSTO=cod*, CODCOSTO?=cod"
END
TEXT -1
BEGIN
PROMPT 0 6 "CODFASE=codicefase, CODFASE=cod*, CODFASE?=cod"
END
TEXT -1
BEGIN
PROMPT 0 7 "Nota: il filtro sulle fasi è applicabile solo se le fasi NON sono collegate a"
END
TEXT -1
BEGIN
PROMPT 0 8 "commesse e CdC in configurazione contabilità analitica"
END
ENDPAGE
ENDMASK
PAGE "Sheet" -1 -1 78 5
STRING S_PROGRAMMA 6
BEGIN
PROMPT 1 1 "Programma "
END
STRING S_CODCMS 70 65
BEGIN
PROMPT 1 2 "Commesse "
END
STRING S_CDC 70 65
BEGIN
PROMPT 1 3 "CdC "
END
STRING S_FASE 70 65
BEGIN
PROMPT 1 4 "Fase "
END
ENDPAGE
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -50,7 +50,7 @@ END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 4 "@bFiltri"
PROMPT 1 4 "@bFormule di filtro principali"
END
STRING F_AUC_COMMESSE 70 65
@ -61,7 +61,7 @@ END
STRING F_AUC_CDC 70 65
BEGIN
PROMPT 2 6 "C.D.C "
PROMPT 2 6 "C.D.C. "
FIELD S1
END
@ -71,44 +71,48 @@ BEGIN
FIELD S2
END
ENDPAGE
PAGE "Istruzioni" 0 2 0 0
TEXT -1
BEGIN
PROMPT 2 10 "I campi soprastanti sono di tipo formula. Si usano per indicare Commesse, Fasi,"
PROMPT 0 1 "Le formule di filtro sono espressioni. Si usano per indicare Commesse, Fasi,"
END
TEXT -1
BEGIN
PROMPT 2 11 "e CdC che l'utente selezionato è autorizzato o meno a consultare/modificare."
PROMPT 0 2 "e CdC che l'utente selezionato è autorizzato o meno a consultare/modificare."
END
TEXT -1
BEGIN
PROMPT 2 12 "Esempi"
PROMPT 0 3 "Esempi"
END
TEXT -1
BEGIN
PROMPT 2 13 "CODCMS=codicecommessa, CODCMS=cod*"
PROMPT 0 4 "CODCMS=codicecommessa, CODCMS=cod*, CODCMS?=cod"
END
TEXT -1
BEGIN
PROMPT 2 14 "CODCOSTO=codicecdc, CODCOSTO=cod*"
PROMPT 0 5 "CODCOSTO=codicecdc, CODCOSTO=cod*, CODCOSTO?=cod"
END
TEXT -1
BEGIN
PROMPT 2 15 "CODFASE=codicefase, CODFASE=cod*"
PROMPT 0 6 "CODFASE=codicefase, CODFASE=cod*, CODFASE?=cod"
END
TEXT -1
BEGIN
PROMPT 2 16 "Nota: il filtro sulle fasi è applicabile solo se le fasi NON sono collegate a"
PROMPT 0 7 "Nota: il filtro sulle fasi è applicabile solo se le fasi NON sono collegate a"
END
TEXT -1
BEGIN
PROMPT 2 17 "commesse e CdC"
PROMPT 0 8 "commesse e CdC in configurazione contabilità analitica"
END
ENDPAGE