成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle reports中實現(xiàn)報表的定長

數(shù)據(jù)庫 Oracle
以下的文章主要是介紹如何在Oracle reports中實現(xiàn)報表定長和定寬輸出,以下的內(nèi)容就是在實際的開發(fā)過程中對下述兩種報表的介紹。

Oracle reports作為Oracle的數(shù)據(jù)統(tǒng)計以及圖形化報表的工具,其一共提供了六種不同風格的報表格式,但是我們經(jīng)常使用到的兩種,就是tabular與matrix,無論用哪種風格生成的報表,打印出的表格數(shù)都是動態(tài)變化的。其中tabular風格的報表,列數(shù)固定,而行數(shù)不定;matrix風格的報表,行數(shù)和列數(shù)均不定。

那么在Oracle reports中如何實現(xiàn)報表的定長與定寬輸出呢?筆者在實際開發(fā)過程中對上述兩種風格的報表各總結(jié)出一種行之有效的方法,供大家參考。

一、對于tabular風格的報表

可用報表觸發(fā)子after parameter form和after report實現(xiàn)定長輸出。其方法是:根據(jù)實際情況確定每頁打印的行數(shù),當最后一頁的記錄數(shù)少于每頁打印的行數(shù)時,則用空記錄補齊。在觸發(fā)子after parameter form插入空記錄,在觸發(fā)子after report中再將空記錄刪除,下面舉例說明。

假設(shè)有一數(shù)據(jù)基表wzdm:存放物資代碼信息,其數(shù)據(jù)結(jié)構(gòu)為:

字段名 含義 長度 類型

wzdm 物資代碼 9 c

 

wzmc 物資名稱 20 c

 

xhgg 型號規(guī)格 20 c

 

jldw 計量單位 6 c

 

 

要求:按定長輸出物資代碼表,并且每頁均輸出x行(x可根據(jù)實際情況而定)。

 

1.啟動Oracle reports,建立物資代碼打印報表(略),然后在報表觸發(fā)子after parameter form中加入以下代碼:

 

  1. declare  
  2. v—jls number(2);  
  3. i number(2):=1;  
  4. begin  
  5. select count(*) into v—jls from wzdm;  
  6. if mod(v—jls,x)〈〉0 then  
  7. loop  
  8. exit when i〉=(x-mod(v—jls,x))+1;  
  9. insert into wzdm(wzdm,wzmc,xhgg,jldw)  
  10. values(′′,′′,′′,′′);  
  11. ii:=i+1;  
  12. end loop;  
  13. commit;  
  14. end if;  
  15. end;  

 

在報表觸發(fā)子after report中分別加入以下代碼:

 

  1. begin  
  2. delete from wzdm where wzdm is null;  
  3. commit;  
  4. end;  

 

2.運行報表后即可輸出定長的物資代碼表。

說明:對于其它tabular風格的報表,在編寫上述兩個觸發(fā)子時只需將基表名與列名根據(jù)實際情況修改一下,并確定x的值即可。

二、對于matrix風格的報表

可利用視圖實現(xiàn)定長與定寬輸出,其思路是:當行記錄數(shù)和列記錄少于實際報表的行數(shù)和列數(shù)時,均以空記錄補齊。下面舉例說明。

假設(shè)有一物資資金消耗去向統(tǒng)計月報,該表橫向顯示本期消耗去向,縱向顯示物資類別,由于每月物資消耗去向和消耗物資均不定,所以此類報表即為一矩陣報表。該報表的數(shù)據(jù)存放在基表t—zjxhqx中,其數(shù)據(jù)結(jié)構(gòu)如下:

字段名 含義 長度 類型

lbmc 類別名稱 20 c

 

dwmc 單位名稱 20 c

 

je 金額 14,2 n

 

 

要求:按定長定寬輸出物資資金消耗去向統(tǒng)計月報,并且每頁均輸出x行y列(行數(shù)和列數(shù)可根據(jù)實際情況而定)。

 

1.首先建一基表t—kjl,用來存放空記錄,其數(shù)據(jù)結(jié)構(gòu)為:

