FastReport中国社区FastReport联系电话 联系电话:023-68661681

如何使用URL将参数传递给报表

来源:   发布时间:2018-01-17   浏览:5823次

使用网页上的报表时,你往往需要传输任何参数的值。例如,这可以是用于过滤列表或客户信息的数据。当你使用报表调用Web表单时,使用URL(Universal Resource Locator,通用资源定位器)传递参数会更方便也更简单。

我们来看一个最简单的例子。在报表模板中,有两个参数:字符串类型的参数1,和参数2:

如何使用URL将参数传递给报表

你必须使用URL传递这些参数的值。

创建一个Web应用程序ASP.Net WebForms。我们在页面上放置一个WebReport组件。将创建的报表模板添加到项目。右键点击文件夹App_Data并选择“Add”-> “Existing Item ....”。然后在硬盘上找到报表文件。并转到C#代码页。首先我们添加库:

using FastReport.Web;
using FastReport;

我使用了加载页面事件,因为在这个阶段报表还没有显示:

namespace URLParams
{
 public partial class About : Page
 {
 protected void Page_Load(object sender, EventArgs e)
 {
//Get parameters from URL
 string param1 = Request.QueryString["param1"];
 string param2 = Request.QueryString["param2"];
//Load report fil into WebReport object 
 
 WebReport1.ReportFile = "App_Data/URLParams.frx";
//Set value to report parameters
 WebReport1.Report.SetParameterValue("Param1", param1);
 WebReport1.Report.SetParameterValue("Param2", param2);
 }
 }
}

请注意,参数名称与报表模板中的参数名称完全匹配:

WebReport1.Report.SetParameterValue("Param1", param1);

该URL本身如下所示:

http://localhost:51838/About?param1=Hello%20World!&param2=Good%20job!

Request.QueryString(); 函数按名称查找参数并返回其值。

第二个选项,不保存项目中的报表模板: 

protected void Page_Load(object sender, EventArgs e)
 {
 string param1 = Request.QueryString["param1"];
 string param2 = Request.QueryString["param2"];
 Report report = new Report();
 report.Load("J:/Program Files (x86)/FastReports/FastReport.Net/Demos/Reports/URLParams.frx");
 report.SetParameterValue("Param1", param1);
 report.SetParameterValue("Param2", param2);
 WebReport1.Report = report;
}

在这里,我们创建一个报表对象,加载一个模板并分配参数。之后,我们将报表对象分配给网页报表对象。容我再啰嗦一遍。请注意确保WebReport的ReportResourceString属性为空。

两种方法都会指向同一个结果:

如何使用URL将参数传递给报表

就是这样,只需要几行代码,你就可以在报表中使用URL中传递的参数。


产品介绍 | 下载试用 | 优惠活动 | 在线客服 | 联系Elyn

 

推荐阅读

FastReport 2018 最新版本下载
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/1987.html

联系我们
  • 重庆总部 023-68661681
购买
  • sales@evget.com
合作
  • business@evget.com


在线
客服
微信
QQ 电话
023-68661681
返回
顶部