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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.03.2005, 07:46   #1  
brm is offline
brm
Участник
 
11 / 10 (1) +
Регистрация: 08.02.2005
Адрес: Владивосток
? Как сделать свою Web-lookup форму?
Изучаю Web-разработку в Axapta, уже дошел до ручки...

Хоть убей не могу понять, как сделать свою web-lookup форму, по аналогии с созданием обычных lookup-форм (SysTableLookup и т.д.). Мне нужно при лукапе в поле выбора номенклатуры показывать lookup-форму где показывались бы текущие остатки по номенклатурам.
Может есть у кого похожий пример для Web?

И еще, не могу понять мозгом - точки останова на методах Web-контролов работать не будут вообще никогда? Скажем, если у меня есть WebEdit, то в методе lookup ставить breakpoint бесполезно, все равно дебаггер не отловит (хотя lookup-форма в браузере откроется), это нормально? Когда вообще выполняется этот метод для Web-контрола?

Ох, как я буду рад, если мне кто-нибудь поможет...
Старый 23.03.2005, 09:01   #2  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Полностью свой веб-лукап делать геморно, зато можно воспользоваться существующим:
Посмотрите на этот кусок кода например:
PHP код:
client static void WebEmplLookup()
{
    
webTableLookup          webTableLookup;
    
Query                   query;
    
QueryBuildDataSource    qbd;
    ;
    
webTableLookup webTableLookup::newParameters(tableNum(EmplTable));
    
query = new Query();
    
qbd query.addDataSource(tablenum(EmplTable));
    
qbd.addSortField(fieldnum(EmplTableName));

    
webTableLookup.parmQuery(query);
    
webTableLookup.addLookupfield(fieldNum(EmplTableEmplId));
    
webTableLookup.addLookupfield(fieldNum(EmplTableName));
    
webTableLookup.selectField(fieldNum(EmplTableEmplId));

    
webTableLookup.run();

На филде пишем
<имя класса>::WebEmplLookup();

И радуемся.
Т.е. смысл в том что можно в лукап передавать свой Query
Не знаю, поможет вам это или нет.

Точки останова в вебе работают, но не всегда.
Необходимые условия:
1. "Толстый" пользователь, под которым поставили точку останова, должен совпадать с "тонким", под которым зашли на страницу
2. Никаких терминал-клиентов, все должно происходить на одной машине
3. Как я понимаю, веб-сервер должен работать на той же машине (т.е. надо развернуть сайт у себя или работать сразу на сервере)
4. Нельзя указывать пароль в ком-коннекторе
Старый 23.03.2005, 10:33   #3  
brm is offline
brm
Участник
 
11 / 10 (1) +
Регистрация: 08.02.2005
Адрес: Владивосток
Спасибо за совет!
Prof, огромное спасибо за ответ, мне что-то такое и нужно было, но ничего не работает... :-(

Я сделал такой же метод. Перекрыл lookup на Web-контроле.
Теперь у меня открывается пустая lookup форма, а точка останова в методе не срабатывает. Т.е. метод не отработал. А точки останова на lookup web-контрола не работают и подавно...

Вообще, странно. Точки останова у меня работают везде (т.е. все требования настройки по Web-отладке у меня соблюдены), кроме методов на Web-контролах.

Что-то не так в датском королевстве...
Старый 23.03.2005, 10:43   #4  
brm is offline
brm
Участник
 
11 / 10 (1) +
Регистрация: 08.02.2005
Адрес: Владивосток
Скажу даже больше
Скажу даже больше...

У меня открывается все же lookup-форма, но не понять откуда.
Я жму кнопку лукапа для поля с EDT ItemId и открывается простая форма на основе InventTable.

Черти, что...
Старый 23.03.2005, 10:47   #5  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Попробуйте перекрывать лукап все-таки не на контролах а на полях датасорса. Во всяком случае мы делали всегда так и все работало.
Методы на контролах действительно могут не отрабатывать вообще (это ж веб )
Старый 23.03.2005, 11:08   #6  
brm is offline
brm
Участник
 
11 / 10 (1) +
Регистрация: 08.02.2005
Адрес: Владивосток
Мистика
Да, у меня тоже есть какие-то сомнения - как через web вообще возможна работа breakpoints... Забуду про это, хотя зачем тогда нужны такие методы, которые не понять - выполняются, не выполняются... Тогда получается, что, например, все validate() на Web-полях просто так...

Творится вообще мистика. На датасорсе перекрываю методы lookup и performFormLookup. НИЧЕГО В НИХ НЕ МЕНЯЮ (оставляю вызовы super()) и lookup перестает работать вообще. Открывается пустая форма... А точки останова так и не работают на DataSource. Хотя срабатывает точка останова например, в методе show() мастер класса для Web-проекта...

Удаляю lookup методы (фактически убираю перекрытие методов) - появляется lookup номенклатуры. Жуть...
Старый 23.03.2005, 11:53   #7  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Возможно в методе show у вас один пользователь, а когда юзаете функциональность - уже другой. Ну это только предположение.

Ну а мистика...в жизни всегда есть место для мистики
Хотя я больше склонен думать что чудес все-таки не бывает и здесь имеет место ошибка.
Старый 23.03.2005, 11:58   #8  
brm is offline
brm
Участник
 
11 / 10 (1) +
Регистрация: 08.02.2005
Адрес: Владивосток
Да нет, пользователь один и тот же...

Prof, а у вас случайно нет тестового Web проекта с самодельной lookup формой?
Старый 23.03.2005, 13:03   #9  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Боюсь что этот проект тестовым не назовешь
В общем, нет.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов формы из lookup форму vitaly85 DAX: Программирование 7 24.01.2008 18:12
Inside Dynamics AX 4.0: The Web Framework Blog bot DAX Blogs 0 25.10.2007 03:04
Pokluda: Outbound web service (AIF) Blog bot DAX Blogs 0 28.10.2006 17:43
Передача параметров в Web форму Asking questions DAX: Программирование 0 12.09.2006 10:57
Как получить значения поля из lookup метода в WEB Dronas DAX: Программирование 5 13.01.2005 10:17

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

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

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