我想知道是否有一种聪明/简短的方法来确定表中的字段是否是从系统生成的。我只有TableNum和FieldNum作为变量(没有硬编码,只有动态值),我希望能够写出这样的东西(伪代码):
if( Sys::isSystemField(tableId, fieldId) )
{
//...
}
而不是:
//...
str fieldName;
//...
;
//...
fieldName = dictTable.fieldName(fieldId);
if(fieldName == "modifiedDateTime"
|| fieldName == "DEL_ModifiedTime"
|| fieldName == "modifiedBy"
|| //etc...)
{
//...
如果没有办法做我正在寻找的事情,我将会写这个。希望有人能提供帮助,遗憾的是我在文档中找不到任何相关信息。
干杯
答案 0 :(得分:3)
使用isSysId
全局方法。
例如,在Global::buf2buf
:
static void buf2Buf(Common _from, Common _to)
{
DictTable dictTable = new DictTable(_from.TableId);
fieldId fieldId = dictTable.fieldNext(0);
while (fieldId && ! isSysId(fieldId))
{
_to.(fieldId) = _from.(fieldId);
fieldId = dictTable.fieldNext(fieldId);
}
}