2010-03-02 92 views
2

我已經完成了一個通過特定數據生成報表的asp.net應用程序。最初我創建了本地報告(.rdlc)來生成報告。我爲每個rdlc創建了單獨的.xsd並設計了這些報告。我以編程方式構建數據集並將其綁定到rdlc。我用下面的代碼爲數據源綁定到報告 -以編程方式將報表服務器中的數據源綁定到報表服務器 - SSRS

rptMyReport.LocalReport.ReportPath = Server.MapPath(srdlcName); 
rptMyReport.LocalReport.DataSources.Add(rds); 

現在我已經轉換所有RDLC到RDL以下this msdn article,我已經發布到報表服務器的報告。

rptMyReport.ServerReport.ReportServerUrl = new System.Uri("http://ReportServer/ReportServer"); 
rptMyReport.ServerReport.ReportPath = "/ReportFolder/ReportName"; 

現在我怎樣才能以編程方式設置數據源的報告?

回答

3

這項工作是不可能的。你應該在你的rdl報告中創建你的數據源。您必須爲報告數據收集編寫所需的查詢。您可以將此查詢用作文本或存儲過程。您可以將參數傳遞給此查詢並篩選查詢的輸出。 你只能通過參數RDL報告是這樣的:

ReportParameter[] Params = new ReportParameter[1]; 
Params[0] = "Parameter Value"; 
ReportViewerControl.ServerReport.SetParameters(Params); 
+0

謝謝。那樣做了! – NLV 2010-03-02 05:58:29

0

你想做什麼?我相信在.RDL文件本身中提到了數據源。 例如:當您使用BIDS創建報告時,您可以指定數據源。這被添加到.RDL文件。同樣的概念也適用於此。

+0

根據用戶的選擇我是。過濾來自表格的數據並將其分配給rdlc。那麼我怎麼能在rdl中做到這一點? – NLV 2010-03-02 05:30:47

0

這是不可能的,但可能需要一點點努力,如果這是你想要做什麼。
你有兩個選擇:

  1. 如果您創建報表服務器上的共享數據源可以使用RDLObjectModel手動添加。從報告服務器獲取共享數據源名稱和guid,然後將其添加到報告中。

    例子:

    'create the datasource for the report 
    Dim dataSrcRFoo = New RdlObjectModel.DataSource 
    dataSrcRFoo.Name = "DataSourceName" 
    dataSrcRFoo.DataSourceReference = "/path/to/DataSource" 
    dataSrcRFoo.IsShared = True 
    dataSrcRFoo.SecurityType = 2 ' RdlObjectModel.SecurityTypeEnum.DataBase 
    dataSrcRFoo.DataSourceID = New Guid("shareddatasourceguid") 
    
    'add data source to report 
    rdlRpt.DataSources.Add(dataSrcRFoo) 
    
  2. 另一種選擇是建立在有份額(或報表級別)的服務器的數據源上使用的模板

相關問題