2013-01-04 96 views
7

我需要將SSRS 2005報告導出爲CSV,其中列標題包含空格。是否可以導出爲CSV並且標題包含空格?

當前,CSV標題列標題是從textBox屬性名稱派生的,並使用下劃線而不是空格。還有另一種更好的方法嗎?

例如,目前我有:

  • SSRS報告標題:有效日期
  • 文本框名稱:EFFECTIVE_DATE
  • CSV標題:EFFECTIVE_DATE

我想有:

  • SSRS Report Head ER:有效日期
  • 文本框名稱:EFFECTIVE_DATE
  • CSV標題:有效日期
+0

解決了此問題。您可以在此鏈接http://stackoverflow.com/a/35406795/5929210中找到解決方案 –

回答

1

有一個解決方案。您需要在SSRS屬性中選擇按F4, 選擇屬性,其中選擇您要重命名的特定文本框。例如,讓Textbox12成爲Effective_Date。解決方案:使用EffectiveDate重命名文本框。

1

我自己解決了這個問題,通過自定義內置的CSV渲染擴展使它使用文本框的ToolTip屬性作爲列標題。 ToolTip屬性將允許空格和其他標點符號,因此可以根據需要靈活地命名列。這也有一個很好的副作用,就是給你一個相關的工具提示,提醒你在一個很長的報告裏你看到的是哪個列,而這個列可能不可見!

注意:在設計器中,您設置數據行的文本框的工具提示,而不是標題的文本框。

這並不容易實現,因爲所有渲染擴展都標記爲密封類。爲了實現這一點,我使用了反編譯器,並將與CSV渲染相關的所有代碼抽取到我自己的項目中。然後改變寫入標題文本的行,從文本框的ToolTip屬性中讀取。

名爲CsvColumnHeaderHandler你正在尋找方法的類OnTextBoxBegin,特別是行:

this.m_visitor.WriteValue(textBox.DataElementName, this.m_excelMode); 

簡單地改變這一閱讀:然後

this.m_visitor.WriteValue(textBox.ToolTip, this.m_excelMode); 

這個自定義呈現擴展插件可以部署到報表服務器並且完美運行。

你不需要知道如何爲此編寫一個渲染擴展,因爲正如我所說的,我只是複製(反編譯)了代碼。但是,您需要知道如何部署自定義渲染擴展程序集。有關部署的更多信息,請訪問:https://msdn.microsoft.com/en-us/library/ms154516.aspx

相關問題