VF问题 十万火急!大家帮个忙!
public array a(3)
public array b(3)
public array c(3)
public d
public array e(3)
select 1
select 顾客信息.进场时间 from 顾客信息 where 顾客信息.编号=thisform.Combo1.value into array a
thisform.text1.value= ttoc(a(1))
e(1)=(datetime()-a(1))/3600
thisform.label8.caption=str(e(1),10,5)+"小时"
select 顾客类型 from 顾客信息 where 顾客信息.编号=thisform.Combo1.value into array b
thisform.label7.caption=b(1)
select 2
select 收费标准 from 收费标准表 where 顾客类型=thisform.label7.caption into array c
store e(1)*c(1) to d
thisform.label9.caption= str(d,10,4)+"元"
这是自己写的 可是总在ore e(1)*c(1) to d报错 数据类型不匹配 什么原因!赶紧!急死人啦!
[解决办法]
c(1) 是值是什么?建议你调试中检查一下。是不是数字?
[解决办法]
应该是数组c不为数值型,可能是一个空值,数组e应该没有问题,如果有问题前两行就出问题了,建议用store e(1)*iif(c(1)=null,0,c(1)) to d ,或者在上一行的select中处理也行.
[解决办法]
1、将SQL语句中thisform.Combo1.value修改为变量
GG=thisform.Combo1.value
select 顾客信息.进场时间 from 顾客信息 where 顾客信息.编号=GG into array a
2、检查数组中是否有内容,应该是数组没有内容。
[解决办法]
1、不要用 a b c 等做变量,你可以参考VFP自带帮助中的 命令规则。因为a b c等有时也是工作区的代号。
2、
store e(1)*c(1) to d
改为
store Nvl(e(1),0)*Nvl(c(1),0) to d
其他的也要照着这样改一下。