请教两个关于用表单增加记录的奇怪的问题!!
问题1.我设计了一个在表中增加记录并输入数据的表单,在“开始”按钮click中输入以下代码:
THIS.CAPTION="继 续"
SELE CAILIAO
begin tran
APPE BLAN
THISFORM.cldm.value=""
THISFORM.CLM.VALUE=""
THISFORM.GZ.VALUE=""
THISFORM.KCSL.VALUE=0.00
THISFORM.DW.VALUE=""
THISFORM.CLDJ.VALUE=0.00
THISFORM.BZ.VALUE=""
THISFORM.CLDM.ENABLED=.T.
THISFORM.JHSDM.ENABLED=.T.
THISFORM.CLZL.ENABLED=.T.
THISFORM.CLM.ENABLED=.T.
THISFORM.GZ.ENABLED=.T.
THISFORM.KCSL.ENABLED=.T.
THISFORM.DW.ENABLED=.T.
THISFORM.CLDJ.ENABLED=.T.
THISFORM.BZ.ENABLED=.T.
THISFORM.CLDM.SETFOCUS
THISFORM.REFRESH
THIS.ENABLED=.F.
THISFORM.COMMAND2.ENABLED=.t.
THISFORM.COMMAND3.ENABLED=.T.
THISFORM.COMMAND4.ENABLED=.f.
奇怪的是,我在appe blan后面加上语句?recno()和wait""后,返回的记录值是-1,appe blan不是自动定位新增加的记录处的吗?为什么会这样?然后我又在这段程序的最后放这两条语句,显示的结果居然是3,我只有一条记录,appe blan后也只有两条记录,为什么指针会到了最后的呢??
问题2:
我的JHSDM和CLZL是组合框来的(其他都是文本框),我在输入CLDM的数据后,经过一段在valid的验证代码如下:
local r
r=recno()
cldm1=ALLTRIM(this.value)
if len(alltrim(this.value))=10
loca for alltrim(cailiao.cldm)==alltrim(this.value)
if not eof()
=messagebox("已经有此材料代码,请从新输入材料代码!",48+0+0,"警告")
return 0
else
go r
repl cailiao.cldm with cldm1
retu .t.
endi
else
=messagebox("请输入十位的材料代码!",48+0+0,"警告")
retu 0
endi
除了cldm文本框外,其他的文本框和组合框都用controlsource绑定了数据表的字段。
到go r处出错,原因是问题1,但是在我输入cldm的时候,JHSDM和CLZL是无效的!为什么会这样??我明明把它们的enabled至1了的啊!