以下是引用永顺彭英宏在2020-4-26 10:36:27的发言:
谢谢:mywisdom88 ;但是改之后出现:只要是修改记录,当客户名称等与“其它记录”相同也可以保存。
LOCA for allt(单号)#allt(thisform.text1.Value) and (allt(客户名称)=allt(thisform.text4.Value) OR allt(电话)=allt(thisform.text7.Value) OR allt(手机)=allt(thisform.text7.Value) OR allt(微信)=allt(thisform.text7.Value))
*!* 建立测试数据
*!* 序号,单号,名称,电话,手机,微信
CLEAR
CREATE CURSOR zzyxkh(序号 I AUTOINC,单号 C(20),名称 C(20),电话 C(20),手机 C(20),微信 C(20))
FOR ii=1 TO 20
INSERT INTO zzyxkh(单号,名称,电话,手机,微信) VALUES ("D"+PADL(ii,5,"0"),"客户"+PADL(ii,5,"0"),"0755-2888"+PADL(ii,4,"0"),"1388888"+PADL(ii,4,"0"),"WX1388888"+PADL(ii,4,"0"))
ENDFOR
*BROWSE
*!* 开始测试1
LOCAL n序号,c单号,c名称,c电话,c手机,c微信
n序号 = 1
c单号 = "D00002" && 本来是D00001,修改D00002后,测试是否通过
c名称 = "客户00001"
c电话 = "0755-28880001"
c手机 = "13888880001"
c微信 = "WX13888880001"
SELECT zzyxkh
GO TOP
LOCATE FOR 序号 # n序号 AND (ALLTRIM(单号)=c单号 OR ALLTRIM(名称)=c名称 OR ALLTRIM(电话)=c电话 OR ALLTRIM(手机)=c手机)
IF FOUND()
?"序号 = " + TRANSFORM(n序号) + " ,与序号 = ",序号,序号,单号,名称,电话,手机,微信,"重复"
ENDIF
* 此时,应该显示 D00002 这个行数据,因为 序号=1时,本来单号=D00001的,但上面修改为D00002,所以重复
*!* 开始测试2
LOCAL n序号,c单号,c名称,c电话,c手机,c微信
n序号 = 2
c单号 = "D00002"
c名称 = "客户00003" && 本来是客户00002,修改客户00003后,测试是否通过
c电话 = "0755-28880002"
c手机 = "13888880002"
c微信 = "WX13888880002"
SELECT zzyxkh
GO TOP
LOCATE FOR 序号 # n序号 AND (ALLTRIM(单号)=c单号 OR ALLTRIM(名称)=c名称 OR ALLTRIM(电话)=c电话 OR ALLTRIM(手机)=c手机)
IF FOUND()
?"序号 = " + TRANSFORM(n序号) + " ,与序号 = ",序号,序号,单号,名称,电话,手机,微信,"重复"
ENDIF
* 此时,应该显示 D00003 这个行数据,因为 序号=2时,本来名称=客户D00002的,但上面修改为客户D00003,所以重复
* 同样,只要你“单号,名称,电话,手机,微信”有1个相同,就能找出来