微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题如何进行多类别、大批量数据的计算及报表输出
栏目软件操作与技巧
作者重庆 孙光华
发布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
  (重庆 孙光华)