0

我正在尝试根据报表表达式中同一列中的前一行值计算行值。我无法从数据库中预先计算这一点,因为计算的起点取决于输入参数,并且表中的值应在报告本身内动态重新计算。

在 Excel 中类比数据和公式如下所示(起点始终为 100):

   B      C             D            E
   Price  PreviousPrice CalcValue    Formula
1  NULL   NULL          100 
2  2.6    2.5           104          B2/C2*D1
3  2.55   2.6           102          B3/C3*D2
4  2.6    2.55          104          B4/C4*D3
5  2.625  2.6           105          B5/C5*D4
6  2.65   2.625         106          B6/C6*D5
7  2.675  2.65          107          B7/C7*D6

我试图计算期望值(“CalcValue”是设置表达式的列的名称),如下所示:

=Fields!Price.Value/ PreviousPrice.Value * Previous(reportitems("CalcValue").Value))

但出现错误“聚合函数只能用于页眉和页脚中包含的报表项”

您能否建议在我的情况下是否可以实现预期结果并提出解决方案?

先感谢您!

可悲的是,我仍然面临着问题:计算列不考虑以前的计算值。例如,我添加了默认值为 100 的 CalcVal 字段,并尝试使用上述方法进行计算,例如:=previous(runningValue(Fields!CalcVal.Value, sum, "DataSet1") ) * Fields!Price.Value/Fields!PreviousPrice.Value.

但在这种情况下,它总是Fields!Price.Value/Fields!PreviousPrice.Value乘以 100。例如 CalcVal on Fly 总是显示 200 =previous(runningValue(Fields!CalcVal.Value, sum, "DataSet1")) * 2

https://imgur.com/Wtg3Wsg

4

1 回答 1

0

我尝试使用您的示例数据,这是我如何获得结果

在此处输入图像描述

在此处输入图像描述

要使用的公式,您可能需要注意空值

  =Fields!Price.Value/(Fields!PreviousPrice.Value*Previous(Fields!CalcValue.Value))

编辑:在 Op 的评论后更新以回答

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

CalcValue 使用以下公式计算,即即时计算

=RunningValue(CountDistinct("Tablix6"),Count,"Tablix6"*100

然后最终值如下

=Fields!Price.Value/(Fields!PreviousPrice.Value*
Previous(RunningValue(CountDistinct("Tablix6"),Count,"Tablix6"))*100)
于 2019-07-18T08:38:03.443 回答