在 C# 中执行具有多值的 SSRS 快照

本文关键字:SSRS 快照 执行 | 更新日期: 2023-09-27 18:31:51

尝试从 C# 代码创建 SSRS 快照。它工作正常,除非报表中的参数是多值参数。应如何设置多值字段?

parameters[0] = new ReportParameter();
parameters[0].Name = "countryCodeList";
parameters[0].DefaultValues = new string[] { "DK", "FI", "GB", "NO", "SE" };  // ???
parameters[1] = new ReportParameter();
parameters[1].Name = "fromDebitDate";
parameters[1].DefaultValues = new string[] { FormatDateTimeParamter(fromDebitDate) };
parameters[0].MultiValue = true;   // ???
ReportingService.SetReportParameters(report.Path, parameters);
return ReportingService.CreateReportHistorySnapshot(report.Path, out warnings);

在 C# 中执行具有多值的 SSRS 快照

如果我

没记错的话,SSRS 对它希望您添加多值的方式有点愚蠢,因为您不能只定义和实例化值。 您需要单独定义它们,然后在内存允许的情况下添加它们,然后将参数添加到已经存在的参数对象数组中。 我认为是这样的,来自这个网站:http://forums.asp.net/t/1338302.aspx

List<ReportParameter> paramList = new List<ReportParameter>();
ReportParameter param = new ReportParameter("ParamName");
// Create the string array of values to pass
string[] values = new string[]{"x", "y", "z"};
// Add a range of elements from an array to the end of the StringCollection.
param.Values.AddRange(GetStringArray());
// Add the parameter to the list of ReportParameters
paramList.Add(param);
// Set the reports parameters
this.ReportViewer1.ServerReport.SetParameters(paramList);