您好
实现步骤:
参考示例下载(如果需要运行示例,请先还原Nuget包或者重新安装。)
1. 在GetReport 中为报表对象添加对应名称的参数。
- private object getReportFn(string arg)
- {
- PageReport rpt = new PageReport();
- rpt.Load(new System.IO.FileInfo(@"D:\Temp\AcmeStore.rdlx"));
-
- // 添加报表参数
- ReportParameter para = new ReportParameter();
- para.Name = "p1";
-
- para.UsedInQuery = ReportParameterUsedInQuery.True;
- para.DataType = ReportParameterDataType.String;
- rpt.Report.ReportParameters.Add(para);
- return rpt;
- }
复制代码
2. 在JSViewer 通过openReport 为参数p1 传值
- viewer.openReport('AcmeStore.rdlx', [{name:'p1',values:['test']}]);
复制代码
3. 在 settings.SetLocateDataSource( )方法中获取参数值
- app.UseReporting(settings =>
- {
- // settings.UseEmbeddedTemplates(EmbeddedReportsPrefix, Assembly.GetAssembly(GetType()));
- settings.UseCustomStore(getReportFn);
- settings.UseCompression = true;
- settings.SetLocateDataSource(args => {
- var temp = args.ReportParameters[0].Value;
- DataTable dt = new DataTable();
- dt.Columns.Add("a1");
- dt.Columns.Add("a2");
- dt.Rows.Add("a1", "a1");
- return dt; });
-
- });
复制代码
|