FastReport DBCross View - PullRequest
       9

FastReport DBCross View

0 голосов
/ 14 августа 2011

У меня есть таблица DBCross, содержащая строковые и целочисленные данные
Я бы хотел изменить цвет строки в соответствии с определенным условием.

Ответы [ 2 ]

4 голосов
/ 14 августа 2011

Вы можете использовать событие PrintCell компонента DBCross и проверить значение

procedure DBCross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
begin
  if value < 1000 then           
    Memo.Color := clRed                                                       
end;

, поскольку вы можете видеть, что Memo - это просто TfrxMemoView, поэтому вы можете изменять любые свойства TfrxMemoView, такие как шрифт, стиль и цвет.

0 голосов
/ 15 августа 2011

Если вам нужно только изменить внешний вид шрифта и / или цвет фона ячейки в зависимости от конкретного условия, у вас есть более простой вариант использования функции выделения. Он расположен во 2-й строке быстрого значка с «ab» и ручкой с подсветкой. Вы можете указать условие и внешний вид и цвет фона, на которые вы хотите, чтобы эта ячейка изменилась.

Но для более сложных операций, таких как множественные условия и т. П., Ответ Мухаммеда будет самым надежным способом справиться с ними.

Для изменения всей строки на основе 1 значения у вас есть 2 варианта с использованием кода Мухаммеда:

1. Изменить

if value < 1000 then

до

if <DataSet."FieldName"> < 1000 then

, а затем назначил событие для каждой ячейки BeforePrint для этой строки.

2. Изменить

Memo.Color := red

до

begin 
  Cell1Memo.Color := clRed; 
  Cell2Memo.Color := clRed,
  ...
end;
...