| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4639 人关注过本帖
标题:求助:编一段小程序提示记录超出范围
只看楼主 加入收藏
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 7楼 吹水佬
男生分班,在数据库中想这样,如何根据成绩降序排列后写入班级
成绩名次    班级
1            1
2            2
3            3
4            4
5            5
6            6
7            6
8            5
9            4
10           3
11           2
12           1
13           1
2017-07-17 18:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
回复 11楼 chychychy
7楼的结果能否符合要求
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

2017-07-17 18:54
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 12楼 吹水佬
谢谢,因为电脑安装的是vf 6 所以测试没成功,等我安装vf 9 试试,另外因为是新手,我还是想明白我写的那段,错误出在哪?应该如何改进语句的合理性,如果搞不明白,以后还是没法继续学习。
2017-07-17 22:00
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 12楼 吹水佬
你好,我安装vf9 为什么测试你7楼的只有男的没有女的,另外你写的语句我没大看懂,烦请你注释一下帮我学习新知识,另外烦请你帮我修改我写的那段的错误,谢谢。
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-07-17 22:19
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用chychychy在2017-7-17 22:19:50的发言:

你好,我安装vf9 为什么测试你7楼的只有男的没有女的,另外你写的语句我没大看懂,烦请你注释一下帮我学习新知识,另外烦请你帮我修改我写的那段的错误,谢谢。

c男女 = "女" 时是处理xb="女"的数据记录。
就几条命令语句,参考一下帮助文件去体会一下可加深认识。
2017-07-18 06:51
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用chychychy在2017-7-17 22:19:50的发言:

另外烦请你帮我修改我写的那段的错误,谢谢。

goto n 这句没控制好,通常能不用 goto n 就不用。
简单修改一下:

USE "成绩统计原始稿(带性别) - 副本.dbf"

sort on zf /d to tempnans for xb='男' &&男生临时数据库
&&sort on zf /d to tempnvs for xb='女' &&女生临时数据库
use
&&分男生
sele 1
use tempnans &&男生临时数据库

**count to rs
**n=1  &&
m=1  &&班数变量
**goto 1
GO TOP
do while not eof()
&&do while n<rs
    && 正序
    m=1
    **do while m<=6
    do while not eof() AND m<=6
        **goto n
        repl bj with m
        m=m+1
        SKIP
        **n=n+1
    enddo
    &&倒序
    m=6
    **do while m>=1
    do while not eof() AND m>=1
        **goto n
        repl bj with m
        m=m-1
        **n=n+1
        SKIP
    enddo
enddo

GO top
BROWSE

use
2017-07-18 07:20
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 16楼 吹水佬
谢谢,学了,你这一改,一目了然,我原来想用skip,但试了好几次没成功,一个m变量和skip,足矣。
另外又学一大神(我以为)方法也是没怎么看懂,我测试男生问题,他用一句就解决了,烦请看看,帮我解释一下:
他现在数据库里zmc列写入学生成绩名次,然后用这句
replace all bj with iif(mod(zmc-1,12)<6,mod(zmc-1,6)+1,6-mod(zmc-1,6))
若是分7个班则用
replace all bj with iif(mod(zmc-1,14)<7,mod(zmc-1,7)+1,7-mod(zmc-1,7))
2017-07-18 07:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:7 
n=6 && 6为班级数
replace all bj with iif(mod(zmc-1,2*n)<n,mod(zmc-1,n)+1,n-mod(zmc-1,n))

坚守VFP最后的阵地
2017-07-18 08:20
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用chychychy在2017-7-17 17:49:55的发言:
测试你这段代码,没有写入分班呀

图片附件: 游客没有浏览图片的权限,请 登录注册

sort on zf /d to tempnans for xb='男' &&男生临时数据库
&&sort on zf /d to tempnvs for xb='女' &&女生临时数据库
use
 &&分男生
sele 1
 clear
 use tempnans &&男生临时数据库
count to rs
 n=1  &&
 m=1  &&班数变量
GO TOP
 * 把3楼的 do while 这段改为下面
 * 123456,654321
  m=1
  add=1 &&先设置 +
  do while NOT eof()
     repl bj with m &&更新班级
     if add=1
        m=m+1
        if m>=7 &&到了 最大班级数+1时,从最大开始 -
           m=6
           add=0
        endif
     else
        m=m-1
        if m<=0 &&到了0时,从1开始 +
           m=1
           add=1
        endif
     endif
     SKIP 1
  ENDDO
 BROWSE

 use
2017-07-18 08:50
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用sdta在2017-7-18 08:20:59的发言:

n=6 && 6为班级数
replace all bj with iif(mod(zmc-1,2*n)<n,mod(zmc-1,n)+1,n-mod(zmc-1,n))

绝,但很多新手,看不明白。我自己看了10分钟(没动手测试),还看不出门道。
2017-07-18 08:53
快速回复:求助:编一段小程序提示记录超出范围
数据加载中...
 
   



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

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