首页 > 解决方案 > fastreport 根据数据隐藏 DataBand 中的元素

问题描述

在使用 fastreport 设计的报告中,我们希望根据给定的数据(例如布尔属性)在数据带中隐藏或显示图像对象。

我知道我可以使用 C# 设置对象的可见性,方法是按对象的名称对对象进行寻址,但是在 DataBand 中,具有名称的对象存在多次。

标签: c#.netfastreport

解决方案


如果我正确理解您的问题,下一个方法可能会有所帮助。当我想根据数据操作数据带中的对象时,我经常使用这种方法。只需将您的逻辑放在OnBeforePrintFastReport 编辑器中给定波段的事件中。每个对象(包括 TfrxPictureView)在 FastReport 编辑器中都有一个名称,您可以通过该名称访问它。

下一个示例正在运行:

帕斯卡脚本

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
   Picture1.Visible := (<reportdataset."YourField"> = 'YourValue');                                                 
end;

C++ 脚本

void MasterData1OnBeforePrint(TfrxComponent Sender)
{
   Picture1.Visible = (<reportdataset."YourField"> == "YourValue");                                                 
}

C# 脚本

void MasterData1OnBeforePrint(object sender, EventArgs e)
{
   Picture1.Visible = ((string)Report.GetColumnValue("reportdataset.YourField") == "YourValue");                                                 
}

推荐阅读