想要在FastReport .Net中隐藏没有数据的报表页面?教你两种方法
报表生成器FastReport .NET是适用于.NET Core 3,ASP.NET,MVC和Windows窗体的全功能报告库。使用FastReport .NET,您可以创建独立于应用程序的.NET报告。
近日,FastReport .Net升级到v2020.3版,在此版本中,添加了瑞士QR码,允许配置打印机托盘以打印报告的最后一页,不再支持.NET Framework 2.0,同时修复了多个Bug问题,感兴趣的朋友可点击下方按钮下载最新版。
数据源并不总是包含数据。而且,当生成报告时,即使数据源为空,也将至少以标题显示页面
例如,报表生成器Stimulsoft Reports开发人员建议使用条件工具隐藏页面。设置条件以检查源中的记录数,可以指定页面显示组件选项。一个好的解决方案,足够简单。
本文的主题与任何报告生成器都相关,因此让我们看看在FastReport.Net中执行此操作的方法。
数据弯曲具有PrintIfDatasourceEmpty属性,默认情况下为false。这意味着如果没有数据,则不会显示该波段。但是该页面仍然显示给用户,因为它包含数据标题或页面标题。因此,如果带区为空,我们需要编写一个简单的脚本来隐藏页面。
有两种选择:
①检查数据带中的空白数据源。为此,请使用报表的StartPage事件页:
private void Page2_StartPage(object sender, EventArgs e) { if (Data2.DataSource.RowCount == 0) Page2.Visible = false; }
但是在这种情况下,我们需要为报表启用DoublePass选项。事实是,我们只能在页面形成阶段用数据检查带的无效性,我们需要将其隐藏。DoublePass选项在生成报告时包括两次通过。在第二遍中,已经知道该区域中的数据源为空,并且在构建页面之前将其隐藏。
②不需要报表的往返。我们只需要为事件StartReport报表对象添加一个处理程序:
private void _StartReport(object sender, EventArgs e) { DataSourceBase ds = Report.GetDataSource("Category"); if (!ds.HasMoreRows) { Page2.Visible = false; } }
在这种情况下,我们直接检查报表的数据源,表类别。然后,我们可以在开始创建报告页面之前查明源是否为空。
还想要更多吗?您可以点击阅读【FastReport 报表2019最新资源盘点】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入FastReport技术交流群(783996712),我们很高兴为您提供查询和咨询。