Evitati errori in message copy su campi inesistenti

git-svn-id: svn://10.65.10.50/branches/R_10_00@22810 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-03-03 21:45:54 +00:00
parent b865dbd7a9
commit 66fce32cbf
3 changed files with 16 additions and 10 deletions

View File

@ -238,7 +238,7 @@ void TMask::add_field(TMask_field* f)
const short id = f->dlg(); const short id = f->dlg();
if (id > 0 && id < 512) if (id > 0 && id < 512)
{ {
if (f->is_sheet()) if (f->is_sheet() && strncmp(_source_file.name(), "lv", 2) != 0)
{ {
for (short cid = 101; cid <= 110; cid++) for (short cid = 101; cid <= 110; cid++)
{ {

View File

@ -1200,14 +1200,21 @@ bool TOperable_field::do_message(int num)
} }
else else
{ {
TMask_field& f = mask().field(fld); const int pos = mask().id2pos(fld);
const char* prev = f.get(); if (pos >= 0)
if (value != prev)
{ {
f.set(value); TMask_field& f = mask().fld(pos);
if (f.shown() || f.ghost()) const char* prev = f.get();
f.on_hit(); if (value != prev)
{
f.set(value);
if (f.shown() || f.ghost())
f.on_hit();
}
} }
#ifdef DBG
// else error?
#endif
} }
} }
} }

View File

@ -1418,8 +1418,7 @@ int TPrefix::firms(TArray& ditte)
TFilename ininame = firm2dir(codditta); TFilename ininame = firm2dir(codditta);
ininame.add("ditta.ini"); ininame.add("ditta.ini");
TConfig ini(ininame, "Main"); TConfig ini(ininame, "Main");
TAssoc_array& fields = ini.list_variables(); if (prefix_valid())
if (fields.empty() && prefix_valid())
{ {
TLocalisamfile nditte(LF_NDITTE); TLocalisamfile nditte(LF_NDITTE);
TRectype& ditta = nditte.curr(); TRectype& ditta = nditte.curr();
@ -1435,10 +1434,10 @@ int TPrefix::firms(TArray& ditte)
} }
} }
} }
TAssoc_array& fields = ini.list_variables();
if (fields.empty()) if (fields.empty())
{ {
ini.set(NDT_CODDITTA, codditta); ini.set(NDT_CODDITTA, codditta);
CHECK(!fields.empty(), "Can't genenerate firm data");
} }
ditte.add(fields); ditte.add(fields);
} }