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

Hel*_*rld 4 ssrs-2008

我试图让这个列聊天的标签出现在列的基础上,就像在下面的第二张图片中一样.然而,该解决方案并不完全有效,因为它会扭曲其他信息.

有没有人知道实现这一目标的适当方式,这令人不安,这不是直截了当的.

在此输入图像描述

Ian*_*ton 11

我正在使用以下数据:

在此输入图像描述

采取标准图表:

在此输入图像描述

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

正如您可能已经看到的那样,您可以控制标签放置,但不能满足您的要求.我们能做的最好的是使用Bottom位置作为标签位置,它甚至不是很接近:

在此输入图像描述

在此输入图像描述

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

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

在此输入图像描述

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

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

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

在此输入图像描述

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

= Sum(Fields!val.Value,"CategoryGroup")

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

这里CategoryGroup类别组的名称:

在此输入图像描述

更新的图表如下所示:

在此输入图像描述

结果是根据需要在每列的基础上添加标签:

在此输入图像描述

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

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

评论后编辑

您绝对可以使用表达式来设置最小轴值以及虚拟图表系列,这只是您是否可以获得所需的精确值.

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

在此输入图像描述

=Min(Fields!val.Value)

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

=Min(Fields!val.Value, "DataSet1")
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

=Min(Fields!val.Value) - 1
Run Code Online (Sandbox Code Playgroud)

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

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

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