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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2006, 09:20   #1  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Поиск по АОТ, найденные объекты помещаются в проект
В форме поиска по АОТ добавлена кнопка, при нажатии на которую создается проект и в него помещаются все найденные объекты. Весь код сделан на форме.

Доработка и исправление багов приветствуется.
Вложения
Тип файла: zip SysAotFind.zip (18.5 Кб, 392 просмотров)

Последний раз редактировалось raz; 30.11.2006 в 09:15. Причина: обновил код
За это сообщение автора поблагодарили: mazzy (16), rumpleteazer (1), Logger (5), Raven Melancholic (2), oip (5), gl00mie (1).
Старый 12.03.2017, 13:45   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Спасибо за проект.
Хотя сообщению уже 10 лет, как раз понадобилось им воспользоваться (встретил ссылку на сообщение в другой недавней теме).
Есть небольшое замечание (возможно у Вас уже все переделано или используется что-то другое, замечание относится ко вложенному проекту). В создаваемый проект не попадают джобы и маркоопределения. Происходит это из-за того, что в методе searchNode всегда добавляется родительский элемент:
X++:
setFinded.add(_treeNode.AOTparent().treeNodePath());
Для большинства мест, которые найдены, такой способ корректен, но джобы и макроопределения сами являются объектами AOT, для них нужен не родитель, а они сами. Приведенный код я у себя изменил на:
X++:
    utilNode = _treeNode;
    while (utilNode && !sysTreeNode::isApplObject(utilNode))
    {
        utilNode = utilNode.aotParent();
    }
 
    if (utilNode)
    {
        setFinded.add(utilNode.treeNodePath());
    }
За это сообщение автора поблагодарили: raz (10), Logger (3), rumpleteazer (1).
Старый 15.04.2019, 17:24   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Только сейчас наткнулся.
Если в подобных утилитах в коде используется
X++:
xUtilElements::findTreeNode()
с параметром по умолчанию
X++:
boolean _pseudoUtilElements = false
то результат может быть неверным. Найденный узел может не помещаться в проект.

Это происходит в таких случаях :
1. Найденный узел - системный класс (Global, Application, ClassFactory, etc)
2. Корневой элемент не в том слое, что найденный. Например была табличка на sys слое. Создали на usr слое индекс. Ищем его и после того как нашли в окне поиска , жмем добавить найденные узлы в проект.

Во всех этих случаях вызов xUtilElements::findTreeNode не найдет табличку, так как будет фильтровать еще и по слою, а сама табличка в этом случае не редактировалась (только дочерний узел). Поэтому в созданном проекте таблички не будет.

Чтобы избежать этих эффектов нужно вызов xUtilElements::findTreeNode делать с параметром _pseudoUtilElements = true

Тогда все ок.
Пакость глюка в том что проявляется не очень часто и может тихо гадить незаметно.

P.S.
Замечен на ax4
На других версиях не проверял.

Последний раз редактировалось Logger; 15.04.2019 в 17:33.
За это сообщение автора поблагодарили: raz (10).
Теги
download, законченный пример, полезное, axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Объекты АОТ в проекте Paul_ST DAX: Программирование 15 05.09.2018 12:28
АОТ-объекты в Excel экспорт. Dima_Dima DAX: Программирование 11 08.01.2009 18:23
Существует ли способ импортировать, проект из 4ки в 3ку? Вата DAX: Программирование 3 30.10.2008 09:59
Поиск в Grid по полю DataMethod Tiruvileijadal' DAX: Программирование 20 14.05.2007 13:37
Перекрестные ссылки\Чем используется, найденные объекты помещаются в проект raz DAX: База знаний и проекты 0 29.11.2006 11:46

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

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

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