fastreport 根据数据隐藏 DataBand 中的元素

fastreport Hide Elements in DataBand depending on Data

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

我知道我可以通过按名称寻址对象来使用 C# 设置对象的可见性,但在 DataBand 中,具有该名称的对象存在多次。

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

下一个示例正在运行:

Pascal 脚本

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");                                                 
}