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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.08.2008, 13:01   #2  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Shakr Посмотреть сообщение
Почему возник вопрос - недавно на этом форуме очень нелестно отзывались о программировании на формах, его нужно избегать? Сводить к минимуму? Есть какие-то правила хорошего тона?
Dev Duide:
Цитата:
Code on form methods

Only place code on a form when you cannot possibly place it on a class or on a table method. This means that you will not generally find X++ code here!

If you have to place code on a form, you should strive to place it on the data source. Only when you are absolutely certain that there is no other solution should you place code directly on controls.

Code on a form must be for the purpose of manipulating the form, including the form’s query.
Цитата:
Сообщение от Shakr Посмотреть сообщение
У меня 2 варианта: или перекрывать Lookup на контроле, который EDT (GroupFilter), или сделать несколько наследников EDT с нужными фильтрами и подсовывать их в GroupFilter.extendedDataType(). Можно ещё создать кучу контролов, каждый со своим EDT и отображать их в зависимости от выбранного Enum...

Какой способ правильней?
Третий: перекрыть лукап на поле датасорса (если поле связано с датасорсом) или второй (если нет). При этом код лукапа все равно вынести в статический метод таблицы, чтобы была возможность этим методом воспользоваться и для других форм. Примеров в АОТе куча.

Поясню. Делать разные ЕДТ и подсовывать их в рантайме - плохо. Вы совсем не любой алгоритм фильтрации сможете сделать через ЕДТ. Стоит ему стать сколько-нибудь сложным и упс, придется код писать. Да и в рантайме менять свойства объектов - тоже не лучший способ, в общем случае. Надо стараться такого избегать. Делать много контролов и управлять видимостью? К чему такие сложности? Плюс еще и придется при изменении квери датасорса анализировать, значение какого из фильтров брать. Зачем? А не на контроле - чтобы лукап срабатывал и в том случае, если это поле будет еще где-то на форме. На контролах вообще почти никогда не стоит ничего программировать.См. выше.

Последний раз редактировалось oip; 20.08.2008 в 15:36. Причина: Еще раз исправил и добавил.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Можно сделать lookup по полю типа Base Enum? Hidden DAX: Программирование 25 04.10.2017 13:06
gatesasbait: How to define a custom lookup form for an extended datatype Blog bot DAX Blogs 0 09.07.2008 22:05
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
multiselect при lookup-е значения типа enum nebula DAX: Программирование 4 14.12.2006 18:56
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

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

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

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