23.04.2013, 16:16 | #1 |
Участник
|
Как из лукапа получить значение
TableA. Есть таблица, которая описывает маршруты RouteId,
TableB. Есть таблица, которая связывает маршруты с покупателями RouteId, CustId, Weekday. Есть строка заказа. На ней есть поле RouteId. При нажатии на это поле должен выпадать лукап, где можно выбрать строку из таблицы TableB и заполнится поле RouteId в заказе. Вопрос: Нужно при выборе прользователем из лукапа строки не только подставить RouteId из TableB в заказ, но также запомнить соответствующий день недели , чтобы на его основании пересчитать дату доставки заказа. Как узнать какую строку пользователь выбрал в лукапе? Последний раз редактировалось kitty; 23.04.2013 в 16:39. |
|
23.04.2013, 16:37 | #2 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: kitty (1). |
23.04.2013, 17:54 | #3 |
Участник
|
Большое спасибо!
Жаль, что, по-видимому, стандартных путей нет, хотя, вроде, задача по идее простая очень. Правда, вариант in.dc выглядит очень привлекательным. Последний раз редактировалось kitty; 23.04.2013 в 18:04. |
|
24.04.2013, 04:00 | #4 |
Участник
|
Решение от in.dc работает.
Вот только вопрос: Большинство требований можно реализоватьиспользуя достаточно стандартные подходы в аксапте. Если нужно так изобретательно подходить к решению этой задачи, то, подозреваю, что ее архитектурно нужно по-другому как-то изначально решать? Какие есть варианты? |
|
24.04.2013, 05:36 | #5 |
Участник
|
Архитектурно все правильно.
Это же лукап значения. Обычный лукап вызывается на контроле (например часто это строковое поле редактирования). Контрол, очевидно, ждет _одно_ значение. Поэтому и дело лукапа - вернуть _одно_ значение. Не дело лукапа возвращать массивы данных, структуры и т.д. Он сделан для возврата _одного_ значения, для _одного_ контрола. |
|
24.04.2013, 10:28 | #6 |
Участник
|
В Map AddressMap_RU методы lookup* (например, lookupTown) как раз получают значения других полей из выбранной записи.
Хотя Romb совершенно верно заметил, что лукап архитектурно это выбор одного поля. Уже по этому выбранному полю должен быть механизм получения остальных полей. То есть, таблица, из которой выбираются должна иметь ключевое поле. При его выборе срабатывает метод изменения значения поля в таблице назначения и уже в том методе можно заполнять другие поля. Если ориентироваться только на текущую запись в лукапе, то имеем проблему: при выборе из лукапа все работает, а если пользователь ввел вручную (или скопировал из буфера обмена), то логика не отрабатывает. |
|