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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.06.2012, 06:49   #1  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
url открывающий форму
На форме нужен url откроющий форму репозитария, вместо обычной кнопки.

- посмотрел SysHelp, повторил код оттуда
PHP код:
'<A href="MenuItemDisplay://Address" title="MenuItemDisplay://Address">Открыть форму</A>' 
, ссылка получилась, но она при нажатии не открывает ничиго
- решив использовать helpGenerator.showURL(... в обработчике нажатия на контрол, не смог отобразить контрол(допустим staticText) в виде url-ссылки

так как-же? =)
Старый 04.06.2012, 08:11   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
См. SysHelp::onEvent_onclick() и SysHelp::processStandardLink()
Старый 05.06.2012, 10:36   #3  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
еще варианты есть? почему то не хочется юзать ActiveXcontrol.
Методы SysHelp посмотрел - понял что программно вызывается MenuItem, спасибо.
Старый 05.06.2012, 11:20   #4  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Если вдруг используете Tabax, то может это подойдет:
AxPath
Старый 05.06.2012, 11:30   #5  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
нене нафиг AxPath)

Пока остановился на этом, незнаю насколько логично и правильно:
-создал HTML контрол
-в Init формы закинул(setText()) в контрол html-код из первого сообщения
-там же в Init выставил контролу свойство .helpText() == "MenuItemDisplay://Address" (ну т.е. то же значение что и в setText())
-в методе контрола mouseDown() получаю .helpText() ну и открываю как посоветовали

Проблема в том, что в любом месте на контроле нажимая мышкой, отработает mouseDown(), а не конкретно на надписи. Пока что уменьшаю размеры html-контрола, чтобы кокраз в него и попадали)
Старый 07.06.2012, 15:38   #6  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Lightbulb
Цитата:
Сообщение от Player1 Посмотреть сообщение
Проблема в том, что в любом месте на контроле нажимая мышкой, отработает mouseDown(), а не конкретно на надписи. Пока что уменьшаю размеры html-контрола, чтобы кокраз в него и попадали)
Я так понимаю, что проблема в определении элемента, вызвавшего событие?

Предлагаю попробовать такой код в обработчике события:
X++:
    COM activeElement = HTML.activeElement();
    ;

    if (activeElement.toString() == "DispHTMLInputElement")
    {
        switch (activeElement.type())
        {
            /// тут есть некоторая хитрость - для checkbox ловится событие по onClick, для остальных onKeyUp и onMouseUp
        }
    }
__________________
Axapta non erubescit
Старый 07.06.2012, 16:43   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Как-то все сложно.

Создай ActiveX Microsoft Web Browser.
Перекройте у этого контрола событие BeforeNavigate2()

Показывать ссылку можно так
X++:
SysHelp::showHTML(html, '<A href="MenuItemDisplay://InventTable" title="MenuItemDisplay://InventTable">Справочник номенклатур</A>');
где html - имя контрола ActiveX

В обработчик onEvent_BeforeNavigate2() вставьте такой вызов
X++:
// Fired before navigate occurs in the given WebBrowser (window or frameset element). The processing of this navigation may be modified.
void onEvent_BeforeNavigate2(COM _pDisp, COMVariant _URL, COMVariant _Flags, COMVariant _TargetFrameName, COMVariant _PostData, COMVariant _Headers, COMVariant _Cancel)
{
    ;
    
    SysHelp::onEvent_BeforeNavigate2(html, _pDisp, _URL, _Flags, _TargetFrameName, _PostData, _Headers, _Cancel);
}
Вот, собственно, и все
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: gl00mie (5), kpoxa (1).
Теги
syshelp, url, законченный пример, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Arijit Basu: AX Email & URL Validation Blog bot DAX Blogs 3 10.12.2012 15:07
daxmusings: Enterprise Portal Web URL Lookup Error Blog bot DAX Blogs 0 25.01.2012 03:12
emeadaxsupport: Documentation "How to: Add a URL Drill Through Action" confusing Blog bot DAX Blogs 0 25.02.2011 16:11
Malaysia: Download file from URL Blog bot DAX Blogs 0 10.12.2008 20:05

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

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

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