delphi中使用Report Machine解决中式疑难报表
Report Machine是一套共享控件,适用于delphi3--6,BCB3--6中,就其功能而言,能做到著名的报表控件Fast Report能做到的,还能做到FR不能做到的,如最出色的屏幕打印功能(能打印wwdbgrid,Ehlib,F1Book等众多控件), Gridview控件(类似于excell电子表格的报表制作工具),自动折行适应大小等等。废话不多说了,咱们来看看这种疑难报表吧。
这是一张常见的中式报表(非数据内容都用粗体标出),它的格式没有任何的规律,却又是平时经常要用到的。
姓名
|
张三
|
性别
|
男
|
出生年月
|
1967年05月01日
---|---|---|---|---|---
籍贯
|
浙江丽水
|
担任职务
|
无
工作单位
|
浙江省某公司
毕业学校及专业
|
浙江大学 计算机专业
工作简历
|
开始时间 结束时间 工作单位
1989-7-5 1997-6-7 xxxxx单位
1997-6-7 xxxx公司
家属及社会关系
|
关系
|
姓名
|
出生年月
|
工作单位
父亲
|
张老三
|
1953-2-4
|
在家务农
母亲
|
李氏
|
1956-12-1
|
在家务农
哥哥
|
张二
|
1966-1-2
|
xxxxxxxxx公司
弟弟
|
张四
|
1972-8-9
|
xxxxxxxxx单位
|
|
|
|
|
|
| | | | | | | | | | |
说明:表的内容来自于三张表,个人资料表,工作经历表和家属表,方便起见,我们假设三张表中都已经有了表格中需要的字段,数据库类型与结构就不多说了。下面我们就开始做报表吧。
分析:在这张表格中,个人资料的格式相对简单,最复杂的是家属关系的格式,它的表格行数是定死的,在这里是6行,多一行少一行都不行的哦。其次是工作简历的格式,它是在一个大框中放入的记录集,而且要有标头的说明。最次是左侧的边条,用过Quick Report和Fast Report的初学者们都知道,一旦放入了左侧这样的边条,似乎报表就无从做起了。
不用急,等偶用Report Machine捅破这层窗户纸时,大家就会发现:原来也是如此简单!用Fast Report的兄弟也不用急,我介绍的方案是兼容FR的,在FR中可以按相同的思路来进行。