oracle reports实现报表定长与定宽输出
来源:才华咖 本文已影响1.92W人
来源:才华咖 本文已影响1.92W人
oracle reports是oracle的数据统计及图形化报表工具,它提供了六种风格的报表格式,而我们通常使用的只有其中的两种,即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—jls number(2);
i number(2):=1;
begin
select count(*) into v—jls from wzdm;
if mod(v—jls,x)〈〉0 then
loop
exit when i〉=(x-mod(v—jls,x))+1;
insert into wzdm(wzdm,wzmc,xhgg,jldw)
values(′′,′′,′′,′′);
i:=i+1;
end loop;
commit;
end if;
end;
在报表触发子after report中分别加入以下代码:
begin
delete from wzdm where wzdm is null;
commit;
end;
2.运行报表后即可输出定长的物资代码表。
说明:对于其它tabular风格的报表,在编写上述两个触发子时只需将基表名与列名根据实际情况修改一下,并确定x的值即可。
二、对于matrix风格的报表,可利用视图实现定长与定宽输出,其思路是:当行记录数和列记录少于实际报表的行数和列数时,均以空记录补齐。下面举例说明。
假设有一物资资金消耗去向统计月报,该表横向显示本期消耗去向,纵向显示物资类别,由于每月物资消耗去向和消耗物资均不定,所以此类报表即为一矩阵报表。该报表的数据存放在基表t—zjxhqx中,其数据结构如下:
字段名 | 含义 | 长度 | 类型 |
lbmc | 类别名称 | 20 | c |
dwmc | 单位名称 | 20 | c |
je | 金额 | 14,2 | n |
要求:按定长定宽输出物资资金消耗去向统计月报,并且每页均输出x行y列(行数和列数可根据实际情况而定)。
1.首先建一基表t—kjl,用来存放空记录,其数据结构为:
字段名 | 含义 | 长度 | 类型 |
no | 序号 | 2 | n |
建完该数据表后,再往其中插入记录,记录数可根据实际情况而定,一般为一页所能打印的最大行数,这里假设为z条,即no的值为1,2,3…z。
2.建视图,其过程如下:
create view v—tjbb as
select dwmc,lbmc,je from t—zjxhqx
union
select dwmc,null,to—number(null) from t—zjxhqx,t—kjl
where no-(z-x)〉(select mod(count(distinct lbmc)-1,x)+1 from t—zjxhqx)
union
select null,lbmc,to—number(null) from t—zjxhqx,t—kjl
where no-(z-y)〉(select mod(count(distinct dwmc)-1,y)+1 from t—zjxhqx);
3. 启动oracle*reports,建立矩阵报表查询时直接引用视图v—tjbb即可。这样运行时输出的报表每页都是x行y列,即实现了定长和定宽输出。
Efforts Urged to Improve Womens Reproductive Health英语阅读
How to Prepare for IELTS高中英语作文
The Unforgettable School Trip英语作文
Protecting water resources英语作文
英语作文Let the Surprise Speak of Your Love
描写飞机的英语作文:the largest carbon footprint
Relieve Psychological Pressure的英语短文
Illustrator与CorelDRAW操作的对比
公共英语二级写作Preserving Natural Resources
如何实现bootstrap jquery dataTable异步ajax刷新表格数据
人物性格分析 The Analysis of Personal Character英语作文
Diaspora Finance Powers Global Development美文欣赏
Jolie drops battle over perfume named Shilohy英语作文
《The Prevalence of Western Holidays》英语四级作文
高中生优秀英语作文:Have a break away from electronics
The Development of a Private Car英语作文
oracle reports实现报表定长与定宽输出
Modern Technology Makes Life More Conv英语六级作文
人教PEP版小学五年级英语下册Unit3Myschoolcalender.ALet’stalk
whats your plan for dragon boat festival英语作文
Some words for this special occasion英文美文欣赏
Perfect Dream Harry Potter英语作文
Unit 7 After school Period 2
C++中const-cast与reinterpret-cast运算符的用法
Walk for children in poor areas英语作文
under separate cover怎么样翻译
Sports should not be encouraged的雅思作文
英语阅读:Are You Tricked by These Optical Illusions
Margaret Sanger: The Morality of Birth Control quo
面试一定要表现出自己的自信
现实表现鉴定范本
《learning to solve problems》读后感
个人现实表现鉴定(现实表现,鉴定)
四级作文:Create a Conservation-Oriented Campus
英语四级作文The Importance of Physical Exercise
BootStrap select2 如何实现动态改变值
大学生面临许多压力The Pressures on Collese Students英语作文
英语作文Perfect Dream Harry Potter
Oracle认证:ORACLE绑定变量BINDPEEKING
双语阅读:Clear Your Mental Space