标题:求助,VF下标超界问题,关于数组的,用的是into array
只看楼主
wanming
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-11-23
结帖率:100%
已结贴  问题点数:20 回复次数:23 
求助,VF下标超界问题,关于数组的,用的是into array
补充:
    同志们先别说循环的问题,我自信循环这没出问题,最主要是的,我用了这个查询sele count(*) from 表 where yw>=80 group by bj into array rs以后,连编的时候提示“找不到未知的rs”,这怎么解决??难道rs需要提前定义吗?是的话怎么定义?下图中的ZFrs等于我在这举的例子rs




我有一个程序,用了一个查询
sele count(*) from 表 where yw>=80 group by bj into array rs
[比如bj一共是6个]
引用时用的一个循环,比如
j=1
do whle j<=6
    repl all ywrs with rs(j) for bj=j        [已经打开了一个表,ywrs是此表的一个字段]
    j=j+1
enddo

连编的时候提示rs未定义

于是我在前面定义了dime rs(100),注:100足够大
又连编时提示下标超界,但是只有六个班,我定义的已经足够大了,为什么呢?

难道是因为into array rs中的rs只有rs(1)一个数值吗?如果是这样,我应该怎么解决?

最奇怪的是,我不用程序的形式,拷出这两个表,在命令窗口试,完成成功的
比如:sele count(*) from 表 where yw>=80 group by bj into array rs
repl ywmc with rs(1)
skip
repl ywmc with rs(2)
skip
repl ywmc with rs(3)
这样是完全有值的

[ 本帖最后由 wanming 于 2013-12-3 09:49 编辑 ]
搜索更多相关主题的帖子: count where 
2013-12-03 09:20
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:3 
循环变量没有自增  源循环陷入死循环状态

DO IT YOURSELF !
2013-12-03 09:29
wanming
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-11-23
得分:0 
回复 2楼 wp231957
不是,是有自增的,我忘记写了
2013-12-03 09:30
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
得分:3 
FOR J=1 TO ALEN(rs)
    repl all ywrs with rs(j) for bj=j        [已经打开了一个表,ywrs是此表的一个字段]
ENDFOR
2013-12-03 09:35
wanming
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-11-23
得分:0 
回复 4楼 bccn0906
同志们先别说循环的问题,我自信循环这没出问题,最主要是的,我用了这个查询sele count(*) from 表 where yw>=80 group by bj into array rs以后,连编的时候提示“找不到未知的rs”,这怎么解决??难道rs需要提前定义吗?是的话怎么定义?
2013-12-03 09:46
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
得分:0 
以下是引用wanming在2013-12-3 09:20:51的发言:

补充:
    同志们先别说循环的问题,我自信循环这没出问题,最主要是的,我用了这个查询sele count(*) from 表 where yw>=80 group by bj into array rs以后,连编的时候提示“找不到未知的rs”,这怎么解决??难道rs需要提前定义吗?是的话怎么定义?
不用的,连编可以略跳过,运行没影响
2013-12-03 09:49
wanming
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-11-23
得分:0 
回复 6楼 bccn0906
如果忽略就出现这个

程序e:\中学教师分析系统20131202\prog\js.prg包含下列错误:
    未知的 ZFRS - 未定义
    未知的 GKRS - 未定义

运行时会出现“下标超界”
2013-12-03 09:52
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:3 
以下是引用bccn0906在2013-12-3 09:49:13的发言:

不用的,连编可以略跳过,运行没影响
连编可以略跳过好象不行吧
2013-12-03 09:55
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
得分:0 
你太过自信你循环没出问题了,程序要键壮,最好加个数据元素数目判断

wait wind ALEN(rs) &&看看数目是多少?


FOR J=1 TO ALEN(rs)
    repl all ywrs with rs(j) for bj=j        [已经打开了一个表,ywrs是此表的一个字段]
ENDFOR
2013-12-03 09:56
wanming
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-11-23
得分:0 
以下是引用bccn0906在2013-12-3 09:56:19的发言:

你太过自信你循环没出问题了,程序要键壮,最好加个数据元素数目判断

wait wind ALEN(rs) &&看看数目是多少?


FOR J=1 TO ALEN(rs)
    repl all ywrs with rs(j) for bj=j        [已经打开了一个表,ywrs是此表的一个字段]
ENDFOR


因为这个查询用的是gruop by bj而且我表中的bj是1,2,3,4,5,6没有别的数值,按理说数组rs里面有6个值,我也在命令窗口试过,rs(1)至rs(6)都有值
至于循环,因为程序的需要,我求了max(bj),所以用的是for J=1 to max(bj),自信循环没有错是因为这个循环里有很多repl,只是不是数组里面的,如果我把rs()值去掉,循环完全正确
2013-12-03 10:03



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




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

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