报表生成器FastReport .Net如何存储和加载报告
FastReport .Net是适用于Windows Forms,ASP.NET,MVC和.NET Core的全功能报表解决方案。它可以在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。
在FastReport .NET 2021.1的新版本中,我们实现了对.NET 5的支持。添加了新条形码-Deutsce Post Leitcode。将RTF转换为报告对象的算法已得到显着改进。并且还添加了用于转换数字的新功能。欢迎下载体验。(点击下方按钮下载)
立即点击下载FastReport.NET v2021.1最新版
Fastreport.NET在线购买价更低,专享85折起!赶紧加入购物清单吧!
存储和加载报告
您可以用以下方式存储报告:
方法描述:
以网页形式
我们之前看过的典型场景,使用了这个方法。报告存储在WebReport组件的ReportResourceString属性中。这个方法有以下优点和缺点。
这是一种最简单的FastReport.Net工作方式。
报表模板存储在Web表单的ViewState中。它将在客户端传输。如果报表的大小很大,可能会减慢工作速度。
此方法与 ""Medium Trust "模式不兼容。
报表加载是自动进行的。
在.FRX文件中
此方法假设报表存储在一个特殊文件夹 "App_Data "中的文件中。要做到这一点。
运行报表设计器:
创建一个报表并将其保存到.FRX文件中。
在 "解决方案资源管理器 "中,选择 "App_Data "文件夹,右键点击,选择 "添加|现有项目… "项。选择刚才保存的报表文件。
选择WebReport组件,清除其ReportResourceString属性。
选择 "ReportFile "属性,调用其编辑器,从 "App_Data "文件夹中选择报表。
此方法有以下利弊:
报表不会被传送到客户端机器上。
此方法与 "中等信任 "模式不兼容。
报表加载是自动进行的。
也可以通过WebReport.StartReport事件处理程序加载报表。
StartReport事件处理程序中的代码示例
(sender as WebReport).Report.Load(this.Server.MapPath("~/App_Data/report.frx"))。作为一个C#/VB.NET类
在这个方法中,你把报表作为一个类来处理。要做到这一点:
设计你的报表并保存在.cs/.vb文件中。要做到这一点,在 "保存 "对话框中选择 “文件类型”。文件类型可能是.cs或.vb–这取决于报表中的脚本语言(可以在 "Report|Options… "菜单中更改)。
将该文件包含在你的项目中。最好把它保存在 "App_Code "文件夹中。
清除WebReport组件的ReportResourceString和ReportFile属性。
这个方法有以下优点和缺点:
你可以把报表作为一个普通的类来使用;
你可以在Visual Studio中调试报表;
这是在 "Medium Trust "模式下使用报表的唯一方法。
你不能编辑这样的报表。要做到这一点,你需要原始的.FRX文件。
要使用报表,请创建WebReport.StartReport事件处理程序。在这个处理程序中,你应该做以下事情:
创建一个报表类的实例。
注册数据。
将报表设置为WebReport组件的Report属性。
StartReport事件处理程序的例子。
SimpleListReport report = new SimpleListReport();
report.RegisterDataAsp(your_data, "your_data_name");
WebReport1.Report = report;
准备好的报告可以通过WebReport.StartReport事件处理程序使用WebReport.ReportDone属性来显示。在StartReport中加载和显示准备好的报告的示例代码。
(sender as WebReport).Report.LoadPrepared(this.Server.MapPath("~/App_Data/Prepared.fpx"));
(sender as WebReport).ReportDone = true;
注册数据
如果使用 WebReport 组件的 "智能标签 "菜单选择数据源,则不需要手动注册数据。在这种情况下,FastReport.Net将数据源的名称存储在WebReport组件的ReportDataSources属性中。
如果您不想使用这种方法注册数据,您需要手动注册。可以通过使用WebReport组件的StartReport事件来完成。在这个事件处理程序中,你可以调用报表的RegisterData和RegisterDataAsp方法。可以通过WebReport.Report属性来访问报表。
webReport1.Report.RegisterData(myDataSet).
在本节中阅读更多关于注册数据的内容。
向报表参数传递一个值
要向报表参数传递一个值,请使用Report对象的SetParameterValue方法。该方法在 "使用Windows.Forms工作 "一章中有详细介绍。
要在 ASP.NET 中使用该方法,需要为 WebReport 组件的 StartReport 事件创建事件处理程序。可以通过WebReport访问报表。
Report属性:
webReport1.Report.SetParameterValue(“MyParam”, 10);