我已经编辑了我的问题并用新的解释替换了之前的解释。 我想以前我不能清楚地解释我的问题。这是我的情景:
Col1 |Col2 |Col3 |Col4 |Col5 | Col6
------|------|------|-------|------| 3333.00 (Table 1)
------|------|------| 15.00| 0.00| 3348.00 (Table 2)
------|------|------| 0.00|550.00| 2798.00 (Table 2)
Sub ToTal:-----| 15.00|550.00| 2798.00 (Table 3)
在本报告中,表1的值(3,333.00)为期初余额。对于Table2和Table3,col4是Deposit,Col5是Withdraw。表2和表3的最后一栏是期末余额。因此,规则是,表2第一行的期末余额应计算为(ClosingBalance = OpeningBalance + Deposit - Withdrawal)。并且第一行的结算余额应为第二行的开仓余额。表3与它们无关。
现在的问题是3333.00来自查询所以我们可以很容易地计算3348.00,但我不知道如何计算2798.00,因为它需要上面的单元格值3348.00。类似地,如果表2生成10行而不是最后一列的第一个值应该从3333.00计算,剩余的行将从上面的单元格计算它们的值,即2798.00取决于3348.00,如果有下一行,它将取决于2798.00。所以我这样做了:
IIf(RowNumber(DatasetName) = 1, value of Table1(3333.00) + and remaining values to calculate 3348.00, Previous(ReportItems!MyTextBoxName.Value) + other values)
现在它给了我错误:
textrun的值表达式'Amount8.Paragraphs [0] .TextRuns [0]'在报表项上使用聚合函数。聚合函数只能用于页眉和页脚中包含的报表项。
我搜索了不同的论坛,发现在这种情况下我无法使用ReportItems。那么,我该怎么办?
我知道我的情景很复杂,解释起来比较复杂,但我尽力了。请告诉我你的任何解决方案。
答案 0 :(得分:0)
尝试上一个(复制MyTextboxName中使用的表达式)
答案 1 :(得分:0)
您可以在SQL语句中使用Lag
函数来获取以前的值。
SELECT Field1, Lag(Field1,1,NULL) OVER(PARTITION BY .... ORDER BY ....)
FROM Table1.....
这里有几篇文章可以帮助您了解滞后细节