繁体   English   中英

SQL Report Builder:从tablix中的组中获取值

[英]SQL Report Builder: get value from group within tablix

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

请考虑以下聚合表:

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 ,我显然已经命名了那个文本框,但有没有更清晰的方法来引用它?

假设底层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. 通过对IIf表达式运行Sum ,您可以控制总计中包含的内容 - 这里我将NonFruit显式设置为0

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

你引用文本框总的方式很好; 唯一的另一种选择是每次你想要总数时使用一个表达式 - 如果这是在Tablix之外你需要显式设置Scope,例如DataSet。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM