在Oracle中复杂报表打印设计和实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Oracle中复杂报表打印设计和实现

在Oracle中复杂报表打印的设计与实现 一、前言   随着信息技术的普及和发展,数据库管理信息系统的应用日趋广泛。在大型数据库系统中,Oracle数据库是技术和性能较好的系统之一。运用Oracle及其Developer/2000工具开发应用系统过程中,经常涉及到复杂报表的形成和打印问题。由于语言特点的不同、应用系统的业务特点不同,相应的设计开发也有不同的特点。笔者就实际开发过程中的经验,对这一技术问题进行深入分析和总结,给出了三种设计开发复杂报表的方法——程序控制方式打印复杂报表、使用Report设计和打印复杂报表、OLE方式打印Word报表,通过灵活运用,能够设计和实现Oracle数据库应用系统中的各种复杂报表。 二、一般的报表打印   在Oracle MIS系统中,通过Developer/2000的Form工具开发数据维护模块,Report工具设计报表,并利用程序调用进行各模块的集成。   1.Form设计   Form工具能够开发数据录入、查询、修改以及系统菜单等功能,并能通过程序接口调用报表模块进行打印。   2.报表设计   Report工具能够进行直观的报表设计,生成报表模块,可以单独执行或为Form模块调用执行。该报表一般针对一个数据库表或视图设计,在相同表头下显示多个数据记录,并自动换页处理。   3.调用报表打印   主要调用步骤有:   (1)在Form中要根据打印查询条件形成数据记录组(Create_group_from_query);   (2)建立参数列表(create_parameter_list);   (3)将数据记录组加入参数列表中(add_parameter);   (4)调用相应的Report报表模块(Run_report)。   在程序中同时可以对数据记录进行统计、分析、加入空行、子标题等高级处理。 三、程序控制方式打印复杂报表   1.应用环境及设计思想   涉及数字和统计的复合型报表,在经费预决算管理中经常使用。这种报表格式较为固定和有规律,但其数据来源于多个数据库表,既有多行文本数据记录,又需要进行合计的统计,同时表中每部分数据有不同的子标题。这种报表的设计如果只用Report设计难度很大。   解决的办法是在Report固定报表的基础上,以程序控制为主,在Form中将所有需要打印的数据、标题、序号完全通过程序准备好,通过数据参数在调用Report报表时打印,以此实现固定报表中复合数据的打印。这里数据的准备工作需要按照业务流程和报表格式的不同分别进行,其程序设计的思想是一致的。下面以经费管理举例说明。   2.数据库及报表结构   例如数据库中有项目预算表(b_jfys)、项目决算表(b_jfjs)、本级开支表(b_bjkz)。项目预算表中的预算项目,根据使用单位的不同分为:   ·对下预决算项目:该预算经费下拨,决算金额由使用单位上报,记入项目决算表;   ·不决算项目:该经费下拨,决算经费同预算经费;   ·本级决算项目:本级预算项目具体开支情况,记录于本级开支表,决算金额由该表统计出。   年度预决算报表形式如表1所示。   该报表格式可通过Report设计完成,在设计时可以建立一个项目结构与之对应一致的工作数据库表-决算报表(b_jsbb),该表初始和每次打印后清空。   3.打印程序   打印程序的任务是将需要打印的数据完全准备好。主要完成以下功能:   (1)对应决算报表(b_jsbb)建立查询记录组g_jsbb,由于该表为工作临时表,所以查询结果为空集。   (2)处理对下预决算部分   决算金额数据由决算表统计,预算项目及金额由预算表查询形成记录组g_yjs,程序处理的关键是将记录组g_yjs中的每个记录的每个项内容读出并写入记录组g_jsbb,同时写入子标题和序号。主要读写程序如下,(P为记录序号)。   Add_Group_Row(g_jsbb, END_OF_GROUP);   r_ysxm:=get_group_char_cell(g_yjs.xmmc,p);   set_group_char_cell(g_jsbb.xmmc,row1,r_ysxm);   (3)处理对下决算部分   预算项目及金额由预算表查询形成记录组g_ys,决算金额同预算。现在需要将该记录组的数据读出顺序写入记录组g_jsbb中,并写入标题和序号。写入标题和序号程序为:   Add_Group_Row(g_jsbb, END_OF_GROUP);   set_group_char_cell(g_jsbb.xmmc,row1,不决算部分);   set_group_char_cell(g_jsbb.xh,row1,二);   (4)处理本级开支部分   预算项目及金额由本级开支表查

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档