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