在样本表末尾增加一空白行(用 appe blan 命令),随意在某些列的最后一行添加1(增加一行空白行之后,最好在该列全是空白的那列最一行添加1),再执行编程排序,得出的排序结果,就不准确啊。我是用6楼您原来的编程并加以完善,没有任何修改:
CREATE CURSOR T (FIELD_NAME C(10),NUM N(4)) && 过渡表
SELECT * FROM 样本表 INTO CURSOR TEMP READWRITE
*--- 在数据表最后插入一条记录
INSERT INTO TEMP ((FIELD(2))) VALUES (PADC("小计",FSIZE(FIELD(2)),"-"))
FOR I=3 TO FCOUNT()-2 IF TYPE(FIELD(I))="N" COUNT TO HJ FOR EMPTY(EVALUATE(FIELD(I))) AND RECNO()<RECCOUNT() *--- 数值型字段计数,并将结果添加到最后一条记录 REPLACE RECORD RECCOUNT() (FIELD(I)) WITH HJ IN TEMP INSERT INTO T VALUES ((FIELD(I,[TEMP])),HJ) ENDIF
ENDFOR
SELECT * FROM T ORDER BY 2 DESC INTO CURSOR TEMP1
LCSTR=[]
SCAN LCSTR=LCSTR+ALLTRIM(FIELD_NAME)+IIF(RECNO()<RECCOUNT(),[,],[])
ENDSCAN
SELECT 期数,种类,&LCSTR,类别,期号 FROM 样本表 INTO TABLE CXB
USE IN TEMP
ERASE TEMP.DBF && 删除TEMP.DBF