如何进行多类别、大批量数据的计算及报表输出
具体步骤如下:
一、建立统计结果存放数据库(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
(重庆 孙光华)