我试图找出如何汇总一个人工作的小时数,这些小时数由他们拥有的每个边缘代码重复。
数据看起来像这样
Company Code Employee Code Employee Name Hours Fringe Code Fringe Amount
030 12345 Joe Blow 8 VAC 10.00
030 12345 Joe Blow 8 DUE 5.00
030 12345 Joe Blow 8 INTDUE 2.00
030 54698 Alan Low 8 VAC 10.00
030 54698 Alan Low 8 DUE 5.00
030 54698 Alan Low 8 INTDUE 2.00
现在总小时数应为16.在报告中,我将以下字段分为公司代码,员工代码,员工姓名,小时,以便它们只出现一次(不知道如何显示)。
我尝试了以下
Sum(FIRST(Fields!Hours.Value, "Employee_Name") , "Company_Code")
但是我收到一个错误,说该值在外部聚合中使用了第一个聚合,并且不能将它们指定为嵌套聚合。
有什么想法吗?
答案 0 :(得分:1)
我不确定你想要什么,所以我猜一个可能的结果场景。
我已经复制了提供输入表。
使用此Tablix数据设置:
将此代码添加到报告中。此函数将标记必须求和的行。
Dim groups As System.Collections.Hashtable
Function MyFunc(ByVal group As Object) As integer
dim flag as integer
If (groups Is Nothing) Then
groups = New System.Collections.Hashtable
End If
If (Not groups.Contains(group)) Then
flag = 1
groups.Add(group, nothing)
else
flag = 0
End If
MyFunc = flag
End Function
这个表达式在tablix文本框中你想要总和。
=sum(val(iif(Code.MyFunc(Fields!Employee_Code.Value) = 1, Fields!Hours.Value, 0)))
您将获得此预览
如果这有用,请告诉我。
答案 1 :(得分:0)
我有一些上述建议的问题,但我想出了如何解决问题。
我使用了以下等式:
= SUM(MAX(Fields!Regular_Hours.Value,“Employee_Code”,“Company_Code”)
因此,我使用MAX函数在每个Employee Code中只出现一次,然后在Company Code分组中对该次事件求和。
感谢你们的帮助!