2013-07-12 55 views
0

這裏是場景:我有許多不同的報告文件(* .rdl),用戶可以從Web界面選擇一個。這又會加載一個Report Viewer控件(作爲一個ASPX控件)。如何將SSRS報表動態加載到報表查看器幷包含數據源/數據集?

我的* .rdl文件包含定義中的數據源和數據集(我只是在記事本中檢查了XML)。數據源是一個Oracle存儲過程。該報告運行得很好,如果我在Report Builder 3中運行它。

我不明白的是如何在運行時將報告文件加載到報告查看器中,並讓它自動使用數據源和數據集,在報告定義中定義。

try 
{ 
    Viewer.LocalReport.ReportPath = myLocalRDLPath; // Exists and is readable 
    var reader = new StringReader(File.ReadAllText(myLocalRDLPath)); 
    Viewer.LocalReport.LoadReportDefinition(reader); 
} 
catch(Exception ex) 
{ 
    throw new Exception("Unable to open report definition file from server.", ex); 
} 

if (Viewer.LocalReport.DataSources.Count > 0) 
{ 
    // Never hits, DataSources is always empty, but 
    // a Data Source and a Dataset exist in the .rdl file. 
} 

回答

0

如果您正在使用的.rdl文件,你需要使用Viewer.ServerReport。它將使用報表定義中的數據源,並且不需要顯式設置數據源。

Viewer.LocalReport用於.RDLC文件,其中設置數據源是在代碼中手動設置的,如代碼示例中所示。

+0

是的,我想通了(看我的評論),現在我面臨一個新的問題,所以我發佈了一個新的問題:http://stackoverflow.com/questions/17621346/how-can-i-execute -an-RDL報告上帶有一個報告查看器控制和 - 不-AN-SSR – qJake

相關問題