类型:转载 责任编辑:asp 日期:2007/03/01
我在做一个录入按钮的程序,程序代码如下:
if upper(trim(thisform.khdm.value))==.or.trim(thisform.khdb.value).... messagebox("请输入完整",64,"提示")
return
else
go top
loca for uppe(alltri(客户代码))==uppe(alltri(thisform.khdm.value))
if found()
messagebox("对不起,客户代码重复,请确认",32,"错误")
thisform.khdm.value=
return
else
messagebox("现在录入客户资料?请确认?",1+32,"提示信息")
append blank
repl 客户代码 with uppe(alltr(thisform.khdm.value)).....
hisform.khdm.value=
thisform.khdw.value=
thisform.khdb.value=
thisform.dz.value=
thisform.yb.value=
thisform.dh.value=
thisform.cz.value=
thisform.dzxx.value=
thisform.khh.value=
thisform.zh.value=
thisform.sh.value=
thisform.edit1.value=
return
endif
endif
我在执行的时候不管是对是错都说:对不起,客户代码重复,请确认,是怎么回事呀!
我听了,天涯明月刀师兄的意见,用brow &&&&&&&&&&&&调试看了,奇怪的是他把客户代码给我串改了,我真是觉得很奇怪.
这段指令的思路大概是:if 确认各项记录是否为空
messagebox("")
else if 判断客户代码是否重复
messagebox("提示重复")
else
append blank
然后各项清空继续下一个客户的输入
你们看看我这样的思路是不是有问题,望指点12.呵呵.如果是你们,你们大概是怎么做呢?
推荐阅读
我会把你的代码两别写在两个按钮中:
“新建”按钮:
清空各项,等待用户输入
“保存”按钮:
检查数据的有效性
判断客户代码是否重复
添加记录,保存数据
最好还能以某种方式记录当前任务状态,因为很可能会用同一表单完成新建、修改等操作。
我想你要搜索的关健字段的内容应该是等长的吧。
如果是的话,搜索前你最好做一下长度判断,以免写入乱七八糟的数据。
有没重复可以放在thisform.khdm.lostfocus为全事件里处理,仅供参考。
设立三个按钮,“新建,保存,退出”
新建按钮的代码
thisform.text1.value=
保存按钮的代码
if len(allt(thisform.text1.value))=0
=messagebox(末录入数据)
else
sele tablename
loca for uppe(allt(userid))==uppe(allt(thisform.text1.value)
&& 如发现相同的客户代码,默认为要修改记录
if found() && 记录末发现
appe blan && 加入新的。
endif
repl userid with uppe(allt(thisform.text1.value))
endif
我觉得你的表结构不太得劲,一般要是什么什么代码的话我比较喜欢用数字,
你的客户代码看来是字符的,还要用upper去处理。如果你想搞拼音助记符,可以再
加一个字段。如果是我,我一般这么写:
if len(trim(edit.text))=0 then
messagebox(.....)
retu
endif
select dbfname
go top
loca allt(fieldname)==allt(edit.text)
if eof()
message(....)
retu
endif
//最好用事物
append blank
repl .....
呵呵~~~基本和你的一样,不过你说把你的客户代码给改了,不知道你是指把表里的值改了
还是edit.text改了,不过不管是前者还是后者,我想你其它地方还有代码在捣乱……
比如edit的valid事件等等……
你先查查看,或者你用messagebox跟踪一下,看看click事件刚开始时改变了没??
初始化界面....