有几个文本框,其中有单价(text1)、数量(text2),现在想要计算金额(text3)而不是输入金额,要怎么计算?
thisform.text3.value=thisform.text1.value*thisform.text2.value
这样是不行的吧,应该怎么解决?
VFP数据类型转换的一个问题
答案:4 悬赏:70 手机版
解决时间 2021-02-12 16:25
- 提问者网友:精神病院里
- 2021-02-11 23:22
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-02-12 00:42
建立的文本框在没有明确类型和输入格式时,默认为“字符型”。当有的文本框输入数据,有的未输入数据进行运算时,就要先把其文本框类型变为一致,否则就出错。
要把文本框类型变为一致:
一是如“ sheming2009”所讲的,在需要参与计算的文本框上点右键——选“生成器”,类型选为“数值型”。这样就一致了,且比较简单,可直接用:thisform.text3.value=thisform.text1.value*thisform.text2.value
二是加入条件判断:
IF TYPE('thisform.text1.Value')="N" &&判断text1是否为数值型
aa=thisform.text1.Value
else
aa= VAL(thisform.text1.Value)
ENDIF
IF TYPE('thisform.text2.Value')="N" &&判断text2是否为数值型
bb=thisform.text2.Value
else
bb= VAL(thisform.text2.Value)
ENDIF
thisform.text3.value=aa*bb
当然是用第一种方法比较省事。但第二种方法是对原文本框属性不作任何修改的前提下,以能将不一致的数据变为一致。
要把文本框类型变为一致:
一是如“ sheming2009”所讲的,在需要参与计算的文本框上点右键——选“生成器”,类型选为“数值型”。这样就一致了,且比较简单,可直接用:thisform.text3.value=thisform.text1.value*thisform.text2.value
二是加入条件判断:
IF TYPE('thisform.text1.Value')="N" &&判断text1是否为数值型
aa=thisform.text1.Value
else
aa= VAL(thisform.text1.Value)
ENDIF
IF TYPE('thisform.text2.Value')="N" &&判断text2是否为数值型
bb=thisform.text2.Value
else
bb= VAL(thisform.text2.Value)
ENDIF
thisform.text3.value=aa*bb
当然是用第一种方法比较省事。但第二种方法是对原文本框属性不作任何修改的前提下,以能将不一致的数据变为一致。
全部回答
- 1楼网友:野味小生
- 2021-02-12 03:54
可以这样写
thisform.text3.value=val(thisform.text1.value)*val(thisform.text2.value)
val 的作用是将字符型数据转换为数值型。
- 2楼网友:罪歌
- 2021-02-12 02:20
u类型,代表无法识别的类型,是不能转换的.
stor iif(isnull(字段a),null,allt(字段a)) to czda
这句代码有问题吧? 应该这样吧:
stor iif(isnull(字段a),'null',allt(字段a)) to czda
另外你这种情况不建议设置字段允许null, 没有值可以用空格啊. 这样就无需检测是否.null.了
- 3楼网友:猎心人
- 2021-02-12 02:06
表达式是正确的,只是三个文本框都需要设置其类型为数值型(在文本框上点右键-生成器,类型选为数值型)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