SSRS图表标签

时间:2016-11-07 15:27:19

标签: sql-server reporting-services charts

我需要一些帮助,找出如何在SSRS的堆叠图表中准确显示标签;我需要在下面的图表中单独表示上层堆栈。

图表本身有两种状态,它可以基于红色绿色数据,两者都在同一个数据源中。

目前图表看起来像这样(这是基于绿色数据):

enter image description here

正如您可以清楚地看到图表中的标签和图例都完全混乱。我们的想法是有一个传奇,我们有两个项目(延迟问题和未完成的问题);一个显示任何未完成的问题,另一个显示超出估计截止日期的任何未完成的问题。

供参考:上图应该有1个未解决的问题和5个未决问题(3个正在进行和2个未完成的问题,请参阅下面有关阶段的更多信息)。

enter image description here

在图表中,我们希望对上述要求进行数字表示。基本上是代表未决问题的数字,以及显示任何未完成问题的数字。

这是红色表示的样子:

enter image description here

此时我不确定再出现什么问题了。如前所述,它们都运行在相同的数据集上,但值略有不同。

红色跟踪器具有简单的True / False值,它运行大部分数据,而绿色跟踪器具有三个值(5-7)的数字表示。它代表的数据是:5 - 开放,6 - 正在进行,7 - 关闭。

我试图仅在系列是上述三个数字中的任何一个时获得绿色数据,而且当它只获得任何未关闭的数据时(5,6但不是7)。

这是为图表的栗色部分设置标签的代码(它只是一个可行的片段。):

IIF(Count(IIF(Fields!Outstanding.Value = 1 AND 
Fields!TRK_TrackerStatus_LKID2.Value <> 7, 1, Nothing)) = 0, "",
Count(IIF(Fields!Outstanding.Value = 1  AND 
Fields!TRK_TrackerStatus_LKID2.Value <> 7, 1, Nothing))))

它基本上做的是检查是否有超过0项未完成且未完成(不是7)。如果大于0,则设置标签。如果有0个计数项,则标签应为空字符串。

1 个答案:

答案 0 :(得分:0)

我认为您想要做的是根据状态编号对您的系列数据进行分组。您可以在数据集查询中将其作为case语句执行,也可以在系列组中使用表达式:

我在那里使用的表达如下:
=switch(Fields!Status.Value = 5, "Group 1", Fields!Status.Value = 6, "Group 2", Fields!Status.Value = 7, "Group 2", TRUE, "Group 3")

这实际上是根据字段中的值为数据分配分组值。在这种情况下,Status 5变为Group 1Status 67变为Group 2,所有其他值变为Group 3只是为了确保报告中的数据不明显。

它的作用是将图表与原始数据一起显示(左侧)并将其转换为我认为您想要看到它的方式(右侧):

您还需要将相同的逻辑应用于图表标签。出于这个原因,我建议您在原始SQL脚本中添加一个列,为您执行此分组,因此您只需进行一次更改。