有什么方法可以关闭仅在一份SSRS 报告上导出 CSV 的标题?
我正在使用 Report Builder 3,并从报告中删除了标题,但是当导出为 CSV 时,它们又回来了。我找不到任何地方可以关闭它们。
我见过这个问题,但它似乎涵盖了服务器上的所有报告,我只需要关闭几个标题。
有什么方法可以关闭仅在一份SSRS 报告上导出 CSV 的标题?
我正在使用 Report Builder 3,并从报告中删除了标题,但是当导出为 CSV 时,它们又回来了。我找不到任何地方可以关闭它们。
我见过这个问题,但它似乎涵盖了服务器上的所有报告,我只需要关闭几个标题。
无论您如何实现这一点(自定义程序集、自定义渲染扩展),您都需要修改服务器上的一些配置文件,除非您发送带有 URL 的 deviceinfo 参数,或者以编程方式从外部应用程序渲染报告。
更简单的方法是在服务器范围内,您可以单独使用当前的 CSV 扩展,并且非常容易实现。对你(和我)来说幸运的是,这几乎不需要任何代码就可以完成。
由于这是 CSV 扩展的 deviceinfo 参数之一,因此您只需将以下代码行添加到 RSReportServer.config 文件中。您正在使用当前的 CSV 文件在此处添加另一个扩展名。
<Extension Name="CSV (No Header)" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering">
<OverrideNames>
<Name Language="en-us"> CSV No Header</Name>
</OverrideNames>
<Configuration>
<DeviceInfo>
<NoHeader>true</NoHeader>
</DeviceInfo>
</Configuration>
</Extension>
将其放在已经存在的 CSV 扩展代码行下方的行中,或 Render 元素内的任何位置。
这将允许您使用该新扩展名订阅报告或使用下拉菜单导出报告,因为 sql server 报告服务在填充下拉菜单时会查询该 xml 文件。
如果您确实使用按钮并实例化 Reportexecutionservice,则无论如何您都必须触摸配置文件才能使用 .dll。
您无法对开箱即用的数据驱动订阅执行任何操作。可能可以编写一个自定义订阅扩展来做到这一点。对于直接从报表生成器导出,您也无法做任何事情,除非您做了一些聪明的事情,例如添加一个看起来像按钮的独立文本框,然后将一个操作与其关联,该操作创建一个 URL 供您使用 URL Access 打开/呈现报表。您可以在此处查看一些信息:http: //msdn.microsoft.com/en-us/library/ms155046.aspx。
通过 URL 访问,您可以传入 CSV 设备信息,在您的情况下为 NoHeader=true,根据http://msdn.microsoft.com/en-us/library/ms15536 5.aspx
添加这个:
<Extension Name="CSV (No Header)" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering">
<OverrideNames>
<Name Language="en-us"> CSV No Header</Name>
</OverrideNames>
<Configuration>
<DeviceInfo>
<NoHeader>true</NoHeader>
</DeviceInfo>
</Configuration>
</Extension>
到这里的配置文件:C:\Program Files\Microsoft SQL Server{INSTANCE}\Reporting Services\ReportServer\rsreportserver.config(在该部分)
将在导出选项的下拉列表中创建另一个选项,但仍将使用 CSV 格式 (Microsoft.ReportingServices.DataRenderer),因此用户仍然可以为每个报告选择他们想要的格式。
对于那些寻找仅使用 URL 访问的导出选项的人,正如@Stacia 所建议的那样,您可以请求一个不带标题选项的 CSV 导出,只需在您的请求中包含这个:rc:NoHeader(命名空间是 rc:not rs:)
示例 URL:http://localhost/ReportServer/?ReportName&rs:Command=Render&rs:Format=CSV&rc:NoHeader=true