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;