在进行报表设计的时候有时需要通过后台代码端给参数赋值,有时也需要通过后台获取报表参数的值,然后进行动态数据的筛选。
下面我们首先来说说如何后台给参数赋值:
1、 首先新建一张RDL报表,然后添加两个参数:
- 参数1:CategoryID
- 参数2:CategoryName
2、 后台代码端给报表参数赋值:
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(newSystem.IO.FileInfo(@"**.rdlx"));
rpt.Report.ReportParameters[0].DefaultValue.Values.Add("1");
ReportParameters[0]代表第一个参数 CategoryID
ReportParameters[1]代表第二个参数 CategoryName
这样就直接把后台参数传递给报表了。
如何在后台获取参数的值:
1、 首先给报表添加两个参数:
- 参数1:CategoryID
- 参数2:CategoryName
2、 后台获取传递的参数进行参数的筛选。
这个主要是进行动态数据源绑定,并且用到了报表钻取功能的时候,经常需要后台主表传递的筛选参数,进行数据的筛选。
该操作的注意点:
- 首先主表进行导航的时候,主表传递给子表的参数需要和子表的参数命名一致。
- 子表的参数设置,命名需要跟主表传递的值得命名一致,这样才能进行信息一致的匹配。
3、 后台参数的获取
报表的参数后台的获取需要在 LocateDataSourceEventArgs 这个函数下才可以获取报表参数的当前值。这一点必须谨记。
后台获取参数的关键代码:args.Report.Parameters[0].CurrentValue.ToString();
Parameters[0]代表参数一
Parameters[1]代表参数二
4、 具体代码:
private void locatedate(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
if (args.DataSourceName == "DataSource1")
{
if (args.DataSetName == "DataSet1")
{
string a = args.Report.Parameters[0].CurrentValue.ToString();
args.Data = returndata();
}
}
}