Форум: "Базы";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c