Patch level : 10,0 nopatch

Files correlati     : ci0.exe ci2.exe
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@20741 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-07-31 23:02:21 +00:00
parent cce236cba8
commit 1a55d4ab99
2 changed files with 101 additions and 0 deletions

View File

@ -660,6 +660,105 @@ int ca_create_fields(TMask& msk, int page, int logicnum, int x, int y,
return mci.levels();
}
int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
short key_id, short des_id, unsigned int mode, const char* fieldname, int from )
{
TWait_cursor hourglass;
const TMultilevel_code_info& mci = ca_multilevel_code_info(logicnum);
int par_items = 0;
if (logicnum == LF_FASI)
{
if (mci.parent() == LF_CDC)
par_items = ca_multilevel_code_info(LF_CDC).levels();
else
if (mci.parent() == LF_COMMESSE)
par_items = ca_multilevel_code_info(LF_COMMESSE).levels();
}
int maxkeylen = 0, maxdeslen = 0;
for (int level = 0; level < mci.levels(); level++)
{
const TString& prompt = mci.prompt(level);
const TString& picture = mci.picture(level);
const int keylen = picture.len();
const int deslen = (level == 0 || level == par_items) ? prompt.len() : 0 ;
if (keylen > maxkeylen) maxkeylen = keylen;
if (deslen > maxdeslen) maxdeslen = deslen;
}
maxdeslen++;
const int tab0 = x;
int offset = 0;
int desc_offset = 0;
int row_offset = 0;
if (key_id > 0 && (mode == 0 || (mode & 0x1) != 0))
{
for (int i = 0; i < mci.levels(); i++)
{
const short kid = key_id+i;
const TString& picture = mci.picture(i);
TString80 prompt = (i == 0 || i == par_items) ? mci.prompt(i) : "";
if (prompt.full())
prompt.left_just(maxdeslen);
const char* flags = picture[0] == '0' || picture[0] == '9' ? "BUZ" : "BU";
TEdit_field* kfld = NULL;
if (mci.is_numeric_picture(i)) // Numeric
kfld = &msk.add_number(kid, page, prompt, tab0 + offset, y + row_offset, picture.len(), flags);
else
kfld = &msk.add_string(kid, page, prompt, tab0 + offset, y + row_offset, picture.len(), flags);
ca_create_browse1(*kfld, i, logicnum, key_id, des_id);
if ((mode & 0x1) != 0 && fieldname == NULL)
kfld->set_key(1);
// Ho specificato un nome di campo speciale
if (fieldname && *fieldname)
{
const TFieldref& fr = *kfld->field();
TString80 str;
str.format("%s[%d,%d]", fieldname, fr.from()+from+1, fr.to()+from);
kfld->set_field(str);
}
kfld->set_warning(mci.prompt(i));
offset += prompt.len() + picture.len() + 4;
if (desc_offset < offset)
desc_offset = offset;
if (i == par_items - 1)
{
row_offset++;
offset = 0;
}
}
}
row_offset = 0;
const int tab1 = tab0 + desc_offset + 4;
if (des_id > 0 && (mode == 0 || (mode & 0x2) != 0))
{
for (int i = 0; i < mci.levels(); i++)
{
const short did = des_id+i;
TEdit_field& dfld = (i < mci.levels() - 1) && (i != par_items -1) ? msk.add_string(did, page, "", 50, 50, 50, "B")
: msk.add_string(did, page, "", tab1, y + row_offset, 50, "B", 72+tab0-tab1);
ca_create_browse2(dfld, i, logicnum, key_id);
if ((mode & 0x2) != 0 && fieldname == NULL)
dfld.set_key(2);
else
dfld.set_field("");
if (i == par_items - 1)
row_offset++;
}
}
return mci.levels();
}
///////////////////////////////////////////////////////////
// TAnal_tree_pos
///////////////////////////////////////////////////////////

View File

@ -68,6 +68,8 @@ const TMultilevel_code_info* ca_multilevel_code_info_by_index(int level);
bool ca_test_multilevel_field(TEdit_field& fld, int level);
int ca_create_fields(TMask& msk, int page, int logicnum, int x, int y, short key_id, short des_id,
unsigned int mode = 0x0, const char* fieldname = NULL, int from = 0);
int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
short key_id, short des_id, unsigned int mode = 0x0, const char* fieldname = NULL, int from = 0);
///////////////////////////////////////////////////////////
// TSimple_anal_msk