← 返回所有博客文章

关键字:参数,报表参数,参数面板,页面报表,自定义,Viewer,WebViewer

ActiveReports提供了WinForms/ASP.NET/WPF/Silverlight平台中使用的报表查看器控件,这些控件都内置了报表参数面板,用户可以通过参数面板来过滤报表数据。ActiveReports在为用户提供默认的参数面板的同时,还为用户提供了自定义参数面板的支持,用户可以根据需要实现任何布局的参数面板。本文主要介绍如何自定义参数面板。

第一步:在Visual Studio中创建一个ASP.NET应用程序

第二步:在项目中添加ActiveReports的RDL报表

image

第三步:为报表添加报表参数,在ActiveReports报表资源管理器中的参数节点下添加以下信息的报表参数

1003_ActiveReports报表参数

第四步:为报表添加数据源,在资源管理器窗口中的数据源节点中添加NWind_CHS的数据源

1004_ActiveReports报表数据源

第五步:在 NWind_CHS中添加数据集,并在数据集的参数中添加如图所示的参数

1005_ActiveReports报表数据集

第六步:在报表中添加一个Table控件,并设置各列所绑定的数据源字段

1006_ActiveReports报表设计界面

 

第七步:在Default页面中添加自定义的参数面板,本文实现的参数面板中提供了一个用户数据产品类别名称的文本框;然后再Default中添加ActiveReports的Web查看器控件 WebViewer,ViewType设置的是Flash

1007_ActiveReports报表查看页面

 

第八步:在Default中添加【运行报表】按钮的Click事件处理程序,在Click事件中将文本框中输入的值传递给报表

 

  1:         protected void btnRun_Click(object sender, EventArgs e)
  2:         {

3: GrapeCity.ActiveReports.PageReport report1 =

new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("PageReport1.rdlx")));

  4:             report1.Report.ReportParameters[0].DefaultValue.Values.Add(txtParam.Text);
  5: 
  6:             WebViewer1.Report = report1;
  7:         }

 

以上查询语句中的参数占位符 ? 是 ACCESS 数据库中写法,如果使用 SQL SERVER 数据库需要将 ? 修改为 @参数名称;使用 Oracle 数据库对于的应该修改�� :参数名称

比如在数据集对话框的参数页面中定义了一个参数,名称为:Param1,值为=[@ID]
SQL SERVER 对应的 SQL 查询语句为 SELECT ID,Col1,Col2,Col3 FROM Table1 WHERE ID = @Param1
Oracle 对应的 SQL 查询语句为 SELECT ID,Col1,Col2,Col3 FROM Table1 WHERE ID = :Param1

 

第九步:运行工程,在文本框中输入【饮料】,并点击运行报表得到如下结果

1008_自定义报表参数面板_ActiveReports

 

源码下载:VS2013 + AR 10