Раскраска ячеек в отчете

отредактировано 21:35 Раздел: FastReport VCL
Здравствуйте.
Создаю отчет в виде таблицы, который заполняю данными из массива (все как в примере Demos\BCB Demos\PrintArray). В качестве источника данных использую TfrxUserDataSet. Все работает, проблема в одном - как раскрасить ячейки, в которых данные выводятся, в зависимости от того, какие это данные. Как раскрашивать в принципе понимаю - в событии OnBeforePrint задаю нужный цвет ячейки. Непонятно, как сделать проверку данных - например если значение в ячейке больше нуля, сделать ее зеленой - как сделать эту проверку на ноль?

Комментарии

  • gpigpi
    отредактировано 21:35
    procedure Memo3OnAfterData(Sender: TfrxComponent);
    begin
      if Value = 5 then Memo3.Color := clRed else Memo3.Color := clNone;                                                                                                                                                        
    end;
    
  • отредактировано November 2023

    попробуем развернуть данный вопрос:

    1) правильно ли я понимаю, что если у меня в поле значение цвета, то можно задать это значение цвету поля?

    TfrxMemoView(Sender).Color := Value;

    2) и как прикрутить такой обработчик к динамически создаваемому полю?

    aBand := AReport.FindObject(ABandName) as TfrxBand; 
    aMemo := TfrxMemoView.Create(ABand);
    
  • И сам же отвечу. В разделе Code отчета создаем обработчик:

    procedure color_AfterData(Sender: TfrxComponent);
    begin
     TfrxMemoView(Sender).Color := Value;
     TfrxMemoView(Sender).Text := '';               
    end;
    

    в программе заводим поле:

    aBand := AReport.FindObject(ABandName) as TfrxBand; 
    aMemo := TfrxMemoView.Create(ABand);
    if  aMemo.DataField = 'color'  then
      aMemo.OnAfterData := 'color_AfterData';
    


Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.