Reporting services 如何在rdl报告中获取行内的组总数?

Reporting services 如何在rdl报告中获取行内的组总数?,reporting-services,ssas,olap-cube,rdl,Reporting Services,Ssas,Olap Cube,Rdl,如何获取行项目中的组总数? 我尝试了字段!Sales.Value/SUM(Fields!Sales.Value)但它返回1,而不是行金额/组金额报告返回行金额/行金额 PS:数据来自SSAS多维数据集。我总结了我想做的事情 您可以通过ReportItems比较这些值。也就是说,您可以为sales文本框和totalsales文本框指定名称,并使用这些值进行比较。以下表达式可能会按预期工作 = (ReportItems!SalesTextbox.Value / ReportItems!SalesTo

如何获取行项目中的组总数? 我尝试了
字段!Sales.Value/SUM(Fields!Sales.Value)
但它返回1,而不是
行金额/组金额
报告返回
行金额/行金额

PS:数据来自SSAS多维数据集。我总结了我想做的事情

您可以通过
ReportItems
比较这些值。也就是说,您可以为
sales
文本框和
totalsales
文本框指定名称,并使用这些值进行比较。以下表达式可能会按预期工作

= (ReportItems!SalesTextbox.Value / ReportItems!SalesTotalTextbox.Value) * 100.0
另一个要考虑的问题是,如果你的结果是1,你可能会处理你的数据中的整数除法。确保返回的数据带有
双精度
十进制
数据类型,而不是
整数
。如果您更正了数据类型,它可能会像您当前使用的那样工作。

您还需要处理“被零除”错误。使用“=IIf(分母=0,0,分子/分母)不起作用,因为“IIf”函数同时计算“then”和“else”,并且仍然会返回错误。我们使用了一点我在SO上找到的自定义代码(我希望我能记得它从哪里来,这样我就可以在到期的时候给它评分)


谢谢!我还必须处理像这样的除以零的情况
=IIF(ReportItems!SalesTotalTextbox.Value=0,0,(ReportItems!SalesTextbox.Value/ReportItems!SalesTotalTextbox.Value)*100.0)
Public Function HandleDivideByZero(ByVal numerator As Decimal, denominator As Decimal) As Decimal
        If denominator = 0 Then
            Return 0
        Else
            Return numerator / denominator
        End If
End Function