前言
SysDictField 和 SysDictTable 用于访问表和字段的元数据信息。
一、示例
循环表,使对应数据源的字段禁止编辑
public void fieldNoAllowEdit(Common _common,formDataSource fds,boolean aE = false)
{
TableId tableId;
FieldId fieldId,extFieldId;
SysDictTable dictTable;
SysDictField dictField;
int i, j;
boolean ret = false;
str fieldName;
dictTable = new SysDictTable(_common.tableId);
for (i = 1; i <= dictTable.fieldCnt(); i++)
{
fieldId = dictTable.fieldCnt2Id(i);
dictField = new SysDictField(_common.tableId, fieldId);
fieldName = dictField.name();
if (!dictField.isSystem() && (
fieldName != 'fieldName1'
))
{
fds.object(fieldId).allowEdit(aE);
}
}
}
判断两张相同表的字段值是否不同
public static boolean isDifference(Common _common1, Common _common2)
{
TableId tableId;
FieldId fieldId,extFieldId;
SysDictTable dictTable;
SysDictField dictField;
int i, j;
boolean ret = false;
str fieldName;
dictTable = new SysDictTable(_common1.tableId);
for (i = 1; i <= dictTable.fieldCnt(); i++)
{
fieldId = dictTable.fieldCnt2Id(i);
dictField = new SysDictField(_common1.tableId, fieldId);
fieldName = dictField.name();
if (!dictField.isSystem() && (fieldName != 'PushState' && fieldName != 'PushDateTime'&& fieldName != 'Remark' && fieldName != 'CreateDateTime'))
{
for (j = 1; j <= dictField.arraySize(); j++)
{
extFieldId = fieldId2Ext(fieldId, j);
if (_common1.(extFieldId) != _common2.(extFieldId))
{
ret = true;
return ret;
}
}
}
}
return ret;
}