2013-10-22 42 views
1

我正在擴展現有的應用程序以使用ASP.Net WebForms ReportViewer控件託管SSRS報告。有大量的現有報告。除了我們還需要向每個報告傳遞另一個參數外,這不會成爲問題。通過asp.net自動將參數添加到SSRS

我們團隊中的某個人建議我們可以添加另一個參數,並將SSRS傳遞給與每個報告關聯的存儲過程。不知道關於報告服務的任何事情我對它進行了調查

我試過如下:

private void AddNewParameter(Report report) 
{ 
    var reportParameters = new List<ReportParameter> { new ReportParameter(paramName, "foo", false) }; 
    report.SetParameters(reportParameters); 
} 

調用Report.SetParameters()抱怨不存在對報告的新參數。用於SetParameters()的MSDN頁面在底部附近有一個註釋:

「必須在原始報告定義中定義爲SetParameters方法指定的參數。」

任何人都可以確認我的下沉感覺,我們的所有報告必須改變採取新的參數?

回答

0

你正在嘗試的方法將是一個死衚衕。抱歉。下沉感覺被證實。然而...

如果有大量的報告,那麼你可能可能通過修改底層Report Definition Language可能會制定一個自動的方法來更新它們全部。我剛剛張貼的鏈接將帶您到有進一步指向每個版本的實際架構定義TechNet文章等

RDL實際上只是XML,直接引用TechNet文章:

RDL由XML元素組成,這些元素匹配爲Reporting Services創建的 XML語法。您可以通過訪問報告定義 文件中的代碼程序集來添加自己的 自定義函數,以控制報告項目值,樣式和 格式。

只有你可以衡量開發這種類型的解決方案與手動方法的工作。

爲了得到所需的改變的想法:一個報告

  1. 保存副本。
  2. 修改與變化
  3. 比較修改RDL到原來的報告(BeyondCompare,記事本+ +,等等)

如果你的舒適與解析XML,然後複製整個其餘報告的變化將是完全做,能。