使用SSRS 2016并插入一个矩阵报告表,以显示/计算月费率和总额。由LookUp
字段得出的月费率,该字段查找PoolCar
并从不同的Daily_Cost
获取DataSet
,然后乘以Days
值字段:
= Lookup(Fields!PoolCar.Value, Fields!Registration.Value, Fields!Daily_Cost.Value, "PoolCar_Costs") * Sum(Fields!Days.Value)
但是,无法计算该列的sum()
。
有什么想法吗?
我尝试使用“变量”选项,但它不允许聚合。
更新:
答案 0 :(得分:0)
已编辑(请参见您在表达式中(“代码”部分)调用的代码):
您可以通过多种方式进行操作。要么在查询短语构建器中进行总和...
SQL :
SELECT T1.*,
(SELECT Sum(S1.Daily_Cost) FROM YourTableName S1 WHERE S1.Registrations = T1.PoolCar) AS SumYouWantToCalculateBeforeTheReport
FROM YourTable T1
...或者您可以使用自定义代码来实现。
此解决方案要求您的tablix包含一个“详细信息”部分,您在其中传递要对每个详细信息行求和的字段的值,然后在页脚部分中显示/使用总和进行计算
您在表达式(“详细信息”部分)中调用的代码
=Code.ValueIWantToSum(Lookup(Fields!PoolCar.Value, Fields!Registration.Value, Fields!Daily_Cost.Value, "PoolCar_Costs"))
详细信息部分完成后在表达式中调用的代码(组页脚)
=Code.DailyCostSum()
自定义代码
Private runningtotal As Decimal = 0
Function ValueIWantToSum(svalue As Decimal) as String
runningtotal = runningtotal + svalue
Return "added"
End Function
Private DailyCostSum() As Decimal
Return runningtotal
End Function
答案 1 :(得分:0)
无休止的时间后,我碰到了this website,在其中进行了更详细的说明。
最后我发现,重要的一点是应该使用表达式所在的列外面的分组!
以下代码已添加到“报表属性”中的“代码”部分。
Public Shared Value as Double=0
Public Shared Function GetValue(Item as Double) as Double
value= value + Item
return Item
End Function
Public Shared Function GetTotal()
return value
End Function
数据行具有以下表达式:
=Code.GetValue( Sum(Fields!Days.Value) * Lookup(Fields!PoolCar.Value, Fields!Registration.Value, Fields!Daily_Cost.Value, "PoolCar_Costs") )
总行具有以下表达式:
=Code.GetTotal()