1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

我们都知道Oracle reports是Oracle的数据统计和图形化报表的工具,Oracle reports提供了六种不同风格的报表格式,但是我们经常使用的两种,就是tabular与matrix,以下的文章就有相关的介绍。

无论用哪种风格生成的报表,打印出的表格数都是动态变化的。其中tabular风格的报表,列数固定,而行数不定;matrix风格的报表,行数和列数均不定。那么在Oracle reports中如何实现报表的定长与定宽输出呢?笔者在实际开发过程中对上述两种风格的报表各总结出一种行之有效的方法,供大家参考。

对于tabular风格的报表,可用报表触发子after parameter form和after report实现定长输出。其方法是:根据实际情况确定每页打印的行数,当***一页的记录数少于每页打印的行数时,则用空记录补齐。在触发子after parameter form插入空记录,在触发子after report中再将空记录删除,下面举例说明。

假设有一数据基表wzdm:存放物资代码信息,其数据结构为:

字段名 含义 长度 类型

wzdm 物资代码 9 c

wzmc 物资名称 20 c

xhgg 型号规格 20 c

jldw 计量单位 6 c

要求:按定长输出物资代码表,并且每页均输出x行(x可根据实际情况而定)。

1.启动Oracle reports,建立物资代码打印报表(略),然后在报表触发子after parameter form中加入以下代码:

declare 
v—jlsnumber(2); 
inumber(2):=1; 
begin 
selectcount()intov—jlsfromwzdm; 
ifmod(v—jls,x)〈〉0then 
loop 
exitwheni〉=(x-mod(v—jls,x))+1; 
insertintowzdm(wzdm,wzmc,xhgg,jldw) 
values(′′,′′,′′,′′); 
ii:=i+1; 
endloop; 
commit; 
endif; 
end; 

在报表触发子after report中分别加入以下代码:

begin 
deletefromwzdmwherewzdmisnull; 
commit; 
end; 

2.运行报表后即可输出定长的物资代码表。

说明:对于其它tabular风格的报表,在编写上述两个触发子时只需将基表名与列名根据实际情况修改一下,并确定x的值即可。

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11946.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。