用于SRSS 2008 R2的C#报告渲染器 - 缺少参数

时间:2013-02-07 10:53:10

标签: c# ssrs-2008

我正在使用C#来呈现SRSS 2008 R2的报告 报告有参数,很长一段时间我都没有渲染输出的问题。但是今天它已经决定它不会起作用了!

这是错误

ReportServerException: This report requires a default or user-defined value for the report parameter 'CustomFieldId'. To run or subscribe to this report, you must provide a parameter value. (rsReportParameterValueNotSet): Stack: at Microsoft.Reporting.WebForms.ServerReportSoapProxy.OnSoapException(SoapException e)

以下是代码:

ReportViewer rv = new ReportViewer();
rv.ShowCredentialPrompts = true;
rv.ProcessingMode = ProcessingMode.Remote;
rv.ServerReport.ReportServerUrl = new Uri(ReportsClient.ReportServerUrl);
rv.ServerReport.ReportPath = string.Format("/Reports/{0}", item.Name);
rv.ServerReport.SetParameters(thisLoopParams.ToArray());
rv.ServerReport.Timeout = -1;
rv.ServerReport.Refresh();

// render the report
string mimeType = string.Empty;
string extention = string.Empty;
string encoding = string.Empty;
string[] streamIds;
Microsoft.Reporting.WebForms.Warning[] warnings = null;

byte[] result = rv.ServerReport.Render(outputFormat, deviceInfo, out mimeType, out encoding, out extention, out streamIds, out warnings);

如果我检查thisLoopParams我可以清楚地看到'CustomFieldId'ReportParameter并且它肯定有值,但错误仍然出现。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

找到它。 我看了ReportParameterInfoCollection paramInfo = rv.ServerReport.GetParameters();,发现一些参数是'无效'。我知道为什么但是有点被“未提供”的原始错误抛出。我猜这是因为我提供的价值只是打折

由于

答案 1 :(得分:1)

当我传递' XYZ'的价值时,我面临同样的问题。现场,但它说

  

此报告需要报告的默认值或用户定义值   参数

当我看到' XYZ'它在开始时有额外的空间,当我移除这个空间时,它出人意料地开始工作。我不知道原因但是它有效。希望它可以帮到你。