SSRS可以根据导出类型切换标头可见性吗? 2008 R2

时间:2016-10-28 15:23:54

标签: reporting-services ssrs-2008-r2 ssrs-tablix

我熟悉基于变量或参数值动态显示/隐藏其他报表对象(文本框/ tablix /列等等) - 但有没有办法用标题执行此操作?我没有看到任何"知名度"标题对象上的tab用于设置表达式。

此外,有没有办法根据导出样式隐藏标题。例如,我想在导出为PDF时显示标题,但是在导出到XLS时要隐藏它(以防止单元格合并)。

我已经看过"标题"取而代之的是一个"矩形"可以切换。我也看到过引用= Globals的文章!RenderFormat.IsInteractive =“EXCEL”),但我不知道它在哪里设置?在服务器配置文件?有没有办法让它只针对那个特定的rdl报告文件?

提前致谢!

2 个答案:

答案 0 :(得分:5)

回答你的问题:

是否可以动态显示/隐藏标题 - 否。很遗憾,您无法在RDL报告中设置整个页眉/页脚的可见性。

是否可以根据导出样式隐藏标题 - 不完全。正如我所说,您无法设置整个标题的可见性,但您可以设置单独报表项的可见性标题基于导出样式。

设置它的位置 - 在通常的隐藏表达式中设置在报告中。与服务器配置文件无关以实现此目的(唯一的一点是看看rsreportserver。 config - 它包含带渲染扩展的部分,了解它们的名称很有用,fe名称“EXCEL”用于旧的二进制XLS格式,而“EXCELOPENXML”用于现代XLSX。

要根据导出样式设置可见性,可以使用内置报表字段RenderFormat.Name(注意它是Name,而不是IsInteractive!)。只需为隐藏属性键入以下表达式:

=Globals!RenderFormat.Name = "PDF"

总之,您无法设置整个标题的可见性,您可以根据所需的不同条件显示/隐藏标题内的报表项,但标题仍然会占用一些位置。要真正隐藏标题以使其不占用报表空间,您可以使用矩形和分页符来模拟标题,这就是解决方法。

答案 1 :(得分:0)

我面前的报告要求具有类似的性质。

  

需要:导出到CSV文件时隐藏标题。

该报告将导出为CSV,然后上传到另一个系统(该系统不需要标题)。为了更方便用户使用,我希望报表显示标题,但不将其导出到CSV文件中。

我尝试了一些行不通的事情。然后,我找到了一篇文章,描述了如何创建 新的导出格式 Labeled: "CSV No Headers",从而解决了导出要求。


解决方案:rsreportserver.config

文件:D:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config

XML:

    <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>

解决方案演示

新选项:

enter image description here

EXPORTED>报告名称(CSV无标题)。csv:

enter image description here

已导出>报告名称(Excel).xlsx:

enter image description here

来源: Charanmandya Blogspot: Export Csv Without Header in SSRS


不起作用的东西...

我通读了这篇文章, Blog, Beer Intelligence by Valentino Vranken: "Hide/Show Items Dependant On Export Format (SSRS)" 。这篇文章对很多用户的评论和建议很有帮助。但是我尝试了这些事情,但是没有标题行,它们就无法用于CSV导出。

  • 行可见性>表达式> = Globals!RenderFormat.Name =“ CSV”

这适用于“ Excel”或“ EXCELOPENXML”格式。由于某些原因,“ CSV”不起作用。

  • 选择行>属性:仅数据> [Data Element Output = NoOutput]

一些相关的stackoverflow问题...