AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.11.2015, 11:55   #12  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Все сделал. Если кому интересно, вот код:

X++:
class ChangeRegionCodes
{
    int64 i,z;
}

private void ChangeCode(TreeNode _objTreeNode)
{
    int line;
    str value;
    ;
    if (_objTreeNode)
    {
        _objTreeNode = _objTreeNode.AOTfirstChild();

        while (_objTreeNode)
        {
            z++;

            try
            {
                value = _objTreeNode.AOTgetProperty("CountryRegionCodes");
                if(strContains(value, "RU") && !strContains(value, "UA"))
                {
                    _objTreeNode.AOTsetProperty("CountryRegionCodes", value + ",UA");
                    _objTreeNode.AOTsave();
                    i++;
                }
            }
            catch
            {
                infolog.clear(0);
            }

            this.ChangeCode(_objTreeNode);

            _objTreeNode = _objTreeNode.AOTnextSibling();
        }
    }
}

private void Proceed()
{
    TreeNode    objTreeNode;
    utcDateTime time;
    setPrefix("Change region codes");
    time = DateTimeUtil::utcNow();

    objTreeNode = TreeNode::findNode(@"\Menu Items\");
    this.ChangeCode(objTreeNode);
    objTreeNode = TreeNode::findNode(@"\Data Dictionary\Tables\");
    this.ChangeCode(objTreeNode);
    objTreeNode = TreeNode::findNode(@"\Data Dictionary\Maps\");
    this.ChangeCode(objTreeNode);
    objTreeNode = TreeNode::findNode(@"\Data Dictionary\Views\");
    this.ChangeCode(objTreeNode);
    objTreeNode = TreeNode::findNode(@"\Data Dictionary\Extended Data Types\");
    this.ChangeCode(objTreeNode);
    objTreeNode = TreeNode::findNode(@"\Data Dictionary\Base Enums\");
    this.ChangeCode(objTreeNode);
    objTreeNode = TreeNode::findNode(@"\Menus\");
    this.ChangeCode(objTreeNode);
    objTreeNode = TreeNode::findNode(@"\Forms\");
    this.ChangeCode(objTreeNode);

    info(strFmt("Process started at %1",time));
    info(strFmt("Count of objects changed: %1. Objects count: %2", i, z));
    info(strFmt("Process ended at %1",DateTimeUtil::utcNow()));
}

static server void main()
{
    ChangeRegionCodes c = new ChangeRegionCodes();
    c.Proceed();
}
Проверено, отработал отлично, но очень долго (в моем случае около 11 часов)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Korus Axapta Retail: Потребительские свойства. Как можно отобрать номенклатуру с определенными значениями свойств? mazzy DAX: Прочие вопросы 28 28.05.2009 12:22
Изменение свойств DataSource в RunTime kashperuk DAX: Программирование 15 13.10.2005 11:36
Изменение элемента в АОТ anf DAX: Программирование 0 25.11.2004 10:18
Изменение свойств ProgrammableSection Алексей Контев DAX: Программирование 2 13.05.2002 22:39
Изменение свойств Grid с помощью метода источника данных displayOption Anton Sk. DAX: База знаний и проекты 0 03.12.2001 18:08

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:31.