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