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:
parent
cce236cba8
commit
1a55d4ab99
@ -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
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user