2013-02-07 63 views
2

我正在使用C#渲染SRSS 2008 R2的報告 報告有參數,很長一段時間我沒有任何問題渲染輸出。但是今天它已經決定不去上班了!C#Report 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,它肯定有一個值,但該錯誤仍然出現。

任何想法?

+0

嘗試打開rdl併爲該參數添加默認值。 – Igoy

+0

完成。悲傷地仍然得到相同的錯誤 – zXynK

回答

2

找到它。 我看了一下ReportParameterInfoCollection paramInfo = rv.ServerReport.GetParameters();,發現一些參數是'無效'。我知道爲什麼,但我被「未提供」的原始錯誤拋出了一些。我猜這是因爲我proided的valids我們只是打折

感謝

+2

我用這種方法來探索我提供的參數;在我的情況下,我提交的GUID參數全部是大寫,但有效值是小寫等價。 – Ancalagon

1


我面臨着同樣的問題,當我通過的「XYZ」字段的值,但它說

這份報告需要報告 參數的默認或用戶定義的值

,當我看到的「XYZ」的價值它在當我刪除這個空間開始額外的空間,它出人意料地開始worki恩。我不知道原因,但它的工作原理。希望它可以幫助你。