FastReport DBCross View

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

2 ответа

Решение

Вы можете использовать событие 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, такие как шрифт, стиль и цвет.

Если вам нужно только изменить внешний вид шрифта и / или цвет фона ячейки в зависимости от конкретного условия, у вас есть более простой вариант использования функции выделения. Он расположен во 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;
Другие вопросы по тегам