2012-01-10 76 views
2

我將rdl遠程存儲在二進制格式的sql server數據庫中。我想使用報告查看器控件來顯示報告。使用.NET Report Viewer打開遠程RDL

這似乎是一個簡單的概念,但我一直髮現有衝突的教程,它有幾種不同的方法......我都無法工作。

我是否正確地認爲我需要的是報表查看器控件才能使其正常工作?如果是這樣,那麼如何打開遠程存儲的.rdl文件?

我也有一個變量,它的rdl內容存儲在一個字符串...不知道這是否有幫助?因此,無論我可以用這串或從數據庫中拉出的.rdl ...

我是新手到.NET所以我不知道如何以最佳方式處理這個......到目前爲止,我有以下幾點:

ReportViewer r = new ReportViewer(); 
//pass the rdl to report viewer 
r.ProcessingMode = ProcessingMode.Remote; 

回答

3

您需要將其實際設置爲本地處理模式不是遠程。

我只是從DLL加載RDL而不是數據庫,但我會看看下面的API,因爲它可能有重載接受一個字符串,或者你將字符串轉換爲流。

reportViewer.LocalReport.LoadReportDifinition 

下面是我用從DLL加載代碼(可能有助於在上下文中看到)

Assembly assembly = Assembly.LoadFrom("MyReports.dll"); 
Stream stream = assembly.GetManifestResourceStream("Reports.MyReport.rdlc"); 
reportViewer.LocalReport.LoadReportDifinition(stream); 
0

嘗試修改這個代碼:

ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote; 
ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerNetworkCredentials(); 
//ReportViewer1.ServerReport.ReportServerCredentials = new Rep(); 
ReportViewer1.ServerReport.ReportServerUrl = new Uri(@"http://PRODUCTIONDB:80/ReportServer/MexReports"); //report server 
ReportViewer1.ServerReport.ReportPath = "rptMEXHEDailyReportReview1"; // rdl name