日期:2014-05-20  浏览次数:21014 次

RDLC报表文本框显示"错误号"?
报表中有个文本框,表达式如下,

=IIf(Sum(Fields!A.Value)=0,0,Sum(Fields!B.Value) / Sum(Fields!A.Value))

为防止除数为零错误,使用IIF函数先判断,但报表生成后,Sum(Fields!A.Value)=0的仍然显示"错误号",
Sum(Fields!A.Value)<>0的则正常。

------解决方案--------------------
参考公式:
VB code
if {sc裁片细码单_报表.数量}=0 or isnull({sc裁片细码单_报表.数量})  then 
0 
else 
{sc裁片细码单_报表.数量}

------解决方案--------------------
我是用公式来解决了,你那个是表达式,
表达式我没弄过,不懂
------解决方案--------------------
聚合函数只对数值有用,你确定Fields!A.Value的值类型为数值型?
我就是这样解决的
------解决方案--------------------
不可能,我用那么久的rdlc这种问题都可以避免的,你是不是忽略了其他地方
------解决方案--------------------

这样使用
=IIf(Sum(CDec(Fields!A.Value))=0,0,Sum(CDec(Fields!B.Value)) / Sum(CDec(Fields!A.Value))) 
在对列字段求和进先进行类型转换,这样即使你的A.Value不为数值型也没关系
------解决方案--------------------
不可能
------解决方案--------------------
=IIf(0=Sum(CDec(Fields!A.Value)),0,Sum(CDec(Fields!B.Value)) / Sum(CDec(Fields!A.Value))) 
这样试一下,实在不行就用<>
------解决方案--------------------
探讨
引用:
不可能


试了,还是不行,我这个文本框是放在组尾区,与这个有关吗?但为什么 <>0的就计算正常呢?

------解决方案--------------------

对你报表的数据源的结构和报表结构不清楚,所以无法看出什么原因,你用<>0进行判断,看数据是不是对的啊
------解决方案--------------------
就你的这个表达式而言是没有错的,我刚刚试过了,

你仔细检查一下分组和数据源看看有没有错,不要再想这个本是正确的东西错在哪里了,因为它没有错
------解决方案--------------------
我也遇到这个问题,没解决,就让它显示错误号了
------解决方案--------------------
=IIf(Val(Fields!A.Value)=0,0,Val(Fields!B.Value) / Val(Fields!A.Value))