如何进行多类别、大批量数据的计算及报表输出 重庆 孙光华 1994-07-22 而以数据库中数据的存放特性,将每一批量的各个不同类别计算结果作为数据库的一条记录存放,再以输出数据库记录的方式输出报表,将使我们的程序编写得十分简洁明了,运行速度也大为提高。 具体步骤如下: 一、建立统计结果存放数据库(94DBB-A) A、打开统计数据库(94DBB)COPY部分记录 USE 94DBB COPY NEXT N TO 94DBB-A N≥批量 B、根据实际,可删除或增加个别字段 注:勿需考虑记录值,重要的是字段。 二、编写计算程序(DBZ4.PRG) (程序附后) 1、批量各类别统计、求和并存于内存变量中; 2、用批量各内存变量替换统计结果存放数据库的记录; 3、循环执行1、2、,直至完成全部计算和替换。 难点是:统计数据批量的查找特征及存放数据库记录指针的设置。 三、编写报表输出程序(DBG4.PRG) 各批量统计数据结果已存放数据库(94DBB-A)中,以@X,Y SAY按固定格式输出报表或用CCED自动输出均可。本例采用前一种,限于篇幅不再将程序附后。 本文程序在IBM PC/XT、兼容386/33汉字2.13环境下,FOXBASE+2.1和DBASEⅢ中通过。 附:DBZ4.PRG程序 SET TALK ON SET DEVT TO SCRE FP="Y" do whil FP="Y".or.FP="y" clea @ 4,15 SAY "" @ 6,15 ACCE "请 给 出 打 印 时间(年/月/日):" TO TM set talk off AD=O DO WHIL AD<=12 ? "正在计算中,请等候.............." AD=AD+1 use 94DBB *inde on str(管区,2)+房屋座落to SH94DB-2 set index to sh94db-2 go top locate all for 管区=AD addo=房屋座落 add=subs(addo,|,8) coun all to nm for 管区=AD sum all建筑面积,使用面积,居住面积,占地面积,土地面积,总套数,保证金数,商;品房数,内住户数,外住户数,门面房数,公用套数,空置套数,福租,保租,商租,气;for 管区=AD to b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17 use IF AD<=12 use 94dbb-A ? "正存放统计数据,..............." go AD repl 建筑面积with b1,使用面积with b2,居住面积with b3,占地面积;with b4,土地面积with b5,总套数with b6,保证金数with b7,商品房数;with b8,内住户数with b9,外住户数with b10,门面房数with b11 repl 公用套数with b12,空置套数with b13,福租with b14,保租with b15,;商租with b16, 气with b17,管区with AD,房屋座落with add,栋数with NM use endi ENDD WAIT"计算、存放完华、请准备好打印纸、按任意键!" DO DBG4.PRG clea set devi to scre wait "继 续 打 印 分 区 总 概 表 吗(Y/N)?" TO FP if .not."y"=FP rele all exit endi ENDD USE RETURN (重庆 孙光华)