Показать сообщение отдельно
Старый 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 все поля, которые используются дисплей методом.
Приемущество:Выбираются только те поля, которые нужно для работы, то есть для таблиц с большим кол-вом полей получим экономию.
Недостаток:Немного усложняет процесс разработки, потому что разработчики должны проследить и добавить все необходимые поля. Также, если в дальнейшем кто-то изменит дисплей метод, нет гарантии, что лукап будет работать правильно.


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

Спасибо