2016-04-15 69 views
0

我試圖使用C#和RDL文件生成報告。我遵循了一些例子,但我無法完成。出現錯誤:使用C#,ReportViewer和RDL文件生成報告

「項目'sample.rdl'的路徑無效,完整路徑必須小於260個字符;其他限制適用如果報告服務器處於純模式,則路徑必須以斜槓開始(rsInvalidItemPath)「。我嘗試過在路徑上預先加入斜線,但沒有成功。

我的報表服務器處於原生模式。我的兩個主要問題是:

  1. 我需要參數嗎?
  2. 我的RDL文件應該存儲在哪裏?

現在我正在將我的RDL文件存儲在我的項目中。 (我不認爲這是正確的)

這裏有一個代碼片段:

const string path = "sample.rdl"; 
string url = "http://localhost/ReportServer"; 
string format = "PDF"; 

var rsReports = new Microsoft.Reporting.WebForms.ReportViewer 
{ 
    ProcessingMode = ProcessingMode.Remote, 
    ShowParameterPrompts = false 
}; 
rsReports.ServerReport.ReportServerUrl = new Uri(url); 
rsReports.ServerReport.ReportPath = Path.Combine("\\" + Environment.CurrentDirectory, path); 
rsReports.ServerReport.Refresh(); 
byte[] report = rsReports.ServerReport.Render(format.ToUpper()); 

return report; 

回答

1

您的RDL文件必須被部署到SSRS服務器。你可以在Visual Studio中做到這一點。 右鍵單擊您的報表項目並將報表服務器url設置爲http://localhost/ReportServer

然後右鍵單擊您的報告並選擇部署。 這會將您的報告和數據源部署到服務器。

你可以再嘗試使用您的代碼,你改變這一行後....

rsReports.ServerReport.ReportPath = "/folder/reportName"; 

如果文件夾是該報告發布到服務器上的文件夾的名稱,所以reportName =「樣本「(不包括.rdl)

您正在獲取的錯誤表示路徑必須以'/'開頭