1

我在 SSRS 2008 (R2) 报告中有以下工资表:

工资表

数据集返回由以下字段组成的人工交易:

STARTDATE
STARTTIME
FINISHDATE
FINISHTIME
REGULARHRS (difference between finish and start)
REFWO (such as "Travel", "Holiday", "Work", etc and is used to sort into the categories shown in the table above)
TIMEWORKED (0/1 flag that indicates whether or not it counts towards "Time Worked" category)

我有一个在 STARTDATE 分组的列,以便显示一周中的每一天(我们的周从周一到周日)。包括“无薪休假”在内的所有内容Sum(IIF(something,A,B)都是每日列和每周(总计)列中的一个简单表达式(通常只是格式)。在“临时常规”框中(用于日期分组),我有以下表达式:

=IIF(Weekday(Fields!startdate.Value)=1 
     OR Weekday(Fields!startdate.Value)=7 
     OR ReportItems!Holiday.Value>0,
    0,
    ReportItems!TimeWorked.Value-ReportItems!Holiday.Value-ReportItems!Bereave.Value)

基本上我在说的是:如果 STARTDATE 是星期六、星期日或节假日,则正常工作时间将为 0,因为它会落入 OT1.5(加班时间半),否则我计算正常工作时间通过从工作时间中减去假期时间和丧亲时间(因为两者都包含在工作时间中)。这部分效果很好!!但是当我尝试使用它来总结一周的总数时,=Sum(ReportItems!InterimRegularDaily.Value)它告诉我我不能在报表项上使用聚合,并且聚合函数只能用于页眉和页脚中包含的报表项。我已经进行了广泛的谷歌搜索以查看是否有解决方案,但一切似乎都涉及编写自定义函数。我不敢相信在一个外部组中简单地总结一个组计算会这么难!

任何和所有的帮助将不胜感激!!

谢谢!

4

1 回答 1

0

您可以添加Sum()表达式的范围以尊重整个数据集或组:

'Returns the sum of the whole DataSet
=Sum(Fields!TestField.Value, "YourDataSetName")

'Returns the sum of a group
=Sum(Fields!TestField.Value, "YourGroupName")

您还可以堆叠它们:

=Sum(Sum(Fields!TestField.Value, "Level3GroupName"), "Level2GroupName")
于 2018-11-28T05:37:39.867 回答