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

Результаты опроса: Как вы используете класс SysTableLookup у себя в приложении?
Использую, в том числе для отображения дисплей методов 7 53.85%
Использую без отображения дисплей методов 6 46.15%
Не использую (Всегда пишу лукапы через АОТ формы) 0 0%
Голосовавшие: 13. Вы ещё не голосовали в этом опросе

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2009, 23:28   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
SysTableLookup - вопрос к пользователям этого класса
Создам опрос, чтобы собрать данные по ходу.
Но проблему опишу здесь:

Вступление:
Класс SysTableLookup умеет работать с дисплей методами. При добавлении в лукап хотя бы одного дисплей метода, для query, формируемой внутри, не формируется fieldList. Это значит, что запрос выбирает из базы данных все поля, даже те, которые не отображаются в лукапе.
Сделано это с тем, чтобы обеспечить правильную работу лукапа в этом случае. Если бы QueryBuildFieldList был сформирован только по, собственно, полям лукапа, то поля, используемые дисплей методом, не выбрались бы, и он отображал бы не то, что должен.
Приемущество: простота использования разработчиками.
Недостаток: Выбирает все поля в случае использования дисплей методов.

Альтернативно, можно формировать queryBuildFieldList только по тем полям, которые мы сами добавили в Query в перекрытом методе lookup. При этом, если хочется использовать дисплей метод, нужно добавить в query все поля, которые используются дисплей методом.
Приемущество:Выбираются только те поля, которые нужно для работы, то есть для таблиц с большим кол-вом полей получим экономию.
Недостаток:Немного усложняет процесс разработки, потому что разработчики должны проследить и добавить все необходимые поля. Также, если в дальнейшем кто-то изменит дисплей метод, нет гарантии, что лукап будет работать правильно.


Хотелось бы послушать, кто какой вариант предпочитает/использует, как пишут собственнов коде, т.д.

Спасибо
Старый 31.01.2009, 00:43   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,319 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Использую 2-й вариант. Причем с доработкой с указанием группы полей на таблице (метод, которому скармливается название группы полей). Т.е. разработчик при построении лукапа задает группу полей (аналог группы полей AutoLookup), а код ориентируется на эту группу полей. Произошли изменения? Добавь новое поле в группу. А переименования полей код вообще не трогают.

Система все-таки в первую очередь делается для пользователей, а не как среда разработки - поэтому ответил, что использую дисплей-методы.

Форму предпочитаю не делать, если можно обойтись SysTableLookup. Это лишний объект в АОТ, "за ним надо отдельно ухаживать" (с) VALU.

PS. Очень не хватает в этом смысле метода на Global, который бы вернул истину, если поле входит в группу. Конструкции с DictTable больно громоздкие. А еще лучше иметь метод, который просто вернет контейнер id полей, входящих в группу.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 31.01.2009 в 00:50.
За это сообщение автора поблагодарили: kashperuk (3).
Старый 01.02.2009, 18:22   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Для обратной совместимости оставьте все как было, добавьте параметр: sysTableLookup.parmDontSelectAllFieldsOnDisplayMethods(). Все довольны.
За это сообщение автора поблагодарили: kashperuk (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: Custom label on SysTableLookup column Blog bot DAX Blogs 0 09.07.2008 22:05
Вопрос по sysContextMenu HorrR DAX: Программирование 24 29.02.2008 18:26
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
передача курсора в два класса kitty DAX: Программирование 3 09.08.2006 13:21
Запустить метод класса loka DAX: Программирование 2 13.03.2006 15:40

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

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

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