2010-08-02 86 views
0

我的公司將爲未來的應用程序使用Azure環境。但是,目前,Azure不允許我們將報表部署到Azure SQL Server。因此,顯示報告的唯一方法是使用本地ReportViewer。如何在LocalReport中使用DataSources和DataSet

我的工作是編寫一個使用本地ReportViewer顯示報告的報告引擎。但是,在RDLC文件中使用DataSources和DataSet信息時遇到困難。

挑戰1:LocalReport.LoadReportDefinition()方法不檢索DataSources和DataSets信息。如何從RDLC文件獲取DataSources和DataSet信息?

挑戰2:獲得DataSources和DataSets信息後,如何使用這些信息生成DataSet?儘管我可以通過XML流程對DataSources和DataSets信息進行分階段處理,但我自己處理所有情況非常困難。

簡而言之,我試圖模擬服務器端獲取數據過程,但使用本地報告。

非常感謝!

回答

0

SSRS報告分爲2類。

  1. 服務器報告
  2. 客戶報告(本地)

每2型是在服務器端的工作,但也有差別。在rdlc報告中,您必須在下面將如下內容綁定到數據集:

rds.Name = Constants.Accounting.ClientReportDataSourceName.GeneralReportDS; 
    rds.Value = ((GeneralReport)Session[Constants.Accounting.Session.GeneralReport]).Tables[0]; 
    ReportViewerControl.LocalReport.DataSources.Add(rds); 
+0

感謝您的回答。通過這種方式,您已經知道報告的詳細信息,並將「合適」的DataTable傳遞給報告。 如果我不知道報告的細節,我想通過RDLC文件細節動態生成DataTable。 RDLC實際上已經爲連接數據庫(或其他類型的源)定義了連接字符串,查詢,事務等。 如何通過RDLC文件動態生成我的DataTable? – 2010-08-02 23:19:10

+0

您必須分析非常困難的rdlc xml文件。 – 2010-08-04 09:56:55