2012-04-17 15 views
2

テーブルのフィールドがシステムから生成されているかどうかを判断する巧妙な方法があるかどうかを知りたいと思います。私は唯一の変数としてTableNumとFieldNumを持っている(何もハードコーディングされていない、唯一の動的な値)と私は、この(擬似コード)のようなものを書くことができるようにしたいと思います:フィールドがシステムフィールドであるかどうかを確認する

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

の代わりに:

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

fieldName = dictTable.fieldName(fieldId); 

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

//... 

私が探していることをする方法がない場合、私は何を書いていますか。うまくいけば誰かが助けることができる、私は残念なことにドキュメンテーションのそれについて何も見つけられていない。

乾杯

答えて

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); 
    } 
} 
+0

はそれは見事に動作します。ありがとう! – Max

関連する問題