SSRS范围条形图,无数据时颜色不同

时间:2019-03-08 12:55:42

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

我希望更改自己建立的范围图中“间隙”中的颜色。

从本质上讲,我正在尝试为工作人员建立一个可视化视图,以查看托架上的可用性。红色标记表示海湾已被预订,我想要绿色,然后在红色之间突出显示自由海湾。

被占领的海湾:

Occupied Bays

我怀疑我需要回到我的数据集并添加一些日期表以显示“空数据”以允许“切换”工作,但我认为有人可能知道如果不这样做就可以更改此设置。

数据集的示例为:

Data Set Example

跟进

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

follow up data

您对我的数据集是正确的,我必须添加一个系列分组才能使所有约会都出现,否则我只会在该行中出现第一个约会而已。...

enter image description here

跟进2

进一步跟踪,我关注了@iamdave出色的RangeChart.RDL

我已经将数据集应用到它了,但是现在我得到以下输出,我知道我可能缺少一些简单的东西,我的直觉告诉我cust_id将所有约会都分开到单独的行上,但我同时拥有两个并将辅助轴设置为“ DrawSideBySide = False”

这是我的设置。 New Set Up

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

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以通过添加另一个基于原始数据集的数据系列来实现此目的,与WEI_DBA建议的所有空白时段的填充相比,此数据处理将大大减少。

  1. 在数据集中,添加新列以返回dense_rank() over (order by BAY) as BayIDorder by应该是所需的轴标签)。
    1. 最好将它包装成select语句以保留其余查询逻辑。
  2. 在范围图中,添加另一个Values,与您当前的Category Field相同。
  3. Top Value设置为1,将您的Bottom Value设置为0
    1. 您还可以将其设置为数据集的minmax时间或报告的开始和结束时间,以仅涵盖Bay可用的时间。
  4. 将其设置为在Secondary AxisVertical轴上显示在Horizontal上。
  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点的值)。

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