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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.08.2008, 16:08   #1  
KpecT is offline
KpecT
Участник
 
56 / 10 (1) +
Регистрация: 14.08.2007
Как достать названия проектов и их содержимое.
Стоит задача достать названия проектов и их содержимое.
Или подскажите форму, на которой отображаются Project.
Старый 07.08.2008, 16:27   #2  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
http://erpkb.com/Axapta/KakProgramnoProchitat'SoderzhanieProekta
За это сообщение автора поблагодарили: KpecT (1).
Старый 07.08.2008, 16:38   #3  
KpecT is offline
KpecT
Участник
 
56 / 10 (1) +
Регистрация: 14.08.2007
Как названия проектов узнать?
Старый 07.08.2008, 16:53   #4  
e@gle is offline
e@gle
MCTS
MCBMSS
 
164 / 72 (3) ++++
Регистрация: 11.04.2005
Адрес: Минск
Цитата:
Как названия проектов узнать?
ProjectNode.name() или ProjectNode.AOTName()
__________________
С уважением, Павел Цераниди.
На пути к совершенству нет конца. Каждое новое достижение является отправной точкой для следующего крупного шага.
Старый 07.08.2008, 18:42   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
X++:
static void Job16(Args _args)
{//DSPIC
    UtilElements    utilElements;
    ProjectNode     projectNode;
    Source          projectSource;
    ;
    
    while select utilElements
       where utilElements.recordType == UtilElementType::SharedProject 
          || utilElements.recordType == UtilElementType::PrivateProject
    {
        projectNode = xUtilElements::getNode(utilElements);

        if (projectNode)
        {
            projectNode = projectNode.loadForInspection();
 
            projectSource = projectNode.AOTgetSource(); //получаем проект в виде строки
            
            //элементы AOT в projectSource вписаны по шаблону: Node: treeNodePath
        }
    }
}
Остаестся распарсить projectSource и найти все строки, начинающиеся с Node: ...
Это наверное самый быстрый способ пробежаться по проектам и проекту.
Второй вариант (стандартный), работать с treeNode'ами: firstChild, NextChild и т.д. - будет на порядок медленнее. В этой же категории можно заюзать класс TreeNodeTraverser для облегчения "лазанья" по тринодам

Edit: Есть ещё один момент. Если проект лежит на разных слоях, то в таблице utilElements встретятся дубликаты, поэтому нужно сохранять выбранные имена проектов для предотвращения повторного пробега по ним. Способ быть может чуть сложнее приведенного выше, но тут выигрыш в скорости отработки.

Последний раз редактировалось DSPIC; 07.08.2008 в 18:55. Причина: Уточнение
За это сообщение автора поблагодарили: KpecT (1).
Старый 08.08.2008, 12:52   #6  
KpecT is offline
KpecT
Участник
 
56 / 10 (1) +
Регистрация: 14.08.2007
Спасибо теперь знаю, как достать названия проектов. Но из Axapta выкидывает на выполнении этой строки projectSource = projectNode.AOTgetSource(); //получаем проект в виде строки
Старый 08.08.2008, 13:17   #7  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Да, валится в 3-ке. Для тройки строку
X++:
projectNode = projectNode.loadForInspection();
Нужно убрать - тогда всё ок.
Теги
документация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пустые названия системных таблиц в report data range (DAX 4.0) Qaz Qwerty DAX: Функционал 3 06.08.2008 00:05
Где храняться названия проектов. miklenew DAX: Программирование 5 02.11.2006 15:28
Все названия таблиц в инфо kas DAX: Программирование 10 17.07.2006 18:13
Отображение названия вместо кода! demID DAX: Программирование 31 05.10.2004 00:03
Проведение проектов внедрения Shura DAX: Прочие вопросы 6 11.09.2002 23:07

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

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

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