字段名 含義 長度 類型

no 序號 2 n

 

 

建完該數(shù)據(jù)表后,再往其中插入記錄,記錄數(shù)可根據(jù)實際情況而定,一般為一頁所能打印的最大行數(shù),這里假設(shè)為z條,即no的值為1,2,3…z。

 

2.建視圖,其過程如下:

 

  1. create view v—tjbb as  
  2. select dwmc,lbmc,je from t—zjxhqx  
  3. union  
  4. select dwmc,null,to—number(null) from t—zjxhqx,t—kjl  
  5. where no-(z-x)〉
    (select mod(count(distinct lbmc)-1,x)+1 from t—zjxhqx)  
  6. union  
  7. select null,lbmc,to—number(null) from t—zjxhqx,t—kjl  
  8. where no-(z-y)〉
    (select mod(count(distinct dwmc)-1,y)+1 from t—zjxhqx);  

 

3. 啟動Oracle reports,建立矩陣報表查詢時直接引用視圖v—tjbb即可。這樣運行時輸出的報表每頁都是x行y列,即實現(xiàn)了定長和定寬輸出。

 【編輯推薦】

  1. 對Oracle綁定變量的實際操作
  2. Oracle數(shù)據(jù)庫的安裝與配置流程示例
  3. Oracle 數(shù)據(jù)庫的并行執(zhí)行的實際操作
  4. Oracle RAC配置中應(yīng)注意的問題
  5. Oracle 刪除后重新安裝的具體方法
責任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-04-26 15:08:47

Oracle repo

2010-04-01 11:32:33

Oracle repo

2010-04-01 12:33:37

Oracle repo

2012-05-18 16:41:37

JavaDash Report

2009-06-26 16:21:22

Oracle自動增長Hibernate

2010-04-23 13:01:43

Oracle報表

2009-05-21 10:08:49

SQL報表JSPHibernate

2011-04-19 10:48:05

Oracle觸發(fā)器

2011-08-30 17:33:10

OracleSAS宏

2010-10-29 16:41:12

Oracle模糊查詢

2010-11-16 09:18:39

oracle重建索引

2012-07-09 10:13:06

ibmdw

2010-10-27 17:00:32

oracle樹查詢

2009-06-29 18:09:12

多路復用Oracle

2010-04-15 13:10:09

Oracle系統(tǒng)結(jié)構(gòu)

2009-03-24 13:04:55

匯總組織結(jié)構(gòu)Oracle

2010-05-05 14:55:15

Oracle存儲過程

2009-04-21 11:23:56

Oraclespool比較

2010-04-13 17:10:31

Oracle 8x

2011-05-19 14:29:49

Oraclerownum
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 蜜桃av鲁一鲁一鲁一鲁 | 欧美一区二区三区在线观看 | 狠狠干av| 欧美日韩国产高清视频 | 精一区二区 | 久久久久久综合 | 欧美精三区欧美精三区 | 成人依人| 国产亚洲精品久久情网 | 视频羞羞 | 成人在线欧美 | 成人免费观看男女羞羞视频 | 男女视频免费 | 中文在线视频 | 91在线一区二区三区 | 日韩精品在线一区 | 中文字幕免费 | 久久伊人免费视频 | 国产精品精品视频一区二区三区 | 国产精品国产精品国产专区不卡 | 国产精品无码专区在线观看 | 另类二区| 91精品国产欧美一区二区 | 91视频在线 | 日韩精品一区二区三区在线播放 | 成人av一区 | 国产资源在线播放 | 成人在线视频一区 | 日韩色在线| 亚洲午夜精品久久久久久app | 国产视频久久久久 | 日韩在线大片 | 精品国产乱码久久久久久丨区2区 | 自拍偷拍亚洲一区 | 九九久久精品视频 | 一级一级一级毛片 | 国产一区二区三区久久久久久久久 | 免费在线观看一区二区三区 | 日韩免费视频一区二区 | 午夜视频网站 | 99久久婷婷国产综合精品电影 |