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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.06.2004, 10:48   #1  
Gad is offline
Gad
Участник
 
136 / 18 (1) ++
Регистрация: 21.05.2003
Адрес: Москва
AOTname
Доброго времени суток. Есть следующий код:

static void Job62(Args _args)
{
TreeNode treeNode = infolog.findNode('\\Forms');
;

treeNode = treeNode.AOTfirstChild();

while (treeNode)
{
if (! treeNode.AOTObjectNode())
continue;

print "treeNodeName: " + treeNode.treeNodeName();
print "AOTName:" + treeNode.AOTName();

treeNode = treeNode.AOTnextSibling();

pause;
}
}

В момент вызова treeNode.AOTName() axa вываливается с crash detection. Усли же таким же образом пролистывать ветку классов, то все нормально (\\Classes). Метод же treeNode.treeNodeName() работает нормально в обоихх случаях. Кто-нибудь с таким сталкивался и почему это происходит? Axapta 3.0 SP1
Старый 02.06.2004, 13:28   #2  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
Это ошибка в кернеле, будет исправлена не ранее версии 4.0 или 3.0 SP4

Кроме того, лучше бегать по AOT с использованием итераторов.
Например, так:

PHP код:
static void CopyOfaaa_CrashTest(Args _args)
{
    
TreeNode treeNode infolog.findNode('\\Forms');
    
TreeNodeIterator tni;
    ;

    
tni treeNode.AOTiterator();

    
treeNode =  tni.next();


    while (
treeNode)
    {

     print 
"treeNodeName: "treeNode.treeNodeName();
     print 
"AOTName:"treeNode.AOTname();

     
treeNode tni.next();

    }

    
pause;

За это сообщение автора поблагодарили: Logger (1).
Старый 12.01.2006, 11:23   #3  
Antant is offline
Antant
Участник
 
82 / 17 (1) ++
Регистрация: 03.12.2005
Через итератор при выборе форм аксапта все равно вылетает. Кто-нибудь знает как это можно обойти?
Старый 12.01.2006, 14:17   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,663 / 1172 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Если тебе нужен просто список всех существующих форм, то это можно получить примерно так:

select name
from UtilIdElements
group by name
where UtilIdElements.recordType == utilElementType::Form

Т.е. в AXAPTA есть служебная таблица UtilIdElements, которая содержит список вообще всех объектов на всех слоях (отсюда group by, чтобы убрать дубли)

А вот если нужны еще какие-то реквизиты форм, то тут не знаю...
Старый 16.01.2006, 15:56   #5  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
Натыкался на такую проблему, пришлось пользоваться следующим методом treeNode.treeNodeName().
PHP код:
   TreeNode  treeNode;
   
TreeNodeIterator it;
    ;
    
treeNode TreeNode::findNode("\\Forms");
    
it treenode.AOTiterator();
    
treeNode it.next();
    while(
treeNode)
    {
       
treeNode.AOTrestore();
       
info::messageWinAddLine(treeNode.treeNodeName());
       
treeNode it.next();
    } 
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Перечень пунктов меню и их свойств Sequel DAX: Программирование 5 09.08.2012 13:39

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

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

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