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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2005, 11:47   #1  
Focusnik is offline
Focusnik
Участник
 
11 / 10 (1) +
Регистрация: 25.08.2005
Адрес: Moskow
вывод дерева из АОТа
Уважаемые коллеги! Помогите, пожалуста, советом. Необходимо обойти АОТ и вывести в виде дерева обеъкты которые были созданы или изменены за время, когда пользователя не было в сети. Вопрос первый подскажите пожалуйста класс, который используется при загрузке аксапты (мне там нужно сделать диалог). Вопрос второй в job'е представленной ниже у меня не получается вывести аот в виде дерева и поставить условия (типа select UtilElements
where UtilElements.name == tet.treeNodeName();
if((UtilElements.createdBy == 'admin') && (UtilElements.createdDate > 01\09\2005)))
текст job'а:
static void ob(Args _args)
{
UserId uId;
treeNode t = treeNode::RootNode();

void detourAot(treenode _treenode)
{
treeNode tet;
;
tet = _treenode.AOTfirstChild();
while(tet)
{
info(tet.treeNodeName());
detourAot(tet);
tet =tet.AOTnextSibling();
}
}

detourAot(t);
}
p.s. И еще как сделать чтоб он проходил например 20 или 30 итераций, чтоб не дебагер не использовать(АОТ очень долго обходит).
Старый 11.09.2005, 12:01   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Создайте новый проект, откройте его, и нажмите на кнопочку "Фильтр" (Ctrl+F3). Там укажите критерии, по которым Вы хотите отобрать элементы.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
За это сообщение автора поблагодарили: Gustav (5).
Старый 11.09.2005, 12:25   #3  
Focusnik is offline
Focusnik
Участник
 
11 / 10 (1) +
Регистрация: 25.08.2005
Адрес: Moskow
Да это я знаю, но мне нужно сделать это программно и чтоб выводило в инфо в виде дерева измененных объектов, при нажатии мышкой которого выплавал бы объект.
Старый 11.09.2005, 12:33   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Изначально опубликовано
Focusnik

подскажите пожалуйста класс, который используется при загрузке аксапты
Не совсем понятно, что имеется в виду. Если требуется выполнить какие-то действия при загрузке, то можно использовать методы startupPost классов Application и Info (системные переменные Appl и infolog соответственно). Учтите, что в трехзвенке Application используется на сервере.

Цитата:
Изначально опубликовано
Focusnik

у меня не получается вывести аот в виде дерева и поставить условия
Для вывода в виде дерева используйте SetPrefix (как пример можно посмотреть здесь (извиняюсь, что ссылаюсь на свое сообщение) )http://www.axforum.info/forums/showt...8130#post78130
Насчет условия тоже не очень понятно (if else для нужных свойств объекта).
Насчет итераций - поставьте счетчик, значение которого увиличивайте на каждой итерации. Как только его значение превысит некоторый предел вываливайтесь из процедуры
__________________
Axapta v.3.0 sp5 kr2
Старый 11.09.2005, 12:46   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
И еще. При обходе дерева лучше используйте класс TreeNodeIterator.

PHP код:
 void detourAot(treenode _treenode)
{
    
treeNode tet;
    
TreeNodeIterator  it;
    ;
    
it treenode.AOTIterator();
    
tet it.Next();
    while(
tet)
    {
        
info(tet.treeNodeName());
        
detourAot(tet);
        
tet =it.Next();
    }

__________________
Axapta v.3.0 sp5 kr2
Старый 11.09.2005, 13:37   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
или TreeNodeTraverser
Старый 11.09.2005, 15:25   #7  
Focusnik is offline
Focusnik
Участник
 
11 / 10 (1) +
Регистрация: 25.08.2005
Адрес: Moskow
Большое спасибо за подробный ответ. И позвольте спросить как сделать запрос чтоб он быстро работал(а то он аксапту вешает). Запрос выглядит так :
UtilElements UtilElements;
;
..........................
select firstonly UtilElements
where UtilElements.name == tet.treeNodeName();

if((UtilElements.createdBy == 'admin') && (UtilElements.createdDate > 01\09\2005))
{
.........................
//какие- то действия
}
заранее Благодарен.
Старый 11.09.2005, 18:46   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Мне кажется что вы не с той стороны ищите решение.

По-моему все-таки было бы быстрее сначала по UtilElements выбрать все измененные объекты, а затем по этому списку строить уже необходимое вам дерево.

Обратите внимание на совет Максима Горбунова. Для пробега по AOT при построении дерева проектов используется класс SysProjectFilterRunBase.
__________________
Axapta v.3.0 sp5 kr2
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Путь от узла дерева к корню Dronas DAX: Программирование 2 29.09.2008 08:44
Маленькое замечание про вывод в Excel NNB DAX: Программирование 11 23.06.2008 16:23
Вывод в Excel в определнный Worksheet... soin DAX: Программирование 1 22.10.2004 13:53
Excel быстрый вывод Кирилл DAX: Программирование 14 03.06.2004 12:23
Ограничить вывод записей master таблицы, наложением фильтра на detail таблицу Андре DAX: Программирование 12 03.02.2003 14:52

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

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

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