Reporting services SSRS报表组参数表达式导致除法错误

Reporting services SSRS报表组参数表达式导致除法错误,reporting-services,expression,Reporting Services,Expression,我有一个报告使用表达式对组进行排序,但当从参数中选择一个值时,它返回一个“分组“grp”的排序表达式包含错误:试图除以零。” 使用的表达式如下所示 =Choose(Parameters!sort.Value, Choose(Parameters!set.Value,Fields!IncomeOfficer.Value,Fields! ManagementArea.Value,Fields!RentGroup.Value,Fields!Tenure.Value), -Sum(Fields!R

我有一个报告使用表达式对组进行排序,但当从参数中选择一个值时,它返回一个“分组“grp”的排序表达式包含错误:试图除以零。”

使用的表达式如下所示

=Choose(Parameters!sort.Value,
Choose(Parameters!set.Value,Fields!IncomeOfficer.Value,Fields!    ManagementArea.Value,Fields!RentGroup.Value,Fields!Tenure.Value),
-Sum(Fields!RentCollected.Value,"grp"),
Sum(Fields!RentDue.Value,"grp"),
-Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp"))
如有任何想法,我将不胜感激


谢谢

在您的报告代码中添加一个函数来处理被零除的错误:

Public Function Divider (ByVal Dividend As Double, ByVal Divisor As Double)
If IsNothing(Divisor) Or Divisor = 0
  Return 0
Else
  Return Dividend/Divisor
End If
End Function
然后在表达式中调用函数:

code.Divider( Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp") )

您只需检查您的
Sum(Fields!RentDue.Value,“grp”)
是否返回0或null,如果返回0或null,您不需要除以
Sum(Fields!RentCollected.Value,“grp”)/Sum(Fields!RentDue.Value,“grp”)
否则就分道扬镳

我更新了下面的表达式

=Choose(Parameters!sort.Value,
Choose(Parameters!set.Value,Fields!IncomeOfficer.Value,Fields!    ManagementArea.Value,Fields!RentGroup.Value,Fields!Tenure.Value),
-Sum(Fields!RentCollected.Value,"grp"),
Sum(Fields!RentDue.Value,"grp"),
-IIF(IsNothing(Sum(Fields!RentDue.Value,"grp")) or Sum(Fields!RentDue.Value,"grp")=0,Sum(Fields!RentCollected.Value,"grp"),  Sum(Fields!RentCollected.Value,"grp")/Sum(Fields!RentDue.Value,"grp")))

谢谢Supersimer,在哪里/如何添加此函数?以前从未在SSRS中创建过函数。在visual studio中,在报告区域、报告属性、代码外单击鼠标右键。在“自定义代码”框中输入函数代码。我注意到复制函数时遗漏了一些内容。现在的错误是[BC30455]参数没有为“Public Function Divider(Divider为Double,Divider为Double)as Object”的参数“divisior”指定。我将代码分隔符放在组的排序中。对这个错误有什么看法吗?它会带着同样的错误回来。还有什么想法吗?这可能是分组中的表达吗=选择(参数!set.Value,Fields!IncomeOfficer.Value,Fields!ManagementArea.Value,Fields!RentGroup.Value,Fields!任期.Value)