以下是我的SSRS 2005报告中字段的VB表达式代码。此表达式代码仅返回IIF Statement
的假部分。但是它没有理由不返回真正的部分,因为它引用了包含数据的正确colomn。
VB代码
=IIF(CBOOL(Fields!OverallCPT.Value) = TRUE OR Fields!OverallCPT.Value > 0 OR Fields!OverallCPT.Value <> 0,
FORMAT((AVG(Fields!CPT_Time.Value) / 60000),"00") & ":" & FORMAT((AVG(Fields!CPT_Time.Value) mod 60000/1000),"00") ,Nothing)
以下是我用于将数据转换为可用格式的数据集的一部分。
SQL数据集代码
Convert(Bigint,DatePart(minute,[Arrival Time]) * 60000) + Convert(Bigint,Datepart(second,[Arrival Time])*1000) AS 'CPT Time'
当数据集返回我在IIF statement
中提供的条件的值时,为什么此IIF Statement
会返回false。
答案 0 :(得分:0)
尝试将IIF更改为调试目的:
=IIF(TRUE,1,0)
如果你仍然得到意想不到的结果,我会建议你的“真实”和“错误”结果可能处于错误的位置。 (当条件为真时,您没有指定您打算返回的内容 - 正确的语法是条件优先,然后是真实结果,最后是错误结果)
如果没有,那么你的if条件或者你对OverallCPT的计算都有一个错误。您可能还需要验证[到达时间]是否包含您期望的值。你的if条件在语法上看是正确的,但我无法确定它是你想要它没有更多信息。