使用当前范围的条件聚合不同范围的值

时间:2014-11-10 15:38:31

标签: visual-studio vba reporting rdlc dynamics-nav-2013

这可能有点难以解释。我试图总结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")

我在这里没有想法,所以任何帮助都会受到赞赏。

0 个答案:

没有答案