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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.09.2003, 12:58   #1  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
LookUp форма и параметры
Добрый день!

Создал собственную LookUp форму, которую вызываю с помощью EDT и его свойства FormHelp. Для логики работы данной формы необходимо получить дополнительную информацию.

Вопросы
- Можно ли передать какие-то либо параметры в LookUp форму? или
- Можно ли из LookUp формы получить доступ к объектам/свойствам/методам формы из которой LookUp форма была вызвана.

PS
Форма из которой вызывается LookUp форма является диалогом
Переопределять методы (lookup method) для объектов диалога не умею

рекомендации mazzy читал, рассматриваю как вариант
Цитата:
Изначально опубликовано mazzy
Если нужно переопределить методы или сделать что либо нетривиальное - используй обычные формы вместо диалога. Это нагляднее и понятнее.
...
Если уж очень хочется это сделать именно в диалоге, то разберись с семейством классов FormBuild*. Я бы не рекомендовал
PHP код:
void clicked()
{
    
dialog                      dialog = new dialog('');
    
FormBuildGroupControl       groupCtrl ;
    
FormBuildStringControl      stringCtrl ;
    ;
    
super();

    
groupCtrl  dialog.mainFormGroup();
    
//groupCtrl.frameType(FormFrameType::Edged3D);

    
stringCtrl groupCtrl.addControl(FormControlType::String'');
    
stringCtrl.extendedDataType(extendedTypeNum(DVG_StringLookUp));    // EDT with FormHelp
    
stringCtrl.lookupButton(2); //Always

    
dialog.run();


__________________
Дмитрий Гришин
Старый 16.09.2003, 13:41   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Можно ли передать какие-то либо параметры в LookUp форму?
Можно. Но для этого эту форму надо создать "ручками". Вот пример:
\Forms\smmContactPerson\Designs\Design\[Group:Main]\[Tab:Tab]\[TabPage:Overview]\[Grid:Grid]\StringEdit:ContactPerson_ContactPersonParentId\Methods\lookup

Цитата:
Можно ли из LookUp формы получить доступ к объектам/свойствам/методам формы из которой LookUp форма была вызвана
Можно. Форма имеет element.args(), к которым можно обратиться, к примеру, из метода init().
Вот пример того, как параметры можно обработать: \Classes\SysTableLookup\getCallerStringControl. В этом примере методу передаются аргументы из вызванной lookup-формы, а он определяет вызвавшую форму и вызвавший контрол. А вот пример lookup-формы, в которой все это реализовано: DimensionsLookup.
Старый 16.09.2003, 23:08   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
EVGL, огромное тебе спасибо за твои толковые ответы. Я на полном серьезе.

Можно маленькую просьбу?
Если это возможно, давай ссылки на документацию по тем вопросам, которые в документации описаны. Согласись тебе было бы несложно указать, что в документации на слово lookup много чего написано. Такие ссылки можно давать дополнительно к твоим содержательным ответам. Как считаешь?
Старый 17.09.2003, 10:33   #4  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
EVGL, спасибо!

Цитата:
Изначально опубликовано EVGL
Можно. Но для этого эту форму надо создать "ручками".
Да, это понятно, но так как у меня форма, из которой вызывается lookup форма является стандартым диалогом, то этот способ не подходит, т.к. надо переопределять метод lookup для контрола в форме диалога...

Цитата:
Изначально опубликовано EVGL
Можно. Форма имеет element.args(), к которым можно обратиться, к примеру, из метода init().
С помощью element.args() в lookup форме мне удалось достучаться до класса dialog, который строит диалог форму и вызывает lookup форму... Теперь осталось сделать наследник класса диалога, снабдить его соответствующими методами и свойствами и дергать их из lookup формы для построения самой lookup формы.
Думаю, это выход в моем случае... сейчас буду пробовать...

Цитата:
Изначально опубликовано EVGL
А вот пример lookup-формы, в которой все это реализовано: DimensionsLookup.
Смотрел форму... видел комментарии в коде... офигел
__________________
Дмитрий Гришин
Старый 17.09.2003, 13:04   #5  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Если это возможно, давай ссылки на документацию по тем вопросам, которые в документации описаны. Согласись тебе было бы несложно указать, что в документации на слово lookup много чего написано.
Мне, к сожалению, сложно, так как я эту документацию раз в полгода открываю. По большому счету, проштудировать документацию - первое дело, а уж потом надо на форум идти и спрашивать. Тогда какой смысл ссылаться теперь с форума на документацию? Надо уж тогда просто писать: "Иди и читай документацию. Непонятно - тогда спрашивай." Другое дело - всякие апокрифы типа "белых бумаг", все источники знать невозможно.

В данном случае на заданный вопрос документация разработчика ответа не дает.
Старый 18.09.2003, 00:43   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано EVGL
Мне, к сожалению, сложно, так как я эту документацию раз в полгода открываю.
Даже руководство разработчика и бест практис? Не верю!

Цитата:
Изначально опубликовано EVGL
По большому счету, проштудировать документацию - первое дело, а уж потом надо на форум идти и спрашивать. Тогда какой смысл ссылаться теперь с форума на документацию?
Дело в том, что большинство просто не знают что искать в этой документации. Уверен, что если подсказать ЧТО надо искать, то будут штудировать. Ссылка с форума на три буквы действительно малопродуктивна. Поэтому надо давать более глубокую ссылку

Цитата:
Изначально опубликовано EVGL
В данном случае на заданный вопрос документация разработчика ответа не дает.
Как это не дает? А так?:
Цитата:
Изначально опубликовано SnowMan
Создал собственную LookUp форму, которую вызываю с помощью EDT и его свойства FormHelp.
- Можно ли передать какие-то либо параметры в LookUp форму? или
- Можно ли из LookUp формы получить доступ к объектам/свойствам/методам формы из которой LookUp форма была вызвана.
Любая, в том числе Lookup-форма, форма получает параметры в переменной args.
О args можно почитать в AOT \ System Documentation \ Classes \ Args
Посмотреть примеры использования можно в руководстве разработчика по ключевому слову args.

среди параметров и методов args есть caller(). Он дает ссылку на вызвавший объект.
Передавать параметры можно также через этот же args.
См. руководство разработчика "The lookup facility: creating you own lookup forms"
Но для того, чтобы передать свои нестандартные параметры придется программировать. Лучше этого не делать. Гораздо эффективнее разобраться со стандартно-передаваемыми параметрами.

Пример использования параметров в lookup-формах можно посмотреть в форме LedgerAccountLookup, AssetBookIdRangeLookup, AssetBookIdRangeLookup и т.п.
Старый 18.09.2003, 10:36   #7  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано mazzy
Как это не дает? А так?:
Полностью согласен с утверждением, что задача разработчика, а тем более начинающего, найти ответ на возникающий вопрос в документации, в примерах кода и только потом, если ответ не найден, тревожить людей знающих... Без навыков эффективной работы с документацией для него не будет будущего...
Все это я проделал, изучал документацию и доступный код, НО ни там ни там не нашел ответ на поставленный вопрос...
поэтому я согласен с EVGL, что
Цитата:
Изначально опубликовано EVGL
В данном случае на заданный вопрос документация разработчика ответа не дает.
Вопрос звучал так:
Есть стандартный диалог, в нем стандартный контрол с лукап кнопкой, созданный на основе стандартного EDT со свойсвом FormHelp, в котором указана нестандартная лукап форма... В связи с тем, что диалог стандартный, я не могу вмешаться в процесс вызова лукап формы и заполнить для нее Args... Хотел бы да не могу... Жаль... И ответа в документации не нашел...

Отсюда вижу два выхода:
- первый: создать свою форму вместо диалога и там менять лукап метод как мне вздумается и как описано в документации
- второй: создать наскледника от класса диалог, дополнительно снабдив его требуемыми свойсвами/методами. При создании диалога заполнять эти свойства, а из лукап формы получать их значения.

Я предпочел второй вариант, как менее затратный...
__________________
Дмитрий Гришин
Старый 18.09.2003, 16:04   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
как скажете.
спасибо за ответ.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Web форма пустой lookup IvanS DAX: Программирование 16 05.05.2008 14:58
Стандартная lookup-форма. Что это? Lucky13 DAX: Программирование 4 25.10.2006 17:03
Как передать параметры из одной web форма в другую dtsymbal DAX: Программирование 9 28.02.2006 10:31
Как вызывается lookup-форма InventLocationIdLookup из InventJournalTransfer? brm DAX: Программирование 9 09.02.2005 15:37
Произвольная Lookup форма Maxim Gorbunov DAX: База знаний и проекты 0 30.11.2001 21:59
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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