c# - fastreport 根据数据隐藏 DataBand 中的元素
问题描述
在使用 fastreport 设计的报告中,我们希望根据给定的数据(例如布尔属性)在数据带中隐藏或显示图像对象。
我知道我可以使用 C# 设置对象的可见性,方法是按对象的名称对对象进行寻址,但是在 DataBand 中,具有名称的对象存在多次。
解决方案
如果我正确理解您的问题,下一个方法可能会有所帮助。当我想根据数据操作数据带中的对象时,我经常使用这种方法。只需将您的逻辑放在OnBeforePrint
FastReport 编辑器中给定波段的事件中。每个对象(包括 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");
}
推荐阅读
- gatsby - 盖茨比中的全局 scss
- html - MS Teams - TaskModule 关闭窗口
- typo3 - 新闻记录在一段时间后消失而不清除缓存
- node.js - 在瀑布对话框中,返回提示时出现“未处理的错误:TypeError:将循环结构转换为 JSON”
- c# - WCF:客户端 > 端点 > 错误:工作 URL 上的 URI 无效
- postgresql - Postgres - 不同的查询减慢超过 500 万个数据
- python - 聚类具有相似模式的向量
- c# - 没有“IEnumerable”类型的 ViewData 项
'那有关键的研究' - events - Corda 状态事件:事件有顺序吗?
- wix - WIX 使用 32 位 MSI 从注册表中读取 64 位路径