| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2362 人关注过本帖
标题:请教循环语句
只看楼主 加入收藏
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
以下是引用bccn0906在2013-11-27 13:44:39的发言:

Use WX In 0
Use CY2 In 0
SELECT CY2
SCAN
    CALCULATE MIN(Random) TO Random_TMP FOR hydl=CY2.hydl And fc=CY2.fc And Not(bZ2=='1') IN WX
    SELECT WX
    LOCATE FOR hydl=CY2.hydl And fc=CY2.fc And Not(bZ2=='1') AND Random=Random_TMP
    If Found()
        Replace bZ2 With '1' In WX
        Replace WIGHT0 With WX.WEIGHT,NH0 With WX.NH0,code10 With WX.code10,NH10 With WX.Nhl In CY2
    Else
        =Messagebox('错误',64,'提示')
    Endif
    Select CY2
Endscan
Close Databases
谢谢,下午开会,明天试试看
2013-11-27 19:59
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
回复 28楼 bccn0906
你好,刚试了这段程序,发现CY2里是每一层对应WX里的同层的一家随机数最小样本,而不是CY2里每一家对应WX里同层的每一家
2013-11-28 11:22
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
.....

[ 本帖最后由 bccn0906 于 2013-11-28 15:31 编辑 ]
2013-11-28 11:31
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
回复 33楼 bccn0906
是啊,我说的每一家就是每一条的意思,但我运算出来是比如53的第一层有7条记录,这七条记录都是对应WX里53第一层里随机数最小的那条记录,而不是说CY2里53第一层第二条应该对应wx里同层除了已标记那家随机数最小的记录
2013-11-28 11:36
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
....

[ 本帖最后由 bccn0906 于 2013-11-28 15:31 编辑 ]
2013-11-28 11:41
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
回复 35楼 bccn0906
这个和昨天那个好像没变化么,刚运行全是错误提示。。。。。
2013-11-28 11:48
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
回复 35楼 bccn0906
不好意思,你这段程序应该没问题,因为有几条记录对不上,我估计是我这个程序抽的时候有问题
 use cy1.dbf
 sele 2
 use yb.dbf
 sele 3
 use wx.dbf
 SELECT 4
 USE cy2.dbf
 SELECT 4
 DELETE ALL
 PACK

 for i=53 to 89
     for m=1 to 5
         sele 2
         sele * from yb where hydl=i and fc=m into dbf ls1
         SELECT ls1
         n=RECCOUNT()
         k=n+5
         SELECT 1
         SELECT * FROM cy1 WHERE hydl=i AND fc=m INTO dbf ls2
         SELECT ls2
         s=RECCOUNT()
         IF k<=s
             SELECT 3
             SELECT * FROM wx WHERE hydl=i AND fc=m INTO dbf ls3
             SELECT ls3
             x=RECCOUNT()
             IF x<>0
                 SELECT top x * FROM cy1 ORDER BY random WHERE hydl=i AND fc=m INTO dbf ls4
                 SELECT 4
                 APPEND FROM ls4
                 SELECT ls4
                 USE
                 DELETE FILE ls4.dbf
             ENDIF  

             SELECT ls3
             USE
             DELETE FILE ls3.dbf
            
         ENDIF
         SELECT ls1
         USE
         DELETE FILE ls1.dbf
         SELECT ls2
         USE
         DELETE FILE ls2.dbf
         
     ENDFOR
 ENDFOR
 CLOSE ALL
2013-11-28 11:59
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
......

[ 本帖最后由 bccn0906 于 2013-11-28 15:31 编辑 ]
2013-11-28 12:00
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
回复 38楼 bccn0906
是啊,我是根据我上面帖的这个程序抽的,按理说和WX的应该都对应起来,你能不能棒哦看看是不是那个程序有问题?谢谢
2013-11-28 12:41
qiaolinxj
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2009-3-14
收藏
得分:0 
回复 38楼 bccn0906
崩溃了,现在一条都对应不上,随机数取的最小数都是0,问题压根就没哟0
2013-11-28 12:59
快速回复:请教循环语句
数据加载中...
 
   



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

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