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\f90200a.uml" />
|
||||||
<MskCompiler Include="..\src\f9\f90300a.uml" />
|
<MskCompiler Include="..\src\f9\f90300a.uml" />
|
||||||
<MskCompiler Include="..\src\f9\f90300b.uml" />
|
<MskCompiler Include="..\src\f9\f90300b.uml" />
|
||||||
<MskCompiler Include="..\src\f9\f90300c.uml" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<SqlCompiler Include="..\src\f9\sql\f90100.sql">
|
<SqlCompiler Include="..\src\f9\sql\f90100.sql">
|
||||||
|
@ -103,9 +103,6 @@
|
|||||||
<MskCompiler Include="..\src\f9\f90300b.uml">
|
<MskCompiler Include="..\src\f9\f90300b.uml">
|
||||||
<Filter>Masks</Filter>
|
<Filter>Masks</Filter>
|
||||||
</MskCompiler>
|
</MskCompiler>
|
||||||
<MskCompiler Include="..\src\f9\f90300c.uml">
|
|
||||||
<Filter>Masks</Filter>
|
|
||||||
</MskCompiler>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<SqlCompiler Include="..\src\f9\sql\f90100.sql">
|
<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;
|
bool on_key(KEY key) override;
|
||||||
|
|
||||||
void check_spell() const;
|
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 fill_annessi(const TString& catdoc);
|
||||||
void load_table() const;
|
void load_table() const;
|
||||||
|
void new_annesso(const TString& catdoc_padre);
|
||||||
void salva_tabella() const;
|
void salva_tabella() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -93,66 +96,17 @@ bool TF9_categorie_doc_msk::on_field_event(TOperable_field& o, TField_event e, l
|
|||||||
int key;
|
int key;
|
||||||
while ((key = _annessi_sheet->run()) != K_ESC)
|
while ((key = _annessi_sheet->run()) != K_ESC)
|
||||||
{
|
{
|
||||||
if (key == K_INS) // Voglio inserire un nuovo annesso
|
switch (key)
|
||||||
{
|
{
|
||||||
_categorie_doc.reload();
|
case K_INS:
|
||||||
TString title; title << "Nuovo annesso per " << catdoc_padre;
|
new_annesso(catdoc_padre);
|
||||||
TNew_annesso_msk new_ann(title);
|
break;
|
||||||
while(new_ann.run() == K_ENTER)
|
case K_DEL:
|
||||||
{
|
delete_annesso(catdoc_padre);
|
||||||
TString catann = new_ann.get(101);
|
break;
|
||||||
if (catann.empty())
|
case K_ENTER:
|
||||||
{
|
edit_annesso(catdoc_padre);
|
||||||
warning_box("Inserire il nome tipo annesso");
|
default: break;
|
||||||
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);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -189,12 +143,47 @@ void TF9_categorie_doc_msk::check_spell() const
|
|||||||
sf.show();
|
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)
|
void TF9_categorie_doc_msk::fill_annessi(const TString& catdoc)
|
||||||
{
|
{
|
||||||
TCategorie_doc d;
|
TCategorie_doc d;
|
||||||
d.set_mode_sheet(6);
|
d.set_mode_sheet(0x1E);
|
||||||
_annessi_sheet = d.get_sheet_ann(catdoc);
|
_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
|
void TF9_categorie_doc_msk::load_table() const
|
||||||
@ -216,6 +205,36 @@ void TF9_categorie_doc_msk::load_table() const
|
|||||||
sf.force_update();
|
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
|
void TF9_categorie_doc_msk::salva_tabella() const
|
||||||
{
|
{
|
||||||
check_spell();
|
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,
|
void TCategorie_doc::add_annesso(const TString& catdoc_padre, const TString& catdoc_ann, const TString& descr,
|
||||||
const TString& class_ann, const bool obblig)
|
const TString& class_ann, const bool obblig)
|
||||||
{
|
{
|
||||||
#ifdef DBG
|
|
||||||
CHECK(catdoc_padre && *catdoc_padre && catdoc_ann && *catdoc_ann && class_ann && *class_ann,
|
CHECK(catdoc_padre && *catdoc_padre && catdoc_ann && *catdoc_ann && class_ann && *class_ann,
|
||||||
"add_annesso failed: some parameters are NULL or keys are empty");
|
"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 };
|
annesso ann{ catdoc_padre, catdoc_ann, descr, class_ann, obblig };
|
||||||
_rows_annessi.insert({ catdoc_padre, ann });
|
_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,
|
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)
|
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 };
|
classe_doc cd = { catdoc, descr, class_sost, caus_sost, causcont, tipocaus };
|
||||||
_rows.emplace_back(std::make_shared<classe_doc>(cd));
|
_rows.emplace_back(std::make_shared<classe_doc>(cd));
|
||||||
save_cat();
|
save_cat();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user