彻底解决pb打印金融业务单据方法

彻底解决pb打印金融业务单据方法

ID:6850569

大小:26.00 KB

页数:3页

时间:2018-01-28

彻底解决pb打印金融业务单据方法_第1页
彻底解决pb打印金融业务单据方法_第2页
彻底解决pb打印金融业务单据方法_第3页
资源描述:

《彻底解决pb打印金融业务单据方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、彻底解决PB打印金融业务单据方法(深圳:独孤求败 2003-05-19)----打印业务单据、报表,历来是金融业务类应用软件开发的重点,一般可占整个工作量的三分之一左右。目前国内的不少软件开发工具在这方面做了大量的工作,不过基本上是基于xbase数据库的产品,Client/Server方面的开发工具几乎无一例外的是国外的产品,例如PowerBuilder、Delphi、VisualBasic等等。但是国外的产品在打印中国式报表,特别是金融类单据、报表功能十分微弱。这是国外、国内的国情不同所致;看来这样的问题只有中国人自己来想办法解决。本文

2、就自己在使用PowerBuilder开发金融类业务软件过程中积累的打印金融单据、报表一些方法作些介绍,就打印中国式报表的问题做点探索。一、使用数据窗口打印的优点及其局限----数据窗口是powerbuilder优于其他可视化开发工具的最主要的特色。它可以使用五种数据源:QuickSelect,SQLSelect,Query,External,StoredProceduce,并提供了一系列预定义的表现风格:自由格式、统计图、网格、标签、分组报告、表格、N-UP、大文本、OLE2.0、交叉表。对于每一种风格,PowerBuilder都提供了标

3、准的报表列(标题列,细节列,总计列,分组标题列,分组脚注列),显示格式、排序、分组和复合显示形式(如一个带有相关图表的电子表格用户界面)。----一般来说,应用软件主要分为数据录入、数据查询、数据修改、数据打印等功能模块。根据笔者的开发经验,数据窗口技术对于数据查询、修改类的窗口,有明显的优越性。对于数据录入,一般的应用都要求按凭证的式样建立数据的录入窗口(或屏幕),使用PowerBuilder提供的用户自定义对象,建立仿凭证样子的数据录入窗口,并不是一件困难的事。对于数据的打印,如果是仅仅是打印参数表或者普通的统计报表,数据窗口也能胜任

4、。但是对于复杂报表,尤其是金融业务单据、报表,虽然数据窗口提供了组合风格,真正操作起来,要符合业务要求,真让任何开发人员望“表”兴叹!----以金融行业常用的“分户帐”来说,余额必需逐笔滚动,本页的余额又作为下一页的第一笔数据。余额是计算好放在数据库中,还是不放在数据库中,而在需要查询、打印时再计算,对应用软件的功能和复杂性有很大的影响。在数据库设计时,通常为了保证数据的一致性、减少被维护数据的相关性,数据库的表中只保留了基本数据,所有的小计、类计、合计项目,即使占了报表的一行,也是边计算边打印的。这类打印问题数据窗口就不能解决了二、与M

5、S-EXECL组合起来解决打印问题----这是PowerBuilder提供的一种补救措施。软件开发人员可以事先在微软的EXECL中设计好所需的单据、报表,然后在PowerBuilder的应用软件中,将单据、报表所需要的数据,边计算、边输出给MS-EXECL,用户在MS-EXECL的环境中,检查无误后即可打印。由于MS-EXECL是一个格式化能力很强的软件,可以解决大部分PowerBuilder处理不了的单据、报表。但是这样的解决方案,必需具备一定的条件:----①应用软件用户必需深入地掌握MS-EXECL软件。----②要在运行Power

6、Builder的同时运行MS-EXECL软件,相应地要增加电脑的内存。----③打印的资料页数不能太多,必需在MS-EXECL软件的允许范围之内。特别对于“分户帐”这样按月份打印的表,一个营业部有几万、几十万条数据是很平常的事。这种情况可用以下笔者探讨的方法解决。三、直接打印的方法----直接打印的方法,就是利用PowerBuilder的低层打印函数编写自己的打印程序,如果读者掌握了以下几个为数不多的低层打印函数和技巧后,几乎和使用XBASE、PROC等语言编写打印程序没有什么差别;换句话说,读者如果正在用PowerBuilder将以前用

7、XBASE、PROC等应用软件“升级”的话,将打印程序稍加修改后,就可以用在PowerBuilder中,从而免去重新编写打印程序的麻烦。----⑴PowerBuilder的低层打印函数介绍----PrintOprn(JobName)打开一个打印作业,该函数返回作业号的Long型值,如果发生错误返回-1,命名JobName参数是可选的,它是出现在打印队列的名字。----PrintClose(PrintJobNumber)关闭一个打印作业。----Print(PrintJobNumber,{Position1,}Text{,Position2

8、})把文本行送入打印作业。其中Position1是以千分之一英寸为单位指定文本的起始位置与打印区左边界的距离。如果该值不大于当前位置,将从当前位置开始打印文本。Position2指定打印文本之

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。