注册 登录
编程论坛 VFP论坛

求不同字段,上下行比较的循环程序

yd1954 发布于 2020-08-06 09:40, 2047 次点击
各位老师好!
求在一个表中,2个字段上下行的比较,并循环的程序。
发过去2个表。b11,bj1
例:b11中,z27(字段)第100行的值,与z33(字段)第101行的值比较,
如相等,在bj1的bj(字段)第100行中记0;
如不相等,在bj1的bj(字段)第100行中记1。

再进行z27第101行与z33第102行的比较,并记录在bj1的bj(字段)第101行;
再进行z27第102行与z33第103行的比较,并记录在bj1的bj(字段)第102行;
......
一直循环到表的最后。
谢谢各位老师!

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
10 回复
#2
bccn2012032020-08-06 10:16
程序代码:
CLEAR ALL
USE bj1
BLANK FIELDS bj ALL
SELECT z27, z33 FROM b11 INTO ARRAY aa
FOR lnj = 2 TO ALEN(aa, 1)
    REPLACE bj WITH IIF(aa[lnj, 2] = aa[lnj - 1, 1], 0, 1) RECORD lnj - 1 IN bj1
ENDFOR
SELECT bj1
BROWSE



[此贴子已经被作者于2020-8-6 12:30编辑过]

#3
吹水佬2020-08-06 11:52
只有本站会员才能查看附件,请 登录

好象没相等的
USE b11 IN 0 ALIAS b1
USE b11 IN 0 ALIAS b2 AGAIN
USE bj1 IN 0
SELECT bj1
SET RELATION TO RECNO() INTO "b1", RECNO()+1 INTO "b2" ADDITIVE
REPLACE ALL bj1.bj WITH IIF(b1.z27==b2.z33,0,1)
BROWSE FIELDS qihao,bj,b1.z27,b2.z33 &&FOR bj==0
#4
yd19542020-08-06 17:36
回复 3楼 吹水佬
吹水佬老师,你好!
看了你写的程序。非常感谢你的帮助。
运行以后发现,表bj1中的字段没有了。
怎么也没看出来前面的语句能把一个字段删除?
另外,最后  && for bj==0   是什么意思
#5
yd19542020-08-06 17:49
回复 2楼 bccn201203
bccn201203,你好!
看到你写的程序,非常感谢!
程序中不能执行z27,z33两个字段的换位:z33的第100行与z27的第101行比较。
另外,我想能不能通过程序,将表bj1z、7个字段、bj字段的计算结果显示出来。不用事先做好表bj1。
#6
bccn2012032020-08-06 19:16
2楼的代码在VFP6.0中运行也不会出现问题啊
不知楼主是如何操作的
看明白2楼代码的思路,你的一切问题就不是问题了

[此贴子已经被作者于2020-8-6 19:18编辑过]

#7
bccn2012032020-08-06 19:26
z27(字段)第100行的值,与z33(字段)第101行的值比较, 原文在1楼

z33的第100行与z27的第101行比较。原文在5楼



不知道那句话的意思是代表楼主的真正意思
#8
吹水佬2020-08-06 19:30
以下是引用yd1954在2020-8-6 17:36:21的发言:

吹水佬老师,你好!
看了你写的程序。非常感谢你的帮助。
运行以后发现,表bj1中的字段没有了。
怎么也没看出来前面的语句能把一个字段删除?
另外,最后  && for bj==0   是什么意思

哪个字段删除了?
BROWSE FIELDS qihao,bj,b1.z27,b2.z33 &&FOR bj==0
这句是在bj1联系b11的情况下浏览相关联的bj1的qihao、bj字段和b11的z27、z33字段
FOR bj==0 是查看z27==z33的记录用的
#9
yd19542020-08-06 19:49
回复 8楼 吹水佬
对不起,我看错了。bj字段位置变了,没看出来。没问题了。
#10
吹水佬2020-08-06 19:56
回复 9楼 yd1954
或者这样:
只有本站会员才能查看附件,请 登录

USE b11 IN 0 ALIAS b1
USE b11 IN 0 ALIAS b2 AGAIN
USE bj1 IN 0
SELECT bj1
SET RELATION TO RECNO() INTO "b1", RECNO()+1 INTO "b2" ADDITIVE
REPLACE ALL z27 WITH b1.z27, z33 WITH b2.z33, bj WITH IIF(b1.z27==b2.z33,0,1) IN "bj1"
BROWSE
#11
foxprosue2021-03-01 08:36
学习了
1