当报告项文本框=“ N / A”时,SSRS句柄#Error
当Textbox88 = N / A时,我在%单元格/列中收到#Error。
N / A来自iff(isnmeric(查找表达式,以= FALSE,“ N / A”
如何修改下面的表达式以处理其他字段中的“ N / A”?
结果可以简单地是百分比列中的另一个“不适用”。
当前表达式未处理#Error。
=(ReportItems!Textbox55.Value - ReportItems!Textbox88.Value) / ReportItems!Textbox88.Value
切换? IIF?
答案 0 :(得分:0)
#Error是通常由冲突数据类型引起的编译器错误。在上面的示例中,您似乎正在尝试在数学方程式中使用字符串“ N / A”。
首先,我建议每个人都将数据转换为所需的数据,而不是预期的数据。您可以使用CSTR()-字符串,CINT()-整数和CDEC()-十进制函数来完成此操作。
例如:
=(CINT(ReportItems!Textbox55.Value) - CINT(ReportItems!Textbox88.Value)) / CINT(ReportItems!Textbox88.Value)
这可以通过将文本框的数据类型强制为整数来解决您的问题。但是,您仍然可能会遇到#Error,因为该函数将为没有数字的字符串返回0,并且您将得到除以零的错误。
因此,我们可以使用IIF进行错误检查:
=IIF(ReportItems!Textbox55.Value = "N/A" or ReportItems!Textbox88.Value = "N/A", "N/A", (CINT(ReportItems!Textbox55.Value) - CINT(ReportItems!Textbox88.Value)) / CINT(ReportItems!Textbox88.Value))
答案 1 :(得分:0)
使用自定义代码结束:用= FALSE,0代替了= FALSE,“ N / A”
公共函数除法(ByVal除数为Double,ByVal除数为Double)为Double 如果IsNothing(除数)或除数= 0或IsNothing(除数)或除数= 0然后 返回0 其他 回报股息/除数 万一 结束功能
表达式:
= Code.Divide(((ReportItems!Textbox55.Value-ReportItems!Textbox88.Value),ReportItems!Textbox88.Value)