5

请原谅这个问题的模糊标题。也许下面会更好地问我的问题。

考虑下面的汇总表:

Fruit   Units   FruitSales%
-----   -----   -----------
Apples     10             ?
Oranges    20             ?
Bananas    10             ?
NonFruit   10             ?

TOTAL      50             ?

我需要的FruitSales%专栏是:Fruit / (Total - NonFruit)

如果 NonFruit 是它自己的产品名称,我如何获得它的值以用于 tablix 中的其他计算?

我想我的 FruitSales% 公式类似于:

Sum(Fields!Units.Value) / (ReportItems!txtTotalUnits.Value - SumIf(Fields!Fruit = "NonFruit", Fields!Units.Value)

但是, SumIf 不存在,即使存在,它也将特定于当前行。

当我在这里时ReportItems!txtTotalUnits.Value,我显然已经命名了那个文本框,但是有没有更简洁的方法来引用它?

4

1 回答 1

3

假设底层 DataSet (我称之为FruitDataSet)如下所示:

在此处输入图像描述

我根据这些数据创建了一个简单的报告:

在此处输入图像描述

Fruit Sales %表达式为:

=Sum(IIf(Fields!fruit.Value <> "NonFruit", Fields!units.Value, 0))
  / Sum(IIf(Fields!fruit.Value <> "NonFruit", Fields!units.Value, 0), "FruitDataSet")

这给出了我认为正确的结果:

在此处输入图像描述

关于表达式有两点需要注意:

  1. 通过Sum针对IIf表达式运行,您可以控制总数中包含的内容 - 这里我将NonFruit明确设置为0

  2. 通过设置聚合表达式的范围,您可以获得用于计算总百分比的总体总计 - 在报告中,我使用FruitDataSet获取总计并将其与组级别总计进行比较以获得百分比值。

您引用文本框总数的方式很好;唯一的其他选择是每次您想要总计时使用一个表达式 - 如果这在 Tablix 之外,您将需要显式设置范围,例如 DataSet。

于 2013-06-03T08:41:42.097 回答