【问题标题】:Hide Duplicate Legend Items in SSRS Report Chart在 SSRS 报表图表中隐藏重复的图例项
【发布时间】:2014-11-16 14:14:11
【问题描述】:

我在 SSRS 中有一个堆积柱形图,按小时显示数据。该数据包括该小时的仪表读数、千伏安、平均温度和热指数。出于某种原因,温度值和 kVa 的图例项正在为数据集中的每个仪表重复。我希望我的图例具有以下值:kVa、平均值、热量指数和每个仪表编号。我在下面包含了一个图表示例、图表数据配置以及一些示例数据。知道我怎么能做到这一点吗?如果需要任何其他信息,请告诉我。

【问题讨论】:

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


    【解决方案1】:

    您添加的每个系列都会获得一组图例值。对于除了要保持其图例可见的系列之外的每个系列,右键单击系列(“值”框中的每个顶级行),选择系列属性,转到图例选项卡,然后选中“不显示此系列在传奇中。”

    【讨论】:

    • 这样做根本不会显示图例中的值。例如,我仍然希望在图例中显示“平均”,但我只希望它显示一次。目前它在数据中每米显示一次。
    【解决方案2】:

    我能够使用来自堆栈溢出问题的信息解决我的问题:https://stackoverflow.com/a/1867343/965213

    1. 转到要包含在图表中的系列属性的图例页面。
    2. 编辑“不在图例中显示此系列”属性的函数。
    3. 使用这个公式:=IIF(Fields!SerialNumber.Value=Last(Fields!SerialNumber.Value,"MeterDetail"),false,true)

    现在该系列将只重复一次,而不是每个系列组一次。

    希望这会有所帮助!

    【讨论】:

    • 这个答案是荒谬的,它假设没有值会等于系列中的最后一个
    • @CME64 如果我的想法如此“荒谬”,是否愿意提供更好的解决方案?它适用于我在答案中链接到的问题的海报,并且它适用于我提供的示例数据。如果它确实有帮助,我很乐意标记一个更好的答案。
    • 我已经发布了我的答案,希望对您有所帮助。如果我的评论过于苛刻,我深表歉意,我对我发现互联网上的每个人都在使用的答案感到愤怒,并且没有提供其他答案,并且答案没有考虑到任何系列之间具有匹配值的机会'和该系列的最后一部,所以我不得不在之后即兴创作。
    【解决方案3】:

    这是一个很好的解决方案,涵盖了所有可能的场景

    1. 转到“报告属性”(在空白区域单击鼠标右键)

    2. 转到变量并添加一个名为myflag的新变量,将值设置为“true”并取消选择只读

    3. 转到“系列属性”,然后转到“图例”,然后单击“不在图例中显示此系列”旁边的表达式按钮

    输入或粘贴此代码:

    =IIF( Variables!myflag.Value = true, false, true )
    =Variables!myflag.SetValue( false )
    

    就是这样。

    提示

    可以在同一系列的可见性表达式中使用同一个变量,第二行不用设置部分,避免同系列的绘制在图表上重叠

    【讨论】:

    • 我试过了,我喜欢它。我会指出,就我而言,我必须为每个需要执行此操作的系列创建一个变量,并在创建变量时取消选择只读。否则,我认为这是一种更好的处理方式。
    • @BrianSwart 这是不利的一面,但至少它会正常工作。如果您知道它们的渲染顺序并反转条件并在下一个将标志设置为 true,我假设您可以对所有系列使用相同的变量。希望微软多关注SSRS,目前状态一团糟。
    【解决方案4】:

    我无法让这些答案中的任何一个对我有用。最终在 Do not show this series in a legend 属性的表达式中使用了 RowNumberCountRows

    =IIF(RowNumber("Dataset")=CountRows(),false,true)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多