AXForum  
Вернуться   AXForum > Блоги > AX notes
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

Оценить эту запись

Инициализация всех полей

Запись от Link размещена 19.11.2014 в 14:15
Теги code, examples

X++:
static void initAllFields(Common _fromTable, Common _toTable, boolean _skipRefRecId = true)
{
    DictTable               dictTable;
    DictField               dictField;
    DictType                dictType;
    int                     i;
    FieldId                 fieldId;
    
    dictTable = new DictTable(_toTable.TableId);

    if (dictTable)
    {
        for (i = 1; i <= dictTable.fieldCnt(); i++)
        {
            fieldId = dictTable.fieldCnt2Id(i);
            dictField  = new DictField(_toTable.TableId, dictTable.fieldCnt2Id(i));
            // Excluding system fields
            if (dictField && !dictField.isSystem())
            {
                dictType = new SysDictType(dictField.typeId());                
                
                // Excluding RefRecId fields by default
                if (    _skipRefRecId
                    &&  (   dictType.name() == extendedTypeStr(RefRecId)
                        ||  dictType.isExtendedFrom(extendedTypeStr(RefRecId))))
                {
                    continue;
                }
                    
                _toTable.(fieldId) = _fromTable.(fieldId);
            }
        }
    }
}
Размещено в Код
Просмотров 6013 Комментарии 1
Всего комментариев 1

Комментарии

  1. Старый комментарий
    Аватар для Link

    V.2

    X++:
    static void initAllFields(Common _fromTable, Common _toTable, boolean _skipRefRecId = false)
    {
        DictTable               dictTable;
        int                     i;
        SysDictField            sysDictField;
    
        dictTable = new DictTable(_toTable.TableId);
    
        if (dictTable)
        {
            for (i = 1; i <= dictTable.fieldCnt(); i++)
            {
                sysDictField    = new SysDictField(dictTable.id(), dictTable.fieldCnt2Id(i));
                
                // Excluding system fields
                if (    sysDictField 
                    && !sysDictField.isSystem())
                {
                    // Excluding RefRecId fields by default
                    if (    _skipRefRecId
                        &&  sysDictField.isDerivedFrom(extendedTypeNum(RefRecId)))
                    {
                        continue;
                    }
    
                    _toTable.(sysDictField.id()) = _fromTable.(sysDictField.id());
                }
            }
        }
    }
    Запись от Link размещена 19.11.2014 в 15:30 Link is offline
 


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:53.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.