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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.05.2022, 13:23   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,669 / 2588 (94) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
? Dax 2012 получить путь к Treenode (Toolbar, tabax)
Привет всем.

А кто-нибудь делал такую штуку:
Есть окно AOT с одним открытым элементом, например полученным через "Открыть новое окно".
В ax4 его заголовок был например таким
"\Data dictionary\Tables\SalesTable"

а в 2012-й все скупо:
"AOT - \Data dictionary\Tables"

соответственно в 4-ке всякие самописные оконные менеджеры (DEV_ToolBar, Tabax, Sidax) корректно распознавали вид окна и в ярлычке окна было видно название объекта AOT (в данном примере стояло имя таблички SalesTable).

А в 12-ке (и кажется в 2009-й то же самое) это не работает.

Не очень удобно пользоваться. Ярлычки окон есть, имени объекта в тексте ярлыка нет.

Кто-нибудь смог в окне AOT добраться до корневого узла и выцепить его имя ?

Например, есть hwnd окошка AOT. Можно по нему как-то вытащить текст первого узла в дереве элементов ?

Последний раз редактировалось Logger; 17.05.2022 в 13:47.
Старый 17.05.2022, 14:01   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1225 (43) ++++++++
Регистрация: 11.04.2008
А так не работает?

TreeNode treeNode = new LastAotSelection().first();
Старый 17.05.2022, 16:49   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,669 / 2588 (94) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Работает.
Но проблема не в этом.

Работает тулбар. Перебирает окошки в аксапте, чтоб обновить список ярлыков в панели. Открыто 5 окон AOT. В каждом своя табличка открыта.
Раньше в ax4 в заголовке каждого окна был полный путь до таблички, в общем, было x++ имя таблички в названии окна.
(например
"\Data dictionary\Tables\SalesTable"
"\Data dictionary\Tables\SalesTable_RU"
"\Data dictionary\Tables\SalesTable_W"
"\Data dictionary\Tables\PurchTable"
...
)

И оно было доступно тулбару. Удобно. Видишь ярлыки в панели и видно какой ярлык к какому объекту X++ ведет.

А теперь в заголовке все 5 разных окон имеют один и тот же текст:
"AOT - \Data dictionary\Tables"

Соответственно ярлычки в тулбаре все выглядят одинаково. Не различить их.
Вот задача понять по окошку AOT - какой там объект спрятан. Хотя бы его название как строку вытащить.
Старый 17.05.2022, 17:04   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,669 / 2588 (94) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
В случае 2012-й аксапты проблемные места обвел красной рамочкой.
Наверно так будет понятно в чем проблема.

В случае ax2012 все заголовки окон AOT одинаковые. Поэтому и в тулбаре ярлыки для них одинаковые.

Как бы вытащить текст из корня дерева с объектом AOT чтобы сделать в тулбаре нормальные ярлыки с информативным текстом как в ax4

Иногда при рефакторинге приходится много объектов смотреть и сверять. Начинается путаница.

Нажмите на изображение для увеличения
Название: ax4_Toolbar.png
Просмотров: 5
Размер:	67.8 Кб
ID:	13381
Нажмите на изображение для увеличения
Название: ax2012_Toolbar.png
Просмотров: 6
Размер:	79.2 Кб
ID:	13382

Последний раз редактировалось Logger; 17.05.2022 в 17:08.
Старый 17.05.2022, 17:22   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,669 / 2588 (94) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Посмотрел структуру в Spy++
Особой разницы не видно.
Просто разные Caption у окон в случае ax4 и ax2012

Название: Spy_ax4.png
Просмотров: 65

Размер: 12.7 Кб
Название: Spy_ax2012.png
Просмотров: 65

Размер: 16.6 Кб
Старый 18.05.2022, 00:59   #6  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
210 / 188 (7) ++++++
Регистрация: 23.10.2012
Привет.
Есть там наименование, только смотреть его у ребёнка нужно:

Ну и не новость, через простые WinAPI::findWindowEx и WinApi::getWindowText оно не выводится.

Видно, что это структура, она реализует интерфейс IAccessible.
Получение объекта реализующего данный интерфейс можно осуществить через функцию AccessibleObjectFromWindow библиотеки oleacc.
Ну а там уже вызвать get_accName
На шарпе проверил - работает.

GUID интерфейса 618736E0-3C3D-11CF-810C-00AA00389B71

Последний раз редактировалось Товарищ ♂uatr; 18.05.2022 в 01:24.
За это сообщение автора поблагодарили: Logger (93).
Теги
aot, sidax, tabax, toolbar

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX 2012 и шаблоны проектирования db DAX: Программирование 31 24.07.2014 12:40
DAX: Enabling Power View on Multidimensional Models for Microsoft Dynamics AX 2012 R2 Blog bot DAX Blogs 0 27.06.2013 06:16
DAX: How to gain additional value from the Microsoft application platform with Microsoft Dynamics AX 2012 R2 Blog bot DAX Blogs 3 21.06.2013 15:16
dax-lessons: Display Barcode in SSRS report [Dynamics AX 2012, X++] Blog bot DAX Blogs 0 15.05.2012 18:11
dax-lessons: Get list of printers in Dynamics AX 2012 for SSRS reports [Using X++] Blog bot DAX Blogs 0 14.05.2012 23:13
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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