|
![]() |
#1 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: kitty (1). |
![]() |
#2 |
Участник
|
Большое спасибо!
Жаль, что, по-видимому, стандартных путей нет, хотя, вроде, задача по идее простая очень. Правда, вариант in.dc выглядит очень привлекательным. Последний раз редактировалось kitty; 23.04.2013 в 18:04. |
|
![]() |
#3 |
Участник
|
Решение от in.dc работает.
Вот только вопрос: Большинство требований можно реализоватьиспользуя достаточно стандартные подходы в аксапте. Если нужно так изобретательно подходить к решению этой задачи, то, подозреваю, что ее архитектурно нужно по-другому как-то изначально решать? Какие есть варианты? |
|
![]() |
#4 |
Участник
|
Архитектурно все правильно.
Это же лукап значения. Обычный лукап вызывается на контроле (например часто это строковое поле редактирования). Контрол, очевидно, ждет _одно_ значение. Поэтому и дело лукапа - вернуть _одно_ значение. Не дело лукапа возвращать массивы данных, структуры и т.д. Он сделан для возврата _одного_ значения, для _одного_ контрола. |
|
![]() |
#5 |
Участник
|
В Map AddressMap_RU методы lookup* (например, lookupTown) как раз получают значения других полей из выбранной записи.
Хотя Romb совершенно верно заметил, что лукап архитектурно это выбор одного поля. Уже по этому выбранному полю должен быть механизм получения остальных полей. То есть, таблица, из которой выбираются должна иметь ключевое поле. При его выборе срабатывает метод изменения значения поля в таблице назначения и уже в том методе можно заполнять другие поля. Если ориентироваться только на текущую запись в лукапе, то имеем проблему: при выборе из лукапа все работает, а если пользователь ввел вручную (или скопировал из буфера обмена), то логика не отрабатывает. |
|