我的报告中有一些公式,并且为了防止divsion为零,我在表达式字段中这样做:
= IIF(Fields!F1.Value<> 0,Fields!F2.Value / Fields!F1.Value,0)
这通常可以正常工作,但是当F1和F2都为零时,我在报告中得到“#Error”,我收到此警告:“文本框'textbox196'的值表达式包含错误:尝试划分零。“
为什么?
答案 0 :(得分:3)
IIF()只是一个函数,就像任何 all 函数一样,在调用函数之前会对进行求值,包括Fields!F2.Value/Fields!F1.Value
。换句话说,尽管有Fields!F1.Value <> 0
条件,它仍会尝试除以零。
答案 1 :(得分:1)
必须有比这更漂亮的方法,但这应该有效:
=IIF(Fields!F1.Value <> 0, Fields!F2.Value /
IIF(Fields!F1.Value <> 0, Fields!F1.Value, 42), 0)
答案 2 :(得分:0)
但是,您可以使用
if Fields!F1.Value <> 0
then
Fields!F2.Value/Fields!F1.Value
else 0
哪个应该有效,因为如果“if”部分为false,它不会评估then子句。