这可能有点难以解释。我试图总结RDLC / Dynamics Nav 2013 R2中的值,我遇到了一些范围问题。
想象一下以下数据结构:
Document No. | Order No. | Document Date | Amount
----------------------------------------------------
1111 | ABCD | 01.01.2014 | 2000.00
1112 | ABCD | 01.01.2014 | 2000.00
2222 | XYZX | 20.01.2014 | 9999.00
3333 | ABCD | 10.11.2014 | -1000.00
5555 | ABCD | 10.12.2014 | -1000.00
...
我想要做的是按月分组所有数据,然后按订单号分组。到目前为止,非常好。但是当我在11月份并获得文件3333
时,我需要在该日期之前总结订单号ABCD的所有金额。所以我认为我可以将Sum
- 函数与全局DataSet_Result
范围一起使用,然后按当前月份进行过滤。我将当前月保存在VB变量中。但是当我访问Code.GetCurrentMonth()
时,该函数似乎返回0
。
我进行了一些实验,发现通过代码访问VB-Variables似乎在聚合函数中不起作用。最终结果应如下所示:
January
Order No. | Document No. | Amount
---------------------------------------------
ABCD | - | 4000.00 (Total)
| 1111 | 2000.00
| 1112 | 2000.00
XYZX | - | 9999.00 (Total)
| 2222 | 9999.00
-------------------------------------
November
Order No. | Document No. | Amount
---------------------------------------------
ABCD | - | 3000.00 (Total)
| 3333 | -1000.00
-------------------------------------
December
Order No. | Document No. | Amount
---------------------------------------------
ABCD | - | 2000.00 (Total)
| 5555 | -1000.00
一些额外的信息:我有两个行组。第1组按Month(Document Date.Value)
分组,第2组按Order No.
分组。组1的单元格有一个表达式,调用函数Code.SetCurrentMonth(Month(Document Date.Value))
。该函数如下所示:
Public Shared Dim month As Integer = 0
Public Function SetCurrentMonth(val As Integer) As Integer
month = val
Return month
End Function
GetCurrentMonth()看起来像这样:
Public Function GetCurrentMonth() As Integer
Return month
End Function
我在组2中的文本框表达式中调用GetCurrentMonth()。这是表达式:
=Sum(CDbl(iif(Month(Fields!DocumentDate.Value) < Code.GetCurrentMonth(), Fields!LineAmount, 0)), "DataSet_Result")
我在这里没有想法,所以任何帮助都会受到赞赏。