Главная страница
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.033 c
2-1194519342
allucard
2007-11-08 13:55
2007.12.02
Работа с массивом


6-1175008173
paradox01
2007-03-27 19:09
2007.12.02
Сокеты, сообщение об ошибке


15-1193835464
Layner
2007-10-31 15:57
2007.12.02
Подскажите программу по разработке обложки DVD коробки...


11-1173462386
Dy1
2007-03-09 20:46
2007.12.02
как сделать прозрачный pbitmap? Маска и DrawTransparent работают


15-1193828749
Vadiiim
2007-10-31 14:05
2007.12.02
Preview форматов в Windows