谢谢指点!我已在程序中加入下列语句,仍不能生成“开支统计表.dbf"
PUBLIC cPath
cPath=ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cPath)
PUBLIC cPath
cPath=ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cPath)
[此贴子已经被作者于2025-10-22 09:55编辑过]
CLOSE DATABASES CLEAR ALL PUBLIC cPath cPath=ADDBS(JUSTPATH(SYS(16))) SET DEFAULT TO (cPath) DECLARE long sscanf IN msvcr71 long, string, single@, long@ DECLARE long strcpy IN msvcr71 string@, string buffer = REPLICATE(0h00,256) a = 0.00 n = 0 CREATE CURSOR tt (姓名 c(10), 项目 v(10), 金额 n(6,2)) USE 开支明细帐.dbf ALIAS tb IN 0 SELECT tb SCAN *FOR i=1 TO ALINES(arr,tb.支出明细,5,",") FOR i=1 TO ALINES(arr,tb.支出明细,5,",") p = strcpy(@buffer, arr[i]) ph = p DO WHILE SYS(2600,p,1) != 0h00 IF sscanf(p,"%f%n",@a,@n) == 1 INSERT INTO tt VALUES (tb.姓名, SYS(2600,ph,p-ph), a) EXIT ELSE p = p+1 ENDIF ENDDO ENDFOR ENDSCAN cmd = "CREATE TABLE 开支统计表 (姓名 c(10)" SELECT DISTINCT 项目 FROM tt INTO CURSOR tmp SCAN cmd = cmd + "," + 项目 + " n(6,2)" ENDSCAN cmd = cmd + ", 合计 n(6,2))" EXECSCRIPT(cmd) SELECT DISTINCT 姓名 FROM tt INTO CURSOR tmp SELECT 开支统计表 APPEND FROM DBF("tmp") INDEX on 姓名 TAG 姓名 SELECT tt SET RELATION TO 姓名 INTO "开支统计表" SCAN REPLACE (tt.项目) WITH tt.金额, 合计 WITH 合计 + tt.金额 IN "开支统计表" ENDSCAN SELECT * FROM 开支统计表