回复 10楼 sdta
我听了你的建议改的,原始数据必须得排序后才能用,没法直接用,我用笨办法加了两个备注字段(bz1,体现考试日期,bz2,体现考试科目)重新排的序
程序代码:CLOSE DATABASES
USE 新数据 ALIAS yssj
BLANK FIELDS 组别, 序号, px ALL && 增加一个PX字段,用于最后排序用
INDEX on 考试日期 + 科目 TAG rqkm
USE 总分组 IN 0 ALIAS msap
SELECT msap
SCAN
SELECT yssj
lnrs = 0
SCAN FOR ALLTRIM(考试日期) == ALLTRIM(msap.考试日期) AND ALLTRIM(科目) == ALLTRIM(msap.科目) AND (EMPTY(组别) AND EMPTY(序号))
lnrs = lnrs + 1
REPLACE 组别 WITH msap.kch, 序号 WITH lnrs, px WITH RECNO("msap")
IF MOD(lnrs, msap.kcrs) = 0
EXIT
ENDIF
ENDSCAN
ENDSCAN
SELECT yssj
SET ORDER TO
SELECT * FROM 新数据 ORDER BY px, 考试日期, 科目, 组别, 序号 INTO CURSOR tt
BROWSE &&FOR EMPTY(序号)
程序代码:CLOSE DATABASES
USE 新数据 ALIAS yssj
BLANK FIELDS 组别, 序号, px ALL && 增加一个PX字段,用于最后排序用
INDEX on 考试日期 + 科目 TAG rqkm
USE 总分组 IN 0 ALIAS msap
SELECT msap
ln1 = 0
ln2 = 0
SCAN
SELECT yssj
IF msap.kch = ln1
lnrs = ln2
ELSE
lnrs = 0
ENDIF
SCAN FOR ALLTRIM(考试日期) == ALLTRIM(msap.考试日期) AND ALLTRIM(科目) == ALLTRIM(msap.科目) AND (EMPTY(组别) AND EMPTY(序号))
lnrs = lnrs + 1
REPLACE 组别 WITH msap.kch, 序号 WITH lnrs, px WITH RECNO("msap")
IF MOD(lnrs, msap.kcrs) = 0
EXIT
ENDIF
ENDSCAN
ln1 = msap.kch
ln2 = msap.kcrs
ENDSCAN
SELECT yssj
SET ORDER TO
SELECT * FROM 新数据 ORDER BY px, 考试日期, 科目, 组别, 序号 INTO CURSOR tt
BROWSE
