【问题标题】:SSRS 2012 and CSV exportSSRS 2012 和 CSV 导出
【发布时间】:2012-10-22 16:41:10
【问题描述】:

我正在使用 SSRS 2012 尝试执行以下操作:

某些列应该只在用户请求时才可见,使用组合框。列的可见性取决于组合中选定的列。这似乎工作正常!

当我以任何不同于 .csv 的格式导出输出时,这些列仍然不可见。但是当导出到 .csv 时,会显示不可见的列。

我发现了这个:

=iif(Globals!RenderFormat.Name="CSV", True, False)

这应该放在我要隐藏的列的“隐藏”属性中。但它不起作用,当我写表达式时,RenderFormat 不是自动完成的选项。

对不起,我笨拙的英语,谢谢。

【问题讨论】:

    标签: csv reporting-services


    【解决方案1】:

    从 SSRS 导出的 CSV(和 XML)与大多数导出格式的处理方式截然不同。这两个被认为是数据渲染器,而不是页面渲染器,并且通常用于获取报表底层的数据,而不考虑布局选项。部分原因是字段可见性的处理方式不同。我不知道这是错误还是故意设计,但 .CSV 显然 doesn't honor visibility 设置在表达式中。一种建议的解决方法是在基础数据集中有条件地将值设置为null。 (这可以基于一个参数。)

    【讨论】:

    • 感谢您的回答,但我读过它确实尊重表达式中的隐藏集。至少在 SSRS 2008 中。如果有人可以帮我检查一下,我将不胜感激。
    • 不确定您是否查看了我链接到的 Stack Overflow 问题,但其他人看到的情况与您相同。一旦可见性比“真”或“假”更复杂,则 .CSV 将停止工作。
    • @JamieF,这个问题是几年前的问题了,可能是 2008 和 2008 R2 的区别。我已成功使用 SSRS 2008 R2 中的表达式来处理导出可见性。问题可能出在其他地方。
    • @dev_etter,使用 .CSV 导出?我将在接下来的几个小时内进行复制。
    • @JamieF,我的立场是正确的 - 我试图制作一个样本,但我做不到(我发誓几个月前我就可以使用它了)。我同意您使用参数将值设置为 null,甚至根据该参数的值将列可见性设置为 false 的方法。
    【解决方案2】:

    使用DataElementOutput=NoOutput 可以隐藏发送到 CSV 的数据元素

    1. 打开TextBox的属性菜单(F4

    2. DataElementOutput 属性设置为NoOutput

    进一步说明

    当 SSRS 必须渲染图表时,它需要做出几个决定。如果您花了很多时间进行一些很酷的格式化,它会在转到 PDF 时尝试保留它,因为 PDF 文档充满了丰富的格式。例如,如果您设置报告的边距,PDF 应该关心,但 CSV 甚至无法保存该信息(也不应该)。

    因此,有different rendering engines used by SSRS

    每个都有自己的过程。例如,数据导出只会从数据字段中提取信息。例如,欢迎数据字段有多层标题,其名称可能使用也可能不使用CLS-compliant identifiers,因此直接从文本框名称本身提取该信息更安全。

    包含数据的文本框也可用于设置其他数据导出属性。

    在这种情况下,您可以使用 DataElementOutput 删除特定数据字段:

    指示数据点是否应出现在数据呈现中。

    进一步阅读

    【讨论】:

      猜你喜欢
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多