作者在 2015-03-25 00:23:59 发布以下内容
* 说明:原表为Cjb.Dbf<见附件>,准考证号前4位为学校编码,要求根据成绩按 学校编码 分类排出 名次,排出的结果见 名次 字段,遇到不同的学校编码,名次从1开始排,当成绩相同时排出的名次一样,最后结果如:1133567
* 代码为VFP9版本
T1=Seconds()
Select Left(准考证号,4) 学校编码,准考证号,总成绩,000000 名次 From Cjb Order By 学校编码,总成绩 Desc Into Cursor Mcb ReadWrite
Go Top
Scatter Memvar Fields 学校编码,总成绩
lnCnt=1 && 记录相同学校编码的人数
lnMc=1 && 记录相同学校编码的名次
Scan
If 学校编码=M.学校编码
If 总成绩!=M.总成绩
lnMc=lnCnt
EndIf
Else
lnCnt=1
lnMc=1
EndIf
Replace 名次 With lnMc
lnCnt=lnCnt+1
Scatter Memvar Fields 学校编码,总成绩
EndScan
MessageBox("共运行 "+Transform(Seconds()-T1)+" 秒")
Browse