oracle reports實現報表定長與定寬輸出
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列,即實現了定長和定寬輸出。
-
華創信科oracle ocm認證費用
Oracle數據庫產品為財富排行榜上的前1000家公司所採用,許多大型網站也選用了Oracle系統。下面是小編收集的華創信科oracleocm認證費用,希望大家認真閲讀!OracleWDP培訓中心CUUG(優技培訓)是國內最早通過甲骨文公司審查成為oracleWDP培訓中心的高端IT培訓機構,主要...
-
oracle數據庫基本語句
甲骨文公司,全稱甲骨文股份有限公司(甲骨文軟件系統有限公司),是全球最大的企業級軟件公司,總部位於美國加利福尼亞州的紅木灘。下面是小編整理的關於oracle數據庫基本語句,歡迎大家參考!1.登陸SPL*PLUS[username/password][@server]as[sysdba|sysoper]eg.system/p...
-
虛擬專用數據庫概述
虛擬專用數據庫是一項重要技術,使企業能夠構建託管的、基於Web的應用程序。實際上,許多Oracle應用程序本身使用VPD實施數據分隔,包括Oracle和OraclePortal等程序。下面小編為大家整理了關於虛擬專用數據庫概述的文章,希望能為你提供幫助:概述虛擬專用數據庫(VPD)提...
-
Java中調用Oracle包的過程
在Java中調用Oracle包是我們程序員經常遇到的.事情,那麼它具體的過程是怎麼樣的呢?我們一起來看看!一、先在oracle中編寫測試過程1、首選建一個測試表--CreatetablecreatetableBOOK(BOOKIDVARCHAR2(50)notnull,BOOKNAMEVARCHAR2(50)notnull,PUBLISHERVARCHAR2(5...
相關文章
- Illustrator與CorelDRAW操作的對比
- Choice of large enterprises or small英語四級作文
- Protecting water resources英語作文
- 英語閲讀:VIT declines to acquire Ang Mo Kio property
- A Letter to the Editor of a Newspaper英語四級作文
- 英語作文Let the Surprise Speak of Your Love
- 公共英語二級寫作Preserving Natural Resources
- MySQL安裝時出現current root password的解決方法
- Efforts Urged to Improve Womens Reproductive Health英語閲讀
- 人物性格分析 The Analysis of Personal Character英語作文