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