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毫秒