Текущий архив: 2007.06.24;
Скачать: CL | DM;
Вниз
TDBGrid. Прошу прокомментировать ситуацию и дать совет. Найти похожие ветки
← →
Abcdef123 (2007-05-31 11:47) [0]Есть задача:Отобразить В DBGrid данные запроса из двух таблиц(то есть данные запроса могут быть использованы только на чтение) и на гриде еще добавить колонку типа CheckBox,чтобы пользователь с помощью этого CheckBox мог выбрать из всех записей только те, которые потом пойдут в следующую процедуру ("дальнейшую обработку").
Поскольку запрос только на чтение (что меня вполне устравивает, кроме дополнительно искусственно созданной колонки, конечно), то не знаю как реализовать процесс редактирования этой дополнительной колонки. И вообще, реально ли это как-то сделать в таком подходе, что я пытаюсь осуществить, ведь дополнительная проблема, что эта колонка-то не из реальной таблицы, а я пытаюсь использовать компонент DBGrid, который предназначен работать с базой данных?
PS. Для полноты информации - база данных Advantage, и компонент не TDBGRid, а TdxDBGrid (но в данной ситуации разница не существенна, я думаю)
Заранее спасибо.
← →
Плохиш © (2007-05-31 11:54) [1]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168
← →
Desdechado © (2007-05-31 14:05) [2]1. Всем колонкам ReadOnly, кроме с галкой
2. запретить обработку BeforeDelete, BeforeInsert
← →
Abcdef123 (2007-06-01 04:53) [3]To Desdechado [2]
Как я уже написала, данные идут из запроса, который содержит обращение к двум таблицам, поэтому изначально этот запрос не допускает ReadOnly=True, и когда я пытаюсь сделать "виртуальную" колонку сделать ReadOnly=False, то просто свойство это даже не меняется.
← →
SlymRO © (2007-06-01 05:11) [4]Оптионс include мультиселект
procedure TForm1.ContactGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with Sender as TDBGrid do
begin
if Column.FieldName<>"Selection" then
DefaultDrawColumnCell(Rect,DataCol,Column,State)
else begin
Canvas.Brush.Color:=Color;
Canvas.FillRect(Rect);
if SelectedRows.CurrentRowSelected then
CheckImgs.Draw(Canvas,Rect.Left,Rect.Top,1)//рисуем чекбоксы
else
CheckImgs.Draw(Canvas,Rect.Left,Rect.Top,0);//рисуем чекбоксы
end;
end;
end;
← →
Desdechado © (2007-06-01 12:53) [5]Abcdef123 (01.06.07 04:53) [3]
Колонку чего? Грида? Манипулируй полями датасета. И неплохо бы указать компоненты доступа к данным.
Страницы: 1 вся ветка
Текущий архив: 2007.06.24;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.125 c