24.11.2015, 15:42 | #1 |
Участник
|
Фильтрация по виртуальным полям
Есть таблица с заказами SalesTable
Есть строки маршрута RouteLine (RouteLine.salesId == salesTable.salesId) Есть маршрут RouteTable (RouteTable.routeId == RouteLine.RouteId) В таблице RouteTable есть поле водитель Driver Это поле нужно разместить на форму SalesTable с возможностью дальнейшей фильтрации по полю RouteTable.Driver Как-то можно это реализовать такую фильтрацию без добавления поля "водитель" в таблицу SalesTable |
|
24.11.2015, 16:24 | #2 |
северный Будда
|
Эм... а зачем вам добавлять поле водитель в таблицу заказов???
У вас есть чёткая связь заказа на продажу и маршрута. Надо всего-то добавить два указанных датасоурса в нужную форму и вынести поле с датасоурса маршрута на форму
__________________
С уважением, Вячеслав |
|
25.11.2015, 06:38 | #3 |
Мрачный тип
|
Добавить и сохранить для юзерастов расширенный фильтр с join'ом RouteLine и RouteTable.
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
25.11.2015, 11:19 | #4 |
MCITP
|
Цитата:
Вариант pitersky гораздо более разумный. Единственное, что джойнить вероятно придётся по аутерджоин (я ж так понимаю маршрут может быть может не быть) что накладывает некоторые ограничения на возможности фильтрации. Плюс на форме надо будет перекрыть методы проверок/обновлений датасорсов RouteLine и RouteTable что-бы они по факту ничего не делали при работает с головной записью SalesTable.
__________________
Zhirenkov Vitaly |
|
25.11.2015, 12:13 | #5 |
северный Будда
|
К слову, автор - вы уверены, что указанная вами связь однозначна? Я имею в виду - что один заказ будет отгружаться строго в рамках одной строки одного маршрута
__________________
С уважением, Вячеслав |
|
26.11.2015, 09:18 | #6 |
Участник
|
|
|
26.11.2015, 10:08 | #7 |
Участник
|
Выскажу своё мнение. По моему личному опыту, данный фильтр используется постоянно. Фильтрация будет идти по связке четырёх больших таблиц. Поэтому, экономить на "лишнем" поле не стоит. Если заказ отгружается в одном рейсе - добавить номер рейса и водителя в шапку заказа. Если несколькими - добавить в строки заказа. Тогда фильтр затронет максимум 2 таблицы. Понятно, что это затронет методы обновления таблицы строк рейсов, ну, что поделать. Либо заставлять пользователей (программно лучше) ограничивать фильтр по дате рейса (например, текущий день +/- 5 дней), тогда фильтр и по 4 таблицам будет шустро работать.
|
|
|
За это сообщение автора поблагодарили: Logger (3). |