在项目初始化的时候,可能需要修改某些字段的长度,这样就需要知道该字段对应的EDT类型,由于字符的长度只能从最上层的EDT类型修改,所以需要找到这个类型,如果EDT类型的继承层次很多的话,一个个找下去是一件很累的事情,如果能根据表名和字段名找到对应的EDT类型列表可能会减轻一些工作,写这段代码也很简单,类似于如下代码:
Code
void clicked()
{
DictField dictField;
str strTableName;
str strFieldName;
SysDictType type;
EDTTable edtTableLocal;
;
super();
try
{
strTableName = TableName.valueStr();
strFieldName = FieldName.valueStr();
dictField = new DictField(tableName2Id(strTableName),fieldName2Id(tableName2Id(strTableName),strFieldName));
if(!dictField)
{
box::info("Please Input Correct Talbe and Field Name!");
return;
}
type = new SysDictType(dictField.typeId());
while(type)
{
edtTableLocal.Name = type.name();
edtTableLocal.Description = type.label();
edtTableLocal.insert();
type = new SysDictType(type.extend());
}
EDTTable.setTmpData(edtTableLocal);
EDTTable_ds.executeQuery();
}
catch
{
}
}