Автор: Blindfold
Дата сообщения: 03.02.2009 10:54
Не подскажете ли как можно объеденить функционал PopupEdit'а и LookupComboBox'а?
Задача в целом следующая: Есть у меня некий датасет с полем, содержащем ссылки на значени в другой таблице. Для редактирования значений этого поля простой DBLookupComboBox не подходит, так как таблица шибко большая и в списке оказывается несколько десятков тысяч элементов, и найти нужный среди них становится весьма не тривиальной задачей. Проблему я решил с помошью DBPopupEdit'а. Теперь вместо простого списка выпадает формочка с гридом и парой полей для фильтрации. Остается только одна проблема - DBPopupEdit натравливается на то самое поле, в котром хранятся id'шники из связанной таблицы, соответственно в этом поле на формочке отображаются id'шники вместо наименования (т.е. нужен Lookup).
Эту проблему я решил создав еще один датасет и связав его с первым. Таким образом DBPopupEdit отображает данные из этого подчиненного датасета, а все манипуляции с выбором данных делаются в основном датасете в обработчике событий OnCloseUp и OnInitPopup. Залипень, конечно, не красивая, но работает. Достаточно дешовое решение.
Проблема в том, что мне нужно теперь то-же самое сделать в VerticalGrid'е, а там, ясно дело, нельзя привязать одно поле к другому датасету. А связывать таблицы в датасете я по объективным причинам не могу. Все что я могу получить это то что имею сейчас - id записи из подчиненной таблицы.
Как бы так попроще это реализовать? Может сталкивался уже кто с такой проблемой?