Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
9-1154696293
Xerx
2006-08-04 16:58
2007.06.24
Искажения при вращении в Ortho в OpenGL


2-1180530707
Ezorcist
2007-05-30 17:11
2007.06.24
Удаление из Tlist


9-1152798901
VolanD666
2006-07-13 17:55
2007.06.24
Правильно ли я делаю?


2-1180960375
UMU
2007-06-04 16:32
2007.06.24
Запись в ini файл


2-1180876453
koha
2007-06-03 17:14
2007.06.24
Определение состояния процесса




   Наверх