Patch level : 12.0 966
Files correlati : f90.exe fpmenu.men d181.des f181.dir f181.trr all-masks f90104.sql build Commento : - Corretto sheet annessi se vuoto e premevi modifica o elimina crashava il programma. - Corretto controllo in add_annesso, in release il controllo era inverso e usciva sempre senza aggiungere nulla. - Sistemati tasto selezione inutile che modificava lo sheet, ora sia con edit che doppio click sulla riga annesso apre finestra per modifica; cambiato tasto annulla con esci. - Eliminata maschera inesistente dal progetto.
This commit is contained in:
parent
57441dcce9
commit
a55b860e8c
@ -218,7 +218,6 @@
|
||||
<MskCompiler Include="..\src\f9\f90200a.uml" />
|
||||
<MskCompiler Include="..\src\f9\f90300a.uml" />
|
||||
<MskCompiler Include="..\src\f9\f90300b.uml" />
|
||||
<MskCompiler Include="..\src\f9\f90300c.uml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<SqlCompiler Include="..\src\f9\sql\f90100.sql">
|
||||
|
@ -103,9 +103,6 @@
|
||||
<MskCompiler Include="..\src\f9\f90300b.uml">
|
||||
<Filter>Masks</Filter>
|
||||
</MskCompiler>
|
||||
<MskCompiler Include="..\src\f9\f90300c.uml">
|
||||
<Filter>Masks</Filter>
|
||||
</MskCompiler>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<SqlCompiler Include="..\src\f9\sql\f90100.sql">
|
||||
|
@ -1,6 +0,0 @@
|
||||
[FieldDescr]
|
||||
FILENAME = Nome del file (senza indirizzo)
|
||||
LOADDATE = Data caricamento
|
||||
NUMREG = Numero di registrazione associato
|
||||
USER = Utente che ha caricato il file
|
||||
|
@ -1,8 +0,0 @@
|
||||
[FieldDescr]
|
||||
CATDOCANN = Categoria documentale annesso
|
||||
CATDOCPAD = Categoria documentale padre (appartenenza annesso)
|
||||
FILENAME = Nome del file (senza indirizzo)
|
||||
LOADDATE = Data caricamento
|
||||
NUMREG = Numero di registrazione associato
|
||||
USER = Utente che ha caricato il file
|
||||
|
@ -50,8 +50,11 @@ class TF9_categorie_doc_msk : public TAutomask
|
||||
bool on_key(KEY key) override;
|
||||
|
||||
void check_spell() const;
|
||||
void delete_annesso(const TString& catdoc_padre);
|
||||
void edit_annesso(const TString& catdoc_padre);
|
||||
void fill_annessi(const TString& catdoc);
|
||||
void load_table() const;
|
||||
void new_annesso(const TString& catdoc_padre);
|
||||
void salva_tabella() const;
|
||||
|
||||
public:
|
||||
@ -93,66 +96,17 @@ bool TF9_categorie_doc_msk::on_field_event(TOperable_field& o, TField_event e, l
|
||||
int key;
|
||||
while ((key = _annessi_sheet->run()) != K_ESC)
|
||||
{
|
||||
if (key == K_INS) // Voglio inserire un nuovo annesso
|
||||
switch (key)
|
||||
{
|
||||
_categorie_doc.reload();
|
||||
TString title; title << "Nuovo annesso per " << catdoc_padre;
|
||||
TNew_annesso_msk new_ann(title);
|
||||
while(new_ann.run() == K_ENTER)
|
||||
{
|
||||
TString catann = new_ann.get(101);
|
||||
if (catann.empty())
|
||||
{
|
||||
warning_box("Inserire il nome tipo annesso");
|
||||
continue;
|
||||
}
|
||||
TCategorie_doc::annesso ann;
|
||||
if (!_categorie_doc.get_ann(catann, ann))
|
||||
{
|
||||
const TString& descr = new_ann.get(102);
|
||||
const TString& tipo = new_ann.get(103);
|
||||
const bool obblig = new_ann.get_bool(104);
|
||||
correct_spell_catdoc(catann);
|
||||
_categorie_doc.add_annesso(catdoc_padre, catann, descr, tipo, obblig);
|
||||
fill_annessi(catdoc_padre);
|
||||
}
|
||||
else
|
||||
warning_box("E' gia' presente un annesso con lo stesso nome per la categoria %s", (const char*)catdoc_padre);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (key == K_DEL)
|
||||
{
|
||||
const int r = _annessi_sheet->selected();
|
||||
if (yesno_box("Eliminare l'annesso N. %d?", r + 1))
|
||||
{
|
||||
_categorie_doc.del_annesso(catdoc_padre, _annessi_sheet->row(r).get(0));
|
||||
fill_annessi(catdoc_padre);
|
||||
}
|
||||
}
|
||||
else if(key == K_CTRL+'F' || key == K_ENTER) // EDIT
|
||||
{
|
||||
//_categorie_doc.reload();
|
||||
TString title; title << "Modifica annesso per " << catdoc_padre;
|
||||
TNew_annesso_msk new_ann(title);
|
||||
new_ann.edit_mode();
|
||||
TToken_string& r = _annessi_sheet->row(_annessi_sheet->selected());
|
||||
new_ann.fill_field(r.get(0), r.get(1), r.get(2), r.get_bool(3));
|
||||
if (new_ann.run() == K_ENTER)
|
||||
{
|
||||
const TString catann = new_ann.get(101);
|
||||
//TCategorie_doc::annesso ann;
|
||||
/*if (!_categorie_doc.get_ann(catann, ann))
|
||||
{*/
|
||||
const TString& descr = new_ann.get(102);
|
||||
const TString& tipo = new_ann.get(103);
|
||||
const bool obblig = new_ann.get_bool(104);
|
||||
//correct_spell_catdoc(catann);
|
||||
_categorie_doc.del_annesso(catdoc_padre, catann);
|
||||
_categorie_doc.add_annesso(catdoc_padre, catann, descr, tipo, obblig);
|
||||
fill_annessi(catdoc_padre);
|
||||
//}
|
||||
}
|
||||
case K_INS:
|
||||
new_annesso(catdoc_padre);
|
||||
break;
|
||||
case K_DEL:
|
||||
delete_annesso(catdoc_padre);
|
||||
break;
|
||||
case K_ENTER:
|
||||
edit_annesso(catdoc_padre);
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -189,12 +143,47 @@ void TF9_categorie_doc_msk::check_spell() const
|
||||
sf.show();
|
||||
}
|
||||
|
||||
void TF9_categorie_doc_msk::delete_annesso(const TString& catdoc_padre)
|
||||
{
|
||||
if (_annessi_sheet->items() > 0)
|
||||
{
|
||||
const int r = _annessi_sheet->selected();
|
||||
if (yesno_box("Eliminare l'annesso N. %d?", r + 1))
|
||||
{
|
||||
_categorie_doc.del_annesso(catdoc_padre, _annessi_sheet->row(r).get(0));
|
||||
fill_annessi(catdoc_padre);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TF9_categorie_doc_msk::edit_annesso(const TString& catdoc_padre)
|
||||
{
|
||||
if (_annessi_sheet->items() > 0)
|
||||
{
|
||||
TString title; title << "Modifica annesso per " << catdoc_padre;
|
||||
TNew_annesso_msk new_ann(title);
|
||||
new_ann.edit_mode();
|
||||
TToken_string& r = _annessi_sheet->row(_annessi_sheet->selected());
|
||||
new_ann.fill_field(r.get(0), r.get(1), r.get(2), r.get_bool(3));
|
||||
if (new_ann.run() == K_ENTER)
|
||||
{
|
||||
const TString& catann = new_ann.get(101);
|
||||
const TString& descr = new_ann.get(102);
|
||||
const TString& tipo = new_ann.get(103);
|
||||
const bool obblig = new_ann.get_bool(104);
|
||||
_categorie_doc.del_annesso(catdoc_padre, catann);
|
||||
_categorie_doc.add_annesso(catdoc_padre, catann, descr, tipo, obblig);
|
||||
fill_annessi(catdoc_padre);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TF9_categorie_doc_msk::fill_annessi(const TString& catdoc)
|
||||
{
|
||||
TCategorie_doc d;
|
||||
d.set_mode_sheet(6);
|
||||
d.set_mode_sheet(0x1E);
|
||||
_annessi_sheet = d.get_sheet_ann(catdoc);
|
||||
_annessi_sheet->add_button(DLG_EDIT, TR("~Modifica"), K_CTRL + 'F', TOOL_EDIT);
|
||||
_annessi_sheet->add_button(DLG_EDIT, TR("~Modifica"), K_ENTER, TOOL_EDIT);
|
||||
}
|
||||
|
||||
void TF9_categorie_doc_msk::load_table() const
|
||||
@ -216,6 +205,36 @@ void TF9_categorie_doc_msk::load_table() const
|
||||
sf.force_update();
|
||||
}
|
||||
|
||||
void TF9_categorie_doc_msk::new_annesso(const TString& catdoc_padre)
|
||||
{
|
||||
_categorie_doc.reload();
|
||||
TString title;
|
||||
title << "Nuovo annesso per " << catdoc_padre;
|
||||
TNew_annesso_msk new_ann(title);
|
||||
while (new_ann.run() == K_ENTER)
|
||||
{
|
||||
TString catann = new_ann.get(101);
|
||||
if (catann.empty())
|
||||
{
|
||||
warning_box("Inserire il nome tipo annesso");
|
||||
continue;
|
||||
}
|
||||
TCategorie_doc::annesso ann;
|
||||
if (!_categorie_doc.get_ann(catann, ann))
|
||||
{
|
||||
const TString& descr = new_ann.get(102);
|
||||
const TString& tipo = new_ann.get(103);
|
||||
const bool obblig = new_ann.get_bool(104);
|
||||
correct_spell_catdoc(catann);
|
||||
_categorie_doc.add_annesso(catdoc_padre, catann, descr, tipo, obblig);
|
||||
fill_annessi(catdoc_padre);
|
||||
}
|
||||
else
|
||||
warning_box("E' gia' presente un annesso con lo stesso nome per la categoria %s", (const char*)catdoc_padre);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void TF9_categorie_doc_msk::salva_tabella() const
|
||||
{
|
||||
check_spell();
|
||||
|
@ -1192,13 +1192,8 @@ std::map<TString, TCategorie_doc::annesso>::iterator TCategorie_doc::find_anness
|
||||
void TCategorie_doc::add_annesso(const TString& catdoc_padre, const TString& catdoc_ann, const TString& descr,
|
||||
const TString& class_ann, const bool obblig)
|
||||
{
|
||||
#ifdef DBG
|
||||
CHECK(catdoc_padre && *catdoc_padre && catdoc_ann && *catdoc_ann && class_ann && *class_ann,
|
||||
"add_annesso failed: some parameters are NULL or keys are empty");
|
||||
#else
|
||||
if (catdoc_padre && *catdoc_padre && catdoc_ann && *catdoc_ann && class_ann && *class_ann)
|
||||
return;
|
||||
#endif
|
||||
annesso ann{ catdoc_padre, catdoc_ann, descr, class_ann, obblig };
|
||||
_rows_annessi.insert({ catdoc_padre, ann });
|
||||
|
||||
@ -1208,6 +1203,10 @@ void TCategorie_doc::add_annesso(const TString& catdoc_padre, const TString& cat
|
||||
void TCategorie_doc::add_categoria(const TString& catdoc, const TString& descr, const TString& class_sost, const TString& caus_sost,
|
||||
const TString& causcont, const TString& tipocaus)
|
||||
{
|
||||
#ifdef DBG
|
||||
CHECK(catdoc && *catdoc && class_sost && *class_sost && caus_sost && *caus_sost,
|
||||
"add_categoria failed: some parameters are NULL or keys are empty");
|
||||
#endif
|
||||
classe_doc cd = { catdoc, descr, class_sost, caus_sost, causcont, tipocaus };
|
||||
_rows.emplace_back(std::make_shared<classe_doc>(cd));
|
||||
save_cat();
|
||||
|
Loading…
x
Reference in New Issue
Block a user