You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FastReport中为表格特定行着色并保留DBGrid周末行颜色

在FastReport中保留周末行着色效果的实现方法

操作步骤:

  • 打开FastReport报表设计器,找到绑定数据的MasterData带区(即展示表格数据行的区域)
  • 给MasterData带区添加OnBeforePrint事件处理函数
  • 在事件中根据星期字段判断是否为周末,设置对应背景色

代码实现:

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  // 注意:原DBGrid代码中'Friyday'是拼写错误,需修正为'Friday'才能正常判断
  if (ADOQ1.FieldByName('days').AsString = 'Friday') 
     OR (ADOQ1.FieldByName('days').AsString = 'Saturday') then
  begin
    // 设置周末行背景色,与DBGrid中使用的颜色保持一致
    MasterData1.Color := $0053FFFF;
  end
  else
  begin
    // 非周末行恢复默认背景色
    MasterData1.Color := clWhite;
  end;
end;

补充说明:

如果不需要整行着色,仅需单个单元格(比如日期列)变色,可给对应报表文本组件添加OnBeforePrint事件,设置组件的背景色即可,示例如下:

procedure TextDaysOnBeforePrint(Sender: TfrxComponent);
begin
  if (ADOQ1.FieldByName('days').AsString = 'Friday') 
     OR (ADOQ1.FieldByName('days').AsString = 'Saturday') then
  begin
    TfrxText(Sender).Brush.Color := $0053FFFF;
  end
  else
  begin
    TfrxText(Sender).Brush.Color := clWhite;
  end;
end;

内容的提问来源于stack exchange,提问作者fateh djelti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:52:15