Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

ExpressQuantumGrid 5 .. доступ к ячейке   Найти похожие ветки 

 
barakuda ©   (2007-07-21 23:23) [0]

Уважаемые мастера

как в ExpressQuantumGrid 5 закрасить другим цветом ячейку по условью?

например чтобы все ячейки со словом "резерв" были зелёные

заранее благодарен...


 
turbouser ©   (2007-07-22 18:46) [1]

У колонки есть событие OnCustomDrawCell его и надо обрабатывать.
Выглядеть это будет примерно так:
procedure TForm1._Column_For_Draw_CustomDrawCell(Sender: TcxCustomGridTableView;
 ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: boolean);
begin
 ADone := True;
// Если имя поля = "а" и текст в текущей ячейке = "резерв" то закрашиваем
 with TcxGridDBColumn(AViewInfo.Item).DataBinding.Field do
 begin
   if (FieldName = "a") and (AViewInfo.Text = "резерв") then
     ACanvas.Brush.Color := clGreen;
   ACanvas.FillRect(AViewInfo.ClientBounds);
   ACanvas.DrawText(AViewInfo.Text,
     AViewInfo.TextAreaBounds, cxAlignHCenter);
 end;
end;


 
ari_9   (2007-07-25 15:33) [2]

подниму этот вопрос

есть ли более "прямой" способ при отрисовке ExpressQuantumGrid обратиться к значению не того поля таблицы, которое в данной ячейке, а другого, недели этот:

cxGridDBColumn(ACellViewInfo.Item).DataBinding.Field.DataSet.FieldByName("***ДРУ ГОЕ ПОЛЕ***").Value

?


 
turbouser ©   (2007-07-25 15:52) [3]


> ari_9   (25.07.07 15:33) [2]

Вот так:
AViewInfo.GridRecord.DisplayTexts[index]
только index колонки надо будет вычислять, т.к.
при перемещении ее юзером индекс изменится.


 
turbouser ©   (2007-07-25 15:56) [4]


> ari_9   (25.07.07 15:33) [2]

И, к стати, ...Field.DataSet.FieldByName("***ДРУ ГОЕ ПОЛЕ***").Value
выдаст неправильное значение, т.к. не обязательно текущая запись
прорисовывается.


 
ari_9   (2007-07-25 16:07) [5]

хорошо, тогда поставим вопрос иначе

в cxGridDBTableView есть поле B, которое не отображается (Visible = False). в зависимости от его значения должен меняться стиль соответствующей ячейки поля А. как это возможно сделать ?


 
turbouser ©   (2007-07-25 17:04) [6]


> ari_9   (25.07.07 16:07) [5]
>
> хорошо, тогда поставим вопрос иначе

Не проверял, но должно подойти:
TcxDataController(Sender.Controller).Values[AViewInfo.GridRecord.RecordIndex,_ин декс_скрытой_ячейки_];
т.е. это и будет значение поля в скрытой ячейке


 
Lacmus ©   (2007-07-25 17:50) [7]


procedure TForm2.cxGrid1DBTableView1FIRST_NAMECustomDrawCell(
 Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
 AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
 if aViewInfo.GridRecord.Values[cxGrid1DBTableView1FIRST_NAME.Index] = "Debra" then
   ACanvas.Brush.Color := clRed
end;


 
ari_9   (2007-07-25 21:16) [8]

спасибо, помогло


 
barakuda ©   (2007-07-25 22:43) [9]

Lacmus, спасибо - ОЧЕНЬ помогло



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
3-1185457647
Квэнди
2007-07-26 17:47
2007.12.02
Триггер в MySql


4-1179242016
Calibr
2007-05-15 19:13
2007.12.02
Реестр


2-1194511180
Ega23
2007-11-08 11:39
2007.12.02
Отловить момент активизации фрейма


15-1193625473
Фар-юзер
2007-10-29 05:37
2007.12.02
FAR открыл исходники !


15-1193496195
inside_out
2007-10-27 18:43
2007.12.02
Реализация сети Кохоннена в Дельфи