获取最根基EDT的名称

获取最根级EDT类型名称

有时候需要修改某个扩展数据类型的属性,比如字段的长度等,这些属性只能在最根级的EDT类型上修改,所以需要找到最根级的EDT类型,这个小例子演示了如何根据当前表的字段获取其对应的最根级EDT类型。

                       
//Return the top extendtypeid,If error,return ''
static ExtendedDataTypeName GetFinalExtendedType(TableId _tableId,FieldId _fieldId)
{
SysDictField dictField;
SysDictType dictType;
ExtendedTypeId tmpExtendTypeId;
ExtendedTypeId finalExtendTypeId;

ExtendedTypeId getNextExtendedTypeId(DictType _dictType)
{
;
if(_dictType.extend())
return _dictType.extend();
else
return 0;

}
;

if(_tableId && _fieldId)
dictField = new SysDictField(_tableId,_fieldId);
else
return '';

dictType = new SysDictType(dictField.typeId());

if(!dictType)
return '';

finalExtendTypeId = dictType.id();

while(true)
{
tmpExtendTypeId = getNextExtendedTypeId(dictType);

//if not '',find next extendTypeId
if(tmpExtendTypeId)
{
finalExtendTypeId = tmpExtendTypeId;
dictType = new DictType(finalExtendTypeId);
}
else
break;



}

if(finalExtendTypeId)
return new dictType(finalExtendTypeId).Name();
else
return '';

}

 

posted @ 2012-04-10 11:47  K小子  阅读(153)  评论(0)    收藏  举报