【问题标题】:Hide space between elements of a report隐藏报表元素之间的空格
【发布时间】:2012-11-30 15:18:13
【问题描述】:

我有一份包含各种子报告的报告。这些子报表位于表格单元格中。当子报表没有任何可用数据时,我会隐藏该子报表中的组件(表格、文本框、图表)。但是,这会产生一些空白空间,我需要消除这些空间。

我已经使用了 ConsumeContainerWhiteSpaceKeepTogether 属性,但空白处仍然存在。

有什么删除空格的建议吗?

【问题讨论】:

  • 子报表是否占据父报表的整行?如果是这样,您可以将父报表中的行可见性设置为在适当时完全隐藏。
  • 没有。我有两个列。一个有 id,另一个有子报表(传递的 id 有参数)。我无法验证行中的可见性,因为数据在子报表中。目前我在子报表中隐藏组件,但继续使用空格。因此,验证必须在主报告中,而不是在子报告中。
  • 我不明白你想要完成什么。父报表中包含子报表的单元格将继续存在。你想隐藏整行还是整列?如果不是,那么该单元格会发生什么? (此外,请确保您的子报表的数据集在您希望隐藏时不返回任何行。这将允许您在父报表中使用无行消息。msdn.microsoft.com/en-us/library/dd220407.aspx
  • 如果数据集没有在子报表中返回数据,我想隐藏整行。

标签: ssrs-2008 reporting-services subreport


【解决方案1】:

根据另一个报告结果隐藏或显示整行将很困难,如果不是不可能的话。您将需要以某种方式在您的父报告中获取这些数据。

我会创建一个缩减版本的子报表查询,它返回每个子报表的行数,但在父报表中。可能看起来像这样:

UserID   RecordCount
  Abby       3
  Bob        0
  Carl       1

如果您使用的是 SSRS 2008r2,则可以使用查找功能来设置行可见性。例如,行可见性表达式可能是

=IIF(Lookup(Fields!UserID.Value,
       Fields!UserID.Value,
       Fields!RecordCount.Value,
       "LookupDatasetName") > 0,
    false,
    true)

如果是早期版本的 SSRS,则将该数据集加入到您的表的数据集中。

【讨论】:

  • 我使用 SSRS 2008r2。我试图将表格放在一个矩形内,但继续使用空格。
  • 可以使用lookup函数,因为子报表中的数据集是带参数的存储过程。我无法计算每个用户的行数。
  • 明白。我建议创建一个不同的数据集来获取每个用户的行数。您可以从现有 SP 的查询开始并稍微修改它以返回所有可能用户的行数。
  • 但是,我在主报告中的子报告中创建了相同的数据集。
猜你喜欢
  • 2013-06-05
  • 1970-01-01
  • 2015-07-25
  • 2011-04-11
  • 2012-08-14
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 2017-12-11
相关资源
最近更新 更多