将总计显示为平均值之和(自定义小计)

时间:2013-06-11 08:44:27

标签: asp.net vb.net matrix rdlc

我有SQL Server查询,它返回以下数据: enter image description here

我想使用矩阵格式在RDLC 2008报告中显示数据,这应该给出以下结果: enter image description here

数量的总数应该在1月份返回12并且2月14日。 我尝试过许多不同的方法,其中一种方法是在矩阵'Qty'文本框中使用以下表达式:

=IIF(InScope("RowGroup_Category")
 ,IIF(InScope("RowGroup_SubCategory")
          ,Fields!Qty.Value
      ,Code.GetAverageMemberCount(Cint(Avg(Fields!Qty.Value)))
      )
     ,Code.TotalMemberCount
)

上述功能写在报告属性代码中,如下所示:

Public Dim TotalMemberCount As Integer = 0

Function GetAverageMemberCount(ByVal AverageMemberCount As Integer) As Integer
TotalMemberCount = TotalMemberCount + AverageMemberCount
    Return AverageMemberCount
End Function

我也尝试了RunningValue(Fields!Qty.Value,Sum,"RowGroup_Category")和许多此类功能,但我无法得到确切的结果。任何帮助将不胜感激..谢谢

2 个答案:

答案 0 :(得分:0)

尝试将其添加到新列中作为测试:

    RunningValue(Avg(Fields!MemberCount.Value,"RowGroup_Category"),SUM,Nothing)

如果值正确,您应该能够在总计字段中设置此表达式时将SUM更改为MAX。

您可以参考类似code.TotalMemberCount的总数,而不是使用get函数 但在这种情况下,我认为你不需要这个功能。

检查the following blog是否有类似的变量引用情况

答案 1 :(得分:0)

我能找到的解决这个问题的唯一解决方案是计算不同数据集中的平均值,并使用查找函数从那里填充总计。

在您的情况下,我会在原始数据集中添加一个关键列:

select Category + '|' + Month as key, Category, SubCategory, Month, Qty, Amt 
from YourTable

使用以下方法创建另一个数据集:

select Category + '|' + Month as key, Category, Month, avg(Qty)
from YourTable
group by Category, Month

将第二个结果作为DataSet2添加到报表中。 (在“报表数据”窗格中的Visual Studio中,右键单击“DataSet”。)

添加到报告属性 - >代码部分如下:

Function SumArray(varArray as array) as Decimal
     Dim retVal As Decimal = 0
     For Each item As Decimal In varArray 
         retVal = retVal + item
     Next
     Return retVal
End Function

最后在报告中使用以下表达式来表示总数:

=code.SumArray(Lookupset(Fields!key.Value, Fields!key.Value, Fields!qty.Value, "DataSet2"))

P.S。:确保您的代码也以与原始代码相同的方式填充第二个数据集。