Текущий архив: 2007.12.23;
Скачать: CL | DM;
Вниззависимые ListSource для Lookup компонент. как лучше ? (+) Найти похожие ветки
← →
ari_9 (2007-08-14 14:33) [0]использую QuantumGrid, но это несущественно
пример. на форме таблица (cxGrid), допустим, документов. для каждого из которых может быть выбран отдел и сотрудник. при этом справочник сотрудников ссылается на отделы и при выборе сотрудника, естественно, должны быть отображены только сотрудники отдела
имеем три источника данных, пусть Projects, Departments и Managers. Departments и Managers - наши справочники. для того, чтобы выбрать в списке можно было только менеджера текущего отдела, нужно по AfterScroll и AfterEdit Projects переформировывать Managers, подставляя туда в качестве параметра текущий DepartmentID
вопрос в чем. у нас одновременно в таблице видно много проектов. и для каждого из них в cxDBLookupCombobox отображается выбранный сотрудник. значит ListSource этого комобокса не может быть Managers, так как он в любой момент времени содержит только сотрудников отдела из текущей строки Projects
как красиво поступать в таком случае ? делать два справочника Managers, один из которых по всей таблице, а второй по текущему DepartmentID и в момент начала редактирования подменять компоненту ListSource ? отказываться от DB компонента и ставить туда просто cxLookupCombobox, вручную формируя его список по AfterScroll и AfterEdit ? переписать onDrawCell ?
← →
ari_9 (2007-08-14 14:42) [1]немного заговорился
вместо cxDBLookupCombobox следует читать cxLookupCombobox,
а вместо cxLookupCombobox просто cxCombobox
← →
Sergey13 © (2007-08-14 14:59) [2]> [0] ari_9 (14.08.07 14:33)
> документов. для каждого из которых может быть выбран отдел и сотрудник
> при этом справочник сотрудников ссылается на отделы
Какой тогда смысл вставлять в документ отдел?
Для отображения в лукап полях поле должно ссылаться на нефильтруемый и несвязанный источник данных.
← →
ari_9 (2007-08-14 15:11) [3]допустим, по логике приложения может быть выбран только отдел, а сотрудник не выбран. то есть вот эту задачу решает Иванов из отдела качества, а эту мы точно не знаем кто, но кто-то из проектного отдела
я не пишу конкретный пример из своей предметной области, так как там придется слишком много расписывать и объяснять
← →
ari_9 (2007-08-14 15:17) [4]как я подобное делал раньше - в ячейке отображалось калькулируемое поле, в котором в виде одной строки была информаци и об отделе, и о сотруднике. столбец таблицы, естественно, только для чтения. по Ellipse Button ячейки открывалось модальное окошко выбора отдела-сотрудника, гле было два связаных мастер-детали датасета и два грида. мне кажется это слишком громоздко и есть какой-то более простой и красивый вариант
← →
stanislav © (2007-08-14 16:52) [5]ari_9 (14.08.07 15:17) [4]
Данную задачу может решать DBGridEh, стандартными для него методами.
Подключается 2 DataSource один отфильтрован, другой нет.
С cxGrid ом не разбирался возможно он тоже может.
Страницы: 1 вся ветка
Текущий архив: 2007.12.23;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.042 c