| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2040 人关注过本帖
标题:在程序中加上set filter to设置循环时为什么老是转圈
只看楼主 加入收藏
xiao2009xiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-10-25
结帖率:40%
收藏
已结贴  问题点数:10 回复次数:5 
在程序中加上set filter to设置循环时为什么老是转圈
我有一个排定名次的程序,可以正确运行。
在数据表中有xk字段,类型是数值型的,从1到13, 我想对1到13中每个数对应的所有数据进行排序,加了下面的语句
for i=1 to 13
set filer to xk=i
  排定名次程序
set filter to
endf
但是执行时鼠标就开始转圈了

如果换成
set filer to xk=1
  排定名次程序
set filter to
就能执行,为什么会出现这个问题?
谢谢各位高手指点!
搜索更多相关主题的帖子: set filter 循环 语句 执行 
2018-05-09 11:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:5 
执行set filter后要移动记录指针,如:
set filter to ......
go top
2018-05-09 11:37
xiao2009xiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-10-25
收藏
得分:0 
回复 2楼 吹水佬
谢谢,上面加循环那个加上go  top 就可以了是吗?
下面的那个不需要加go top就能够执行!
2018-05-10 08:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:0 
以下是引用xiao2009xiao在2018-5-10 08:54:03的发言:

谢谢,上面加循环那个加上go  top 就可以了是吗?
下面的那个不需要加go top就能够执行!

没见到完整代码,不清楚具体做什么。
看调用set filter命令(set filer 这里是否笔误),只说说执行set filter后要移动记录指针。
执行set filter后只要移动记录指针就可以,不一定是 go top,如用LOCATE速度更快些。
2018-05-10 09:25
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:508
专家分:1248
注 册:2010-1-11
收藏
得分:5 
回复 楼主 xiao2009xiao
要循环13次,估计转圈会晕倒
2018-05-10 11:47
xiao2009xiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-10-25
收藏
得分:0 
回复 4楼 吹水佬
就下面这个程序,如果不用循环直接由set filter to xk=1 就可以


SET TALK OFF
SET SAFE OFF

&&排定市名次


for i=1 to 13

set filter to xk=i


inde on left(kh,3)+str(1000-zcj,7,2)  tag shimingci

count all for xk=i to qsrenshu



go top
qmingci=1
lsmc=1

linshizcj=zcj
wenli=subs(kh,3,1)
for i=1 to qsrenshu
    repl qmc with qmingci
    if not eof()
    skip
    endif
  if wenli=subs(kh,3,1)
    lsmc=lsmc+1
    if  zcj<linshizcj
        linshizcj=zcj
        qmingci=lsmc
     endif
   else
    qmingci=1
    lsmc=1
    linshizcj=zcj
    wenli=subs(kh,3,1)
   endif
endf


&&校名次

inde on left(kh,4)+str(1000-zcj,7,2)  tag xmingci


go top
xmingci=1
lsmc=1
linshizcj=zcj
xx=subs(kh,3,2)
for i=1 to qsrenshu
    repl xmc with xmingci
    if not eof()
        skip
     endif   
  if xx=subs(kh,3,2)
    lsmc=lsmc+1
    if  zcj<linshizcj
        linshizcj=zcj
        xmingci=lsmc
     endif
   else
    xmingci=1
    lsmc=1
    linshizcj=zcj
    xx=subs(kh,3,2)
   endif
endf


&&班名次

inde on left(kh,6)+str(1000-zcj,7,2)  tag bmingci

go top
bmingci=1
lsmc=1
linshizcj=zcj
bbj=subs(kh,3,4)
for i=1 to qsrenshu
    repl bmc with bmingci
    if not eof()
    skip
    endif
  if bbj=subs(kh,3,4)
    lsmc=lsmc+1
    if  zcj<linshizcj
        linshizcj=zcj
        bmingci=lsmc
     endif
   else
    bmingci=1
    lsmc=1
    linshizcj=zcj
    bbj=subs(kh,3,4)
   endif
endf

set filt to

endf
set talk on
set safe on


2018-05-10 20:31
快速回复:在程序中加上set filter to设置循环时为什么老是转圈
数据加载中...
 
   



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

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