SSRS在柱形图列的基础上显示标签

时间:2013-10-11 15:01:27

标签: ssrs-2008

我正在尝试将此列聊天的标签显示在列的基础上,就像在下面的第二张图片中一样。然而,该解决方案并不完全有效,因为它会扭曲其他信息。

有没有人知道实现这个目标的适当方法,这是不是很直接。

enter image description here

1 个答案:

答案 0 :(得分:11)

我正在使用以下数据:

enter image description here

采用标准图表:

enter image description here

第一个图表系列是我们的数据系列,图表类型为标准列,第二个图表系列具有图表类型的线,基于目标值来获取图表区域中所需的行。

正如您可能已经看到的那样,您可以控制标签放置,但不能满足您的要求。我们能做的最好的事情是使用底部位置作为标签位置,这个位置甚至不接近:

enter image description here

enter image description here

我们能做什么?首先,从现有系列中删除标签。

接下来,在图表中添加一个新系列:

enter image description here

基本上我们在这里使用一个常数,它应该是Y轴的下限。我在这种情况下使用 0

这个新的图表系列需要按照所有图表系列的顺序首先

将前两个图表系列的图表类型更改为堆积列

enter image description here

为此图表系列添加系列标签。在系列标签属性下设置标签数据表达式。我用过的表达是:

= Sum(Fields!val.Value,“CategoryGroup”)

由于两个图表系列共享相同的范围,我们可以利用它来获取上述数据组的值。

此处,CategoryGroup类别组的名称:

enter image description here

更新的图表如下所示:

enter image description here

结果是每列的 base 标签符合要求:

enter image description here

看起来像是必需的结果,即使花了一段时间才到达那里。

因此,通过使用位于每个组的Y轴底部的虚拟图表系列,我们可以根据需要将标签锚定在底部,并使用标签表达式显示不同 Chart Series值,它在实际数据组上看起来是一个标签!

在评论后修改

你绝对可以使用表达式来设置最小轴值以及虚拟图表系列,这只是你是否可以得到所需的一个。

在我的例子中,假设我们在数据集中将轴值更改为最小值:

enter image description here

即。 =Min(Fields!val.Value)

由于虚拟图表系列将查看每个类别组的范围,我们需要稍微不同的表达式来获得相同的值:

=Min(Fields!val.Value, "DataSet1")

这会像我们预期的那样改变图表:

enter image description here

您还可以为值添加缓冲区,例如:

=Min(Fields!val.Value) - 1

所以你没有得到没有高度的列。

对于更复杂的表达式,可能存在问题,即在2008年,您无法获得聚合的聚合,这可能是有用的,即使这样,也很难将其带入虚拟图表系列。

有时,如果可能的话,最简单的方法是使用预生成的这些值向数据集添加列,并使用这些字段而不是尝试在报告中计算它。