【问题标题】:SSRS range bar chart, different color when no dataSSRS范围条形图,无数据时不同颜色
【发布时间】:2019-03-08 12:55:42
【问题描述】:

我希望更改已构建的范围图表中“间隙”的颜色。

基本上,我正在尝试为员工构建一个可视化,以查看托架的可用性。红色标记表示该海湾已被预订,我希望绿色位于红色之间以突出显示空闲海湾。

占用的海湾:

我怀疑我需要返回我的数据集并添加一些日期表以显示“空数据”以允许“切换”工作,但我想有人可能知道我是否可以在不这样做的情况下更改它。

数据集的一个示例是:

跟进

这是我的输出的屏幕截图,我添加了数据标签以查看我是否出错了......但是我还为我的数据添加了阴影,我的数据实际上仍然存在,只是隐藏在我的辅助栏后面.. ....

你对我的数据集是正确的,我必须添加一个系列分组才能让我的约会全部出现,否则我只是让行上的第一个约会出现......

跟进 2

进一步跟进,我关注了@iamdave 的优秀 RangeChart.RDL

我已将我的数据集应用到它,但我现在得到以下输出,我知道我可能遗漏了一些简单的东西,我的直觉告诉我 cust_id 将所有约会分开到单独的行但我有两个主要的和辅助轴设置为“DrawSideBySide = False”

这是我的设置..

这是我最新的输出,如果我可以将所有行/条/线分组到 6 个托架中,那就太好了。

【问题讨论】:

  • 可能不适合你,但是背景填充绿色怎么样?
  • 嗨@WEI_DBA 为这个建议喝彩,它的解决方法有点笨拙,但看起来确实是唯一可用的选择。
  • 唯一的另一种方法是在该表上设置一个包含整个星期的约会时间的表(如日期表)和LEFT JOIN,然后用绿色条填补这些空白。
  • @WEI_DBA 这不是真的。 SSRS 是一个非常灵活的可视化工具,你只需要知道在哪里看,从我下面的回答中可以看出。
  • @iamdave,我得到了纠正......并学到了一些东西!谢谢!

标签: reporting-services charts colors sql-server-2008-r2 timeline


【解决方案1】:

您可以通过在原始数据集的基础上添加另一个数据系列来做到这一点,这将比WEI_DBA 建议的填充所有空白时段所需的处理时间少得多。

  1. 在您的数据集中,添加一个返回 dense_rank() over (order by BAY) as BayID 的新列(order by 应该是您想要的轴标签)。
    1. 这可能最好作为包装 select 语句来完成,以保持查询逻辑的其余部分不变。
  2. 在您的范围图中,添加另一个 Values 项目,与您当前的 Category Field 相同。
  3. Top Value 设置为1,将Bottom Value 设置为0
    1. 您还可以将其设置为数据集的 minmax 时间或报告的开始和结束时间段,以仅涵盖海湾可用的时间段。
  4. 将其设置为在 Secondary Axis 上同时显示 VerticalHorizontal 轴。
  5. 同时选择Do not show this series in a legend 选项。
  6. 以与主垂直轴完全相同的方式设置辅助垂直轴。
  7. 将第二水平轴MinimumMaximum 设置为与上面的BottomTop 相同的值。
  8. 隐藏两个辅助轴。
  9. 选择新的Values 项目并在Properties 窗口中展开CustomAttributes 部分并将DrawSideBySide 更改为False
  10. 如有必要,请调整 Values 项目在 Chart Data 窗口中的顺序,以确保新的范围栏显示在您的实际数据下方。
  11. 选择原始Values 项目并在属性侧栏中导航到Data > DataPoint
    1. AxisLabel 更改为 =Fields!BAY.Value(您的轴标签)。
    2. Values > X 更改为 =Fields!BayID.Value(第 1 点的值。)。

您现在应该有一个范围图,在实心条的顶部显示您的数据,您可以将其设置为您需要的任何颜色:

【讨论】:

  • 嗨@iamdave,我已经应用了你建议的方法,但结果有点不寻常。只有一个或两个红色数据点出现在绿色“次要”条的“上方”。我已经多次重复这些步骤,以防我错过了一些东西,因为这正是我想要的。感谢一百万迄今为止的帮助。如果您有什么需要知道的,请告诉我。
  • @unreal_event_horizo​​n 您能否在设计视图中添加图表的屏幕截图,并在您的答案中显示Chart Data 弹出窗口?由于系列的范围条被视为一个对象,因此它应该完全高于或低于图表中的任何其他范围条。这表明您有其他系列或类别需要考虑,或者您错误地遵循了我的步骤,或者我记录错误
  • @unreal_event_horizo​​n 如果有帮助,您可以从this WeTransfer link 下载此图表的 RDL 文件(将在 7 天后到期)
  • 感谢您的 .rdl。很棒的文件,我把它带到了我 2017 年的环境中,看看到底做了什么。然而,我的编辑中仍然遇到了一个问题(当前的资源问题意味着我们在 2008 年被困住了)。再次感谢您的支持。
  • @unreal_event_horizo​​n 啊,我知道这里有什么问题。您需要添加一个连续的BayID 值,其顺序与您希望它们在图表上显示的顺序相同。我在上面添加了一些细节,还上传了another WeTransfer share
猜你喜欢
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多