Migliorata gestione FIELD della coppia COMMESSA+FASE

git-svn-id: svn://10.65.10.50/branches/R_10_00@22949 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2014-05-16 13:00:44 +00:00
parent db0a1c63c4
commit 982f90360e
2 changed files with 22 additions and 1 deletions

View File

@ -107,6 +107,18 @@ int TMultilevel_code_info::levels() const
return _picture.items();
}
int TMultilevel_code_info::parent_levels() const
{
int n = 0;
if (_logicnum == LF_FASI && _parentnum > 0)
{
const TMultilevel_code_info cdc_cms(_parentnum);
n = cdc_cms.levels();
}
return n;
}
const TString& TMultilevel_code_info::picture(int level) const
{
if (level < 0 || level >= levels())
@ -804,6 +816,7 @@ int ca_create_fields(TMask& msk, int page, int logicnum, int x, int y,
if (key_id > 0 && (mode == 0 || (mode & 0x1) != 0))
{
const int parent_levels = mci.parent_levels();
for (int i = 0; i < mci.levels(); i++)
{
const short kid = key_id+i;
@ -826,9 +839,16 @@ int ca_create_fields(TMask& msk, int page, int logicnum, int x, int y,
if (fieldname && *fieldname)
{
const TFieldref& fr = *kfld->field();
const char* campo = fieldname;
if (i < parent_levels)
{
// Aggiunsta nome campo principale
if (strcmp(campo, RMOVANA_CODFASE) == 0)
campo = mci.parent() == LF_COMMESSE ? RMOVANA_CODCMS : RMOVANA_CODCCOSTO;
}
TString80 str;
str.format("%s[%d,%d]", fieldname, fr.from()+from+1, fr.to()+from);
str.format("%s[%d,%d]", campo, fr.from()+from+1, fr.to()+from);
kfld->set_field(str);
}
}

View File

@ -60,6 +60,7 @@ public:
const TString& editor() const { return _editor; }
int pack(TString& code) const; // Toglie i pipe
int unpack(TString& code) const; // Aggiunge i pipe
int parent_levels() const; // Numero di livelli del padre di LF_FASI (puo' essere 0)
TMultilevel_code_info(int logicnum);
virtual ~TMultilevel_code_info() { }