计算字段的问题(50分)

  • 主题发起人 主题发起人 lshiren
  • 开始时间 开始时间
L

lshiren

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一计算字段Js(float型),其值由字段FieldA(float型)和
FieldB(float型)相加得到。FieldA、FieldB由DBEdit输入。当
FieldA和FieldB都有输入时,Js可以得到一个值。当FieldA或FieldB
不输入时,Js的值就为NULL。
请问这是什么原因啊?该如何解决?送上50大洋,还请各
位笑纳。
 
在oncaculatefield事件里做呀
CacField := table1.fieldbyname('f1').value +
table1.fieldbyname('f2').value;
 
在oncalc中算,不知你的JS是什么型的。
 
我就是按CJ的方法做的,不过,我发现当FieldA和FieldB中有一个不
输入数值的话,无论另外的那个字段输入什么值,Js的计算结果返回的值
总是NULL。不信的话,大家可以试一试。
Js也是Float型。

 
ongettext里试试
 
我刚才试了一下可以。我在oncaculatefield事件里
这样写:
Table1FieldNew.AsFloat:=Table1FieldA.AsFloat+Table1FieldB.AsFloat;
Table1FieldA,Table1FieldB 是在Table1的 Field Editor 中的。
我试得很好,你再试试。
 
原因很简单吗:包括NULL的表达式的结果自然是NULL拉,如NUll+1的结果是NULL.
解决方法可如wuhee所说,不过当A,B皆为空时,new的值就为0了。
 
设js为isnull(fielda,0)+isnull(fieldb,0)就可以不是null了.
 
多人接受答案了。
 
后退
顶部