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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.08.2008, 05:34   #9  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Спасибо огромное, помогло, работает и правда долго (минуты 3), но работает.
Получился вот такой метод, может кому пригодится, на качество кода не претендую:

X++:
void securitykey2utilidelements()
{
#AOT
str          path, properties;
treenode    treenode;
identifiername identifiername;
UtilIDElements    utils, utils1;
UtilElementType CurElementType;
dictionary dict;
DictSecurityKey DictSK;
SecurityKeyID SecurityKeyID;
;
    delete_from seckey2utilstable;
    while select typessubset
    {
        CurElementType = typessubset.UtilElementType;
        While Select count(recid) from utils group by id, recordtype, name
                where utils.recordType == CurElementType
        {
            select firstonly utils1 where
                utils.recordType == utils1.recordType &&
                utils.id == utils1.id &&
                utils.name == utils1.name;
            treenode = xUtilIDElements::getNode(utils1);
            If (treenode)
                {
                properties = treenode.AOTgetProperties();
                path = treenode.treeNodePath();
                identifiername = findproperty(properties, 'SecurityKey');
                ttsbegin;
                seckey2utilstable = null;
                seckey2utilstable.insert();
                if (identifiername != '')
                {
                    dict = new dictionary();
                    SecurityKeyID = dict.securityKeyName2Id(identifiername);
                    seckey2utilstable.SecurityKeyID = SecurityKeyID;
                    DictSK = new DictSecurityKey(SecurityKeyID);
                    seckey2utilstable.SecurityKeyLabel = DictSK.label();
                    seckey2utilstable.SecurityKeyName = identifiername;
                }
                seckey2utilstable.ObjectPath = path;
                seckey2utilstable.ObjectName =  utils.name;
                seckey2utilstable.ObjectNum = utils.id;
                seckey2utilstable.UtilElementType = typessubset.UtilElementType;
                seckey2utilstable.update();
                ttscommit;
                //info(strfmt( treenode.treeNodePath()) + '  /  ' + identifiername);
                }
        }
     }
}
Таблица typessubset нужна чтобы выбрать туда только те элементы из UtilElementType которые имеют SecurityKey, чтобы перебирать не все типы элементов, например элементы типа class, form, report не нужны.
Спасибо еще раз!
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вставка строк в таблицы Аксапты сторонними средствами Андре DAX: База знаний и проекты 1 07.05.2009 16:49
dax-dilettante: 15. System Classes \ The Global Class Blog bot DAX Blogs 0 26.09.2007 23:51
dax-lessons: Active directory in Axapta Blog bot DAX Blogs 0 27.08.2007 23:00
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
Дисплей метод таблицы который вызывается из ГРИДА 3oppo DAX: Программирование 10 23.05.2006 06:47

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

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

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