Database 版 (精华区)

发信人: Richard_Xie@bbs.ustc.edu.cn (沧海一声啸), 信区: cndatabase
标  题: Re: 如何动态生成中国式的报表?
发信站: 中国科大BBS站 (Sun Jun 29 19:45:57 1997)
转信站: Lilac!ustcnews!ustcnews!ustcbbs

> ==> niceman.bbs@bbs.sjtu.edu.cn(一个好鬼) 说道: 
> 【 在 mygod (野野) 的大作中提到: 】 
> 是动态的么?手动制成还是自动生成?

三年前我曾以Foxpro2.5B For Dos为平台,UCDOS 3.0为汉字系统
编过一个动态"中国式报表自动生成器",主要原理如下:

  1.首先要有待生成的库的字典库,我当时是基于Foxpro的
create ... extend ... (大概如此,一年多没用Foxpro,记不大清)
字典有DB_NAME,DB_FIELD,DB_LENGTH,DB_DEC,我为了适应中国人
的要求,加了个DB_CNAME (char(20))
  2.关键技术在于Foxpro的内部一切文件基本上都是.DBF,.FPT文件!
如屏幕文件.SCX,.SCT,打印文件.Frx,.frt...实质上是.DBF,.FPT!!!
所以可以在程序中用数据库操作命令动态修改,我当时的做法是先由
字典库计算出表字符长度,再由用户选用的纸号计算出字体,然后一条条
加入各字段,用UCDOS的打印控制命令,大约效果如下
        ┏━━┯━━━┯━━━━━━┯━━━┯━━━┓
header  ┃....│......│............│......│......┃
此段重  ┠──┼───┼──────┼───┼───┨
复打印  ┃....│......│............│......│......┃
end     ┗━━┷━━━┷━━━━━━┷━━━┷━━━┛

显然,制表线及内部字段都得自动产生.好好用字典库,不难解决
  3.最后再在打印计算及处理一下每页打印的记录数及打印时
最后一页的不满数问题,不过这是另一个程序处理的了

-- Xie --
(附:该程序当时化了我一周的时间,实质是解决某客户由于表多
且易变而编的一个 表格生成,浏览,修改,打印软件包的一部分
不过现在看来有点过时,不过希望对你有启发)


--
━━┯━┯━┯━┯━┳━━━━━━━━━━━━━━━━ ━
┃┃│在│所│白│蒹┃ ┌──┐Happy Holiday To All My Friends ┃┃
┃┃  │水│谓│露│葭┃ │    │ ○      ┐                   ┬  ┃┃
┃┃  │一│伊│为│苍┃ ├─┬┘ ┬ ┌─ ├┐  ┌┐   ┬  ┬─│  ┃┃
┃┃  │方│人│霜│苍┃ │  └┐ │ │   │└┐│├┐ ├─┘┌┤  ┃┃
━┷━┷━┷━┷━┻ ┴─  ┴ ┴ └─ ┴  ┴└┘└ ┴    └┘  

※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.388毫秒