2

我想知道是否有一种聪明/简短的方法来确定表中的字段是否是从系统生成的。我只有 TableNum 和 FieldNum 作为变量(没有硬编码,只有动态值),我希望能够写出这样的东西(伪代码):

if( Sys::isSystemField(tableId, fieldId) )
{
    //...
} 

代替:

//...
str fieldName;
//...
;
//...

fieldName = dictTable.fieldName(fieldId);

if(fieldName == "modifiedDateTime"
    || fieldName == "DEL_ModifiedTime"
    || fieldName == "modifiedBy"
    || //etc...)
{

//...

如果没有办法做我正在寻找的东西,这就是我要写的东西。希望有人可以提供帮助,不幸的是,我在文档中没有找到任何相关信息。

干杯

4

1 回答 1

4

使用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);
    }
}
于 2012-04-17T14:11:11.450 回答