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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.10.2008, 21:16   #1  
Kashesh is offline
Kashesh
Участник
 
29 / 10 (1) +
Регистрация: 08.12.2004
Адрес: Саров
Добрый день всем!

Может кто-нить знает и подскажет, а то я уже голову сломал..
В общем задача такая: нужно иметь возможность склонять данные, соответственно из любого поля на таблице иметь доступ к таблице склонения. Я хотел метод доступа запихнуть в контекстное меню, которое на гриде, но не нашел как оно формируется. Может кто знает как это сделать? Или может как-то можно иначе? А то кнопками не интересно совсем(

Спасибо.
Старый 22.10.2008, 08:51   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashesh Посмотреть сообщение
запихнуть в контекстное меню, которое на гриде, но не нашел как оно формируется. Может кто знает как это сделать?
Форма tutorial_PopupMenu
__________________
полезное на axForum, github, vk, coub.
Старый 22.10.2008, 12:03   #3  
Kashesh is offline
Kashesh
Участник
 
29 / 10 (1) +
Регистрация: 08.12.2004
Адрес: Саров
Спасибо за ответ! Но с созданием своего контекстного меню нет проблем, хотелось запихнуть процедуру именно в стандартное контекстное меню
Старый 23.10.2008, 11:46   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Перекрывайте не метод Context(), а showContextMenu()
<div class='XPPtop'>X++</div><div class='XPP'>
[color=:blue]public[/color] [color=:blue]int[/color] showContextMenu([color=:blue]int[/color] _menuHandle)
{
[color=:blue]int[/color] ret;
PopupMenu popupMenu = [color=:blue]new[/color] PopupMenu(this.hWnd());
[color=:blue]int[/color] item1;
[color=:blue]int[/color] item2;
[color=:blue]int[/color] item3;
[color=:blue]int[/color] item4;
[color=:blue]int[/color] item5;
;
WinAPI::destroyMenu(popupMenu.hMenu());
popupMenu.hMenu(_menuHandle);

item1 = popupMenu.insertItem([color=:red]"Menu item 1"[/color]);

item2 = popupMenu.insertItem([color=:red]"Menu item 2"[/color]);

item3 = popupMenu.insertItem([color=:red]"Menu item 3"[/color]);

item4 = popupMenu.insertItem([color=:red]"Menu item 4"[/color]);

item5 = popupMenu.insertItem([color=:red]"Menu item 5"[/color]);
ret = [color=:blue]super[/color](popupMenu.hMenu());

[color=:blue]switch[/color] (ret)
{
[color=:blue]case[/color] item1:
info([color=:red]"Item 1"[/color]);
[color=:blue]break[/color];
[color=:blue]case[/color] item2:
info([color=:red]"Item 2"[/color]);
[color=:blue]break[/color];
[color=:blue]case[/color] item3:
info([color=:red]"Item 3"[/color]);
[color=:blue]break[/color];
[color=:blue]case[/color] item4:
info([color=:red]"Item 4"[/color]);
[color=:blue]break[/color];
[color=:blue]case[/color] item5:
info([color=:red]"Item 5"[/color]);
[color=:blue]break[/color];
}
[color=:blue]return[/color] ret;
}</div>
__________________
Axapta v.3.0 sp5 kr2
Старый 23.10.2008, 13:05   #5  
Kashesh is offline
Kashesh
Участник
 
29 / 10 (1) +
Регистрация: 08.12.2004
Адрес: Саров
Цитата:
Перекрывайте не метод Context(), а showContextMenu()
Хорошая идея, помогло, спасибо, только как я понимаю это метод контрола? по крайней мере у меня он отрабатывает только на отдельном поле. А чтобы он работал на всей форме, никак нельзя?
Старый 23.10.2008, 14:57   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Либо перекрывать метод showContextMenu() на каждом контроле формы, либо писать свою внешнюю библиотеку (com или dll), в которых реализовывать перехват и распознавание контекстного меню и добавление нужных пунктов.
Последнее можно реализовать и без привлечения внешних обработок, но занятие будет достаточно трудоемкое.

По-моему, если речь не идет о добавлении для всех форм, первый пункт будет самым простым и быстрым.
__________________
Axapta v.3.0 sp5 kr2
Старый 24.10.2008, 12:09   #7  
Kashesh is offline
Kashesh
Участник
 
29 / 10 (1) +
Регистрация: 08.12.2004
Адрес: Саров
Можно оказывается перекрыть этот метод на табах, только мне так и не удалось вытащить поле, на котором стоит указатель. Может кто-нибудь знает как? Все контролы перекрывать очень не хочется, потому как форм оч много, да и полей тоже. Есть еще один метод - форма документооборота, туда без проблем можно добавить процедуру. Но это не так красиво, как с контекстным меню
 


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

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

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