我要求将SSRS 2005报告导出为CSV,其中列标题包含空格。
目前,CSV标题列标题是从textBox属性名称派生的,并使用下划线而不是空格。还有另一种更好的方法吗?
例如,目前我有:
我想:
答案 0 :(得分:2)
看起来不可能,通过更多的挖掘,我发现了以下Stack Overflow帖子:
答案 1 :(得分:1)
有一个解决方案。您需要在SSRS属性中选择按 F4 , 选择属性,然后选择要重命名的特定文本框。 例如,将Textbox12作为Effective_Date。解决方案:使用EffectiveDate重命名文本框。
答案 2 :(得分: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