|
|
#1 |
|
Участник
|
lookupReference и Base Enum
Ax2012 R2
Создал новую таблицу-справочник, у которой первичный ключ RecId, а в качестве альтернативного ключа выступает Base Enum. Сделал EDT по полю RecId и настроил ReferenceTable. Добавляю этот EDT на форму диалога (RunBase) и вижу раскрывающийся список со значениями Base Enum из записей таблицы Вроде бы, все хорошо. Но, как оказалось, "есть нюанс" (с) ![]() 1. Перекрыть для такого объекта метод lookup или lookupReference - невозможно. По той причине, что для отображения Base Enum используется объект ComboBox. А у него просто нет метода lookup. Нечего перекрывать 2. Метод modified перекрыть можно. Но для ComboBox он срабатывает при выходе из объекта. Т.е. надо выбрать и перейти на другой объект формы. Т.е. перекрывать в этом случае надо метод SelectionChange В общем, использование Base Enum как альтернативного ключа блокирует некоторые привычные функции. Или я чего-то не знаю, и эти "фичи" можно обойти без перехода на символьные поля в справочнике? Меня интересует можно ли в такой ситуации сделать фильтрацию элементов выпадающего списка по некоторому условию? Конкретно для формы диалога я выкрутился просто. Положил на форму обычное символьное поле (String50) и для него уже можно перекрыть lookup и modified. Но это похоже на "закат солнца вручную". Да и при использовании в Grid будут сложности
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
|
|
#2 |
|
Участник
|
Попробовать использовать \Classes\SysLookup\lookupEnum
Ну добавив кастомизации на выбрасывание запрещенных значений. Ну или написать какой нить свой лукап. |
|
|
|
|
#4 |
|
Участник
|
Проблема в том, что все эти варианты предполагают, что у объекта есть метод Lookup. Ну, чтобы было чего перекрывать. А для Base Enum автоматически подставляется ComboBox, у которого такого метода нет. Нечего перекрывать. Некуда "встроится"
По сути, единственный вариант - это сделать в справочнике символьное поле, куда копировать значение Label соответствующего элемента Enum и это поле сделать альтернативным ключом. Тогда все вопросы решаются. Останется только вопрос модификации элементов Enum. Но тут уж ничего не поделаешь
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
|
|
#5 |
|
Участник
|
\Classes\DialogEnumComboBox не подойдет?
|
|
|
|
|
#6 |
|
Участник
|
Для Grid это не работает
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|