8

我需要将 SSRS 2005 报告导出为 CSV,其中列标题包含空格。

目前,CSV 标题列标题源自 textBox 属性名称,并使用下划线而不是空格。还有另一种更好的方法吗?

例如,目前我有:

  • SSRS 报告标题:生效日期
  • 文本框名称:Effective_Date
  • CSV 标题:Effective_Date

我想拥有:

  • SSRS 报告标题:生效日期
  • 文本框名称:Effective_Date
  • CSV 标题:生效日期
4

3 回答 3

2

看起来不可能,经过更多挖掘,我发现了以下 Stack Overflow 帖子:

于 2013-01-04T14:16:52.510 回答
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

于 2015-01-27T16:35:56.053 回答
0

有一个解决方案。您需要在 SSRS 属性中选择按F4,选择Properties,在该选择要重命名的特定文本框中。例如,让 Textbox12 作为 Effective_Date。解决方案:使用 EffectiveDate 重命名文本框。

于 2013-12-04T13:32:18.657 回答