标题:求不同字段,上下行比较的循环程序
只看楼主
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
结帖率:100%
已结贴  问题点数:20 回复次数:10 
求不同字段,上下行比较的循环程序
各位老师好!
求在一个表中,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行;
......
一直循环到表的最后。
谢谢各位老师!

bj1.zip (19.96 KB)

b11.zip (231.99 KB)
搜索更多相关主题的帖子: 不同 字段 上下 循环 比较 
2020-08-06 09:40
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:10 
程序代码:
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编辑过]

2020-08-06 10:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 

好象没相等的
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
2020-08-06 11:52
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
得分:0 
回复 3楼 吹水佬
吹水佬老师,你好!
看了你写的程序。非常感谢你的帮助。
运行以后发现,表bj1中的字段没有了。
怎么也没看出来前面的语句能把一个字段删除?
另外,最后  && for bj==0   是什么意思
2020-08-06 17:36
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
得分:0 
回复 2楼 bccn201203
bccn201203,你好!
看到你写的程序,非常感谢!
程序中不能执行z27,z33两个字段的换位:z33的第100行与z27的第101行比较。
另外,我想能不能通过程序,将表bj1z、7个字段、bj字段的计算结果显示出来。不用事先做好表bj1。
2020-08-06 17:49
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:0 
2楼的代码在VFP6.0中运行也不会出现问题啊
不知楼主是如何操作的
看明白2楼代码的思路,你的一切问题就不是问题了

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

2020-08-06 19:16
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:0 
z27(字段)第100行的值,与z33(字段)第101行的值比较, 原文在1楼

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



不知道那句话的意思是代表楼主的真正意思
2020-08-06 19:26
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用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的记录用的
2020-08-06 19:30
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
得分:0 
回复 8楼 吹水佬
对不起,我看错了。bj字段位置变了,没看出来。没问题了。
2020-08-06 19:49
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 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
2020-08-06 19:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502746-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.149735 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved