ReportViewer除零

时间:2008-10-01 16:30:37

标签: reportviewer

我的报告中有一些公式,并且为了防止divsion为零,我在表达式字段中这样做:

= IIF(Fields!F1.Value<> 0,Fields!F2.Value / Fields!F1.Value,0)

这通常可以正常工作,但是当F1和F2都为零时,我在报告中得到“#Error”,我收到此警告:“文本框'textbox196'的值表达式包含错误:尝试划分零。“

为什么?

3 个答案:

答案 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子句。