使用聚合函数定义RDLC图表轴

时间:2019-05-03 20:06:42

标签: rdlc

我的一张嵌入式图表的自动轴性能不佳,有时只显示顶部和底部以外的另一个主要值。因此,我认为自己要设定自己的界限,鉴于图表上的一列总是比其他任何列都要大,所以这似乎很容易。

<Maximum>=(((Max(Fields!Entered.Value, "Chart1") + 10) \ 50) + 1) * 50</Maximum>

(其他专栏详细介绍了进入此过程的事物所发生的事情)

向上舍入到最接近的50,有一点多余,将标签放在顶部。然后,我可以将间隔除以5,得到黄金。

除了我不是金子。图表按日期对记录进行分组,并且各个条形为Sum(Fields!Entered.Value)等,因此当在同一日期处理多个批次时,其规模将大大缩小。但是,它按日期对记录进行分组,我可以使用它:

<ChartCategoryHierarchy>
  <ChartMembers>
    <ChartMember>
      <Group Name="Chart1_CategoryGroup">
        <GroupExpressions>
          <GroupExpression>=Fields!Date.Value</GroupExpression>
        </GroupExpressions>
      </Group>
    </ChartMember>
  </ChartMembers>
</ChartCategoryHierarchy>

为:

<Maximum>=(((Max(Fields!Entered.Value, "Chart1_CategoryGroup") + 10) \ 50) + 1) * 50</Maximum>

,它将在整个组中汇总。对吧?

  

图表'Chart1'的ValueAxis_Primary.Maximum表达式的范围参数对于聚合函数无效。必须将scope参数设置为一个字符串常量,该常量必须等于包含组的名称,包含数据区域的名称或数据集的名称。

不!对于“ Chart1”来说,它很好用,但对于“ Chart1_CategoryGroup”,它却不起作用!

所以,嗯:

  • 轴计算在什么范围内运行,因为它不是类别范围吗?
  • 是否可以通过某种方式为他们提供按日期对数据进行分组的汇总范围,以便他们可以正确进行计算?

1 个答案:

答案 0 :(得分:0)

您必须嵌套示波器

一些额外的工作给了我这种见解:

Max(Fields!Entered.Value, "Chart1_CategoryGroup")返回单个类别组中的输入的字段的最大值,这不是Y轴关注的级别。您感兴趣的是整个图表的汇总计算(在一个组内)的最大值,因此,请指定执行此操作的范围:

<Maximum>
  =(((Max(
    Sum(Fields!Entered.Value, "Chart1_CategoryGroup")
  , "Chart1") + 10) \ 50) + 1) * 50
</Maximum>