回复 5楼 wengjl
程序代码:
CLOSE DATABASES
SELECT 0
USE zkcj &&打开成绩表zkcj
SELECT * from zkcj orde by byxx,zf desc into cursor temp READWRITE &&打开成绩表zkcj,按byxx,zf两个字段降序(orde by * descend,的作用是按某个字段降序排列,升序是ascend),排列生成临时表temp(与原表结构完全相同),允许写入。
SELECT temp &&打开临时表temp
GO TOP &&到表第一行
cbj=temp.byxx &&让变量cbj等于临时表byxx字段,这一句作用是什么?
DO whil not EOF() &&作用:只要不到文件尾,就不退出循环
nmcz=1 && 总名次
nmcd=1 && 相同名次
ntot=temp.zf &&让ntot等于临时表总分。不知道怎么理解
REPLACE temp.xxpm with nmcd &&替换临时表的学校排名为nmcd
DO whil not EOF() and temp.byxx=cbj &&&& 遇到不同校(班)了退出。
SKIP &&下移一条记录
nmcz=nmcz+1 &&总名次+1
IF temp.zf=ntot &&不知道怎么理解
REPLACE temp.xxpm with nmcd &&替换临时表xxpm为相同名次
ELSE
nmcd=nmcz
REPLACE temp.xxpm with nmcd &&替换
ntot=temp.zf
ENDIF
ENDDO
cbj=temp.byxx &&这一句的作用?
ENDDO &&& 完成名次的计算
*----
SELECT temp
SCAN
SELECT zkcj
LOCATE for zkcj.zkzh ==temp.zkzh &&&&& 表中加了准考证号(zkzh)是作为唯一标识码使用的
IF FOUND()
REPLACE zkcj.xxpm with temp.xxpm
ENDIF
SELECT temp
ENDSCAN &&& 将计算结果写回到表
RETURN
cbj=temp.byxx &&让变量cbj等于临时表byxx字段,这一句作用是什么?
DO whil not EOF() &&作用:只要不到文件尾,就不退出循环
nmcz=1
&& 总名次
nmcd=1
&& 相同名次
ntot=temp.zf &&让ntot等于临时表总分。不知道怎么理解
REPLACE temp.xxpm with nmcd
&&替换临时表的学校排名为nmcd
DO whil not EOF() and temp.byxx=cbj
&&&& 遇到不同校(班)了退出。
SKIP
&&下移一条记录
nmcz=nmcz+1
&&总名次+1
IF temp.zf=ntot &&不知道怎么理解
REPLACE temp.xxpm with nmcd
&&替换临时表xxpm为相同名次
ELSE
nmcd=nmcz
REPLACE temp.xxpm with nmcd
&&替换
ntot=temp.zf
ENDIF
ENDDO
cbj=temp.byxx &&这一句的作用?
ENDDO
&&& 完成名次的计算
我基础太差了,老师给了代码,我一句一句的研究,也是看不明白
,看看哪位老师能给备注一下每一句的作用及含义。
有的备注是我自己加的,也可能不对
[此贴子已经被作者于2019-8-13 11:14编辑过]