2012-04-17 3 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

Смежные вопросы