全通用关系型表格打印模块设计研究(3)
2017-08-25 06:59
导读:4.查询打印信息功能 操作者可以查看已经建立的打印文件的己选字段、未选字段、源数据表以及系统定义的22个打印内存变量,和打印文件参数。 三、系
4.查询打印信息功能
操作者可以查看已经建立的打印文件的己选字段、未选字段、源数据表以及系统定义的22个打印内存变量,和打印文件参数。
三、系统设计思路及数据流程图
(一)全通用关系型表格打印实现原理
1.报表的构成
一般情况下报表包含表头、表体和表尾三部分:
(1)表头。在每页的顶端,显示报表的标题及其他提示信息等。
(2)表体。包含报表的主体,是报表的关键部分,一般由循环数据项构成。
(3)表尾。出现在每页的底端,显示打印操作者、日期等文本信息等。
2.VFP报表信息库的结构
我们知道在VFP中,报表的信息是保存在以.FRX为扩展名的数据库文件中(备注文件以.FRT为扩展名),了解报表数据库的结构有助于问题的解决。报表库(.FRX)的结构有74个字段,各字段的主要参数摘录如表所示。
3.常用控制对象的特征
报表数据库的字段Objtype(对象类型)和Objcode(对象代码)的值确定了控制对象的类型。为节省篇幅仅把最常用制表控制对象(文字,直线,表达式等)的特征值如表2所示。
其他常用到的字段有:①水平坐标(Hposh②宽度(Wid-th);③表达式类型(Fillchar);④字体(Fontface);⑤对齐方式(Offset)。
4.全通用关系型表格打印的实现
从数据库中自动读取字段名、类型、宽度,通过修改报表库(.FRX)的内容达到动态制表的目的,其算法设计如下:
(1)栏目宽度:定义二维数组XMCD(NJSQ,4)用于存放中间打印结构表(TEMP STRU.DBF)的结构信息:
(2)打印栏目标题及字段变量名称:从中间打印结构表(TEMP STRU.DBF)获取打印栏目宽度存入数组MXZD(NJSQ,3),字段变量存入数组MXZD(NJSQ,1):
(科教作文网http://zw.ΝsΕAc.com发布)
(3)获取打印表头表尾项目,通过自定义方法程序AP-PHEAD自定义方法程序向报表添加表头项目;
(4)通过自定义方法程序APPLINE自定义方法程序向报表中添加线条;
(5)通过替换命令REPLACE对.FRX文件中的参数进行修改以获得我们所需的网格型表格样式,修改方式同修改.DBF文件一样。
最后,报表生成之后,若需要通过Excel、Word或超文本表格方式输出报表,可利用createobjed()函数将表格直接输出到相关软件。
从以上动态VFP报表的实现原理可看出,本设计打印输出VFP的表格只是巧妙的充分利用了它的.FRX库,存在磁盘上的报表文件却是*.MEM文件,而不是它的报表文件.FRX和.FRT。
四、小 结
本设计所研究仅仅是利用VFP实现通用关系型表格打印。但是,基于此设计思想,深入设计还可实现多行表头的结构型表的打印,字段合并和分解打印、更复杂的单据打印以及自定义纸张,自定义打印机等等,但目前在国内外还没有一个软件能够将所有功能包容其中。要实现一个真正的全通用表格打印,而不仅仅限于关系型表格的通用性,这些问题还有待进一步深入研究。
主要参考文献
[1]黄昌勇,电算会计基础[M].上海:立信会计出版社,2002.
[2]张洪举.visualFoxPro程序设计参考手册[M].北京:人民邮电出版社,2004.
[3]Jeffrey D.Ullman Jennifer Widom AFirst Course ln Database Systems数据库系统基础教程(影印版)[M].北京:
清华大学出版社,2000.
[4]陈隆伟等.会计电算化全通用理论与会计软件的全通用[J].财会月刊(会计),2005,(4).