WEB PL/SQL Report 的開發方法
此製作方法是結合HTML語言及PL/SQL語言,以所見即所得方式釋出的報表,釋出的結果可直接複製到EXCEL中進行編輯,方便實用.
1.製作報表模板
建議利用DreamWaver 製作. 主要工作是畫報表佈局及表頭.然後拷出生成的HTML語句.如下:
設計視窗:
程式碼視窗:
生成的HTML 語句如下:
----------表頭區域-------------- ----------表頭區域-------------- ----------資料生成區域-------------- ----------資料生成區域--------------姓名 年齡 性別 部門 工資 DATA1 DATA2 DATA3 DATA4 DATA5
2.編寫PL/SQL程式包
利用上面的HTML 語句,結合PL/SQL及標準的釋出語句 HTP.P 來建議過程,總體路是:
A. 用HTP.P 先生成報表的標題部分需顯示的內容.
B. 用HTP.P 再生成HTML語句的表頭區上面的所有語句.
C. 用CURSOR提取需要在資料區域顯示的資料,並建立迴圈.
D. 在迴圈體中用HTP.P顯示HTML語句中的資料生成區域,當然,其中的DATA用上一步的CURSOR來顯示.
E. 利用迴圈重複做上一步的動作.
F. 最後利用HTP.P顯示報表表尾部分的內容.
例句如下:
DECLARE
CURSOR SS IS
SELECT XXXX
FROM XXXX
WHERE XXXX
BEGIN
HTP.P(‘這是一張測試報表’); --輸出報表名稱
HTP.P(SYSDATE); --輸入日期
HTP.P(‘
----------表頭區域-------------- ’); –輸出表頭 FOR I IN SS LOOP ---開啟遊標 HTP.P(‘ ‘); ---提取資料,中間綠色的為遊標欄位 END LOOP; HTP.P(‘姓名 年齡 性別 部門 工資 ’||I.DATA1||’ ’||I.DATA2||’ ’||I.DATA3||’ ’||I.DATA4||’ ’||I.DATA5||’
‘) –輸出表尾
END;
注:上面例句是假定報表無任何格式.如有格式,可先在DW中設好,這樣的話,HTML語句會不太一樣.
另請注意:如你定義變數來儲存上面的HTML字串,然後用HTP.P(變數)的方式寫的話,一定要把變數的位元組數定義的大點,否則可能報錯.
3.註冊WEB/SQL
路徑: 系統管理員/安全性/WEB PL/SQL
說明: 名稱為你編寫的 PL/SQL的包名及過程名,型別選”程式包過程”
4.註冊功能
路徑: 系統管理員/應用/功能
說明: 功能名自定義, 使用者功能名自定義,建議用真實的報表名
說明: 型別為”SSWA PLSQL函式”,支援維護模式為”無”,上下文為”責任”
說明: WEB HTML 定義為上個步驟所定義的WEB PL/SQL 程式包
5.註冊選單
說明: 上面有提示的均為真實的FORM(即用來呼叫REPORT的FORM.另外設計)
下面沒有提示的均為隱含的功能,即上個步驟所註冊的WEB/SQL功能.
6.設計FORM
製作用來傳遞引數的FORM,設計方法同正常的EBS FORM.
說明: 在執行按鈕裡必須寫入呼叫上述隱含功能的語句,如下:
FND_FUNCTION.EXECUTE( '功能簡稱', 'Y', 'N');一般寫在最後
7.註冊FORM
方法略,但須注意,正常FORM的功能與隱含的報表功能須在一個選單中.
8.引數傳遞
這種方法可能導致引數傳遞比較麻煩. 而 WEB/PLSQL好象又不支援引數的傳遞,因此一般我們這樣實現:
A. 建立儲存引數的資料庫表.
B. 在FORM上選擇引數,在執行報表前,先把引數INSERT到上面的表中,注意,須同時INSERT USER_ID(使用者ID), RESP_ID(職責ID), RESP_APPL_ID(應用ID).語句如下:
insert into XXXX
(USER_ID,
RESP_ID,
RESP_APPL_ID,
--其餘略
)
VALUES ( FND_GLOBAL.USER_ID,
FND_GLOBAL.RESP_ID,
FND_GLOBAL.RESP_APPL_ID,
--其餘略
);
上述語句寫在FORM裡的執行報表前執行.
C. 在PL/SQL程式包裡先初始化客戶資訊,語句如下:
USER_ID := fnd_global.USER_ID;
resp_id := fnd_global.RESP_ID;
RESP_APPL_ID := fnd_global.RESP_APPL_ID;
D. 在PL/SQL程式包裡的遊標應根據上面三個使用者資訊ID,去參數列裡取出引數,然後再開啟遊標.取出正確的資料.
fnd_web_config.GFM_AGENT||/tst_prc?p_t=asdfadf&p_s=aaa
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/59792/viewspace-1050604/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PL/SQL開發中動態SQL的使用方法SQL
- PL/SQL開發記錄SQL
- 【PL/SQL開發】-----詭異啊SQL
- (轉)pl/sql開發異常處理SQL
- pl/sql--動態SQL常用方法SQL
- 【PL/SQL】向表中插入連續數字之PL/SQL方法SQL
- 9*9乘法口決pl/sql的多種方法實現(pl/sql實現)SQL
- (原)使用PL/SQL開發XML PUBLISHER報表的步驟SQLXML
- 現代Web開發方法Web
- PL/SQLSQL
- PLSQL Language Reference-PL/SQL概覽-PL/SQL的優點SQL
- Oracle PL/SQL編寫PL/SQL程式碼的注意事項OracleSQL
- 【PL/SQL】使用變數傳遞方法生成表更名的SQL語句SQL變數
- EBS SQL --> Form & ReportSQLORM
- SQL&PL/SQL (轉)SQL
- PL/SQL 宣告SQL
- PL/SQL cursorSQL
- PL/SQL打包SQL
- PL/SQL DEVSQLdev
- Oracle PL/SQLOracleSQL
- REPORT開發培訓筆記筆記
- PL/SQL 07 觸發器 triggerSQL觸發器
- PLSQL Language Reference-PL/SQL概覽-PL/SQL的主要功能SQL
- PL/SQL初學者必讀:幾十個實用的PL/SQL (轉)SQL
- pl/sql中的row物件SQL物件
- pl/sql的HomeEnd問題SQL
- 使用PL/Scope分析PL/SQL程式碼SQL
- PLSQL Language Reference-PL/SQL概覽-PL/SQL架構SQL架構
- [PL/SQL]10g PL/SQL學習筆記(一)SQL筆記
- [PL/SQL]10g PL/SQL學習筆記(二)SQL筆記
- [PL/SQL]10g PL/SQL學習筆記(三)SQL筆記
- PL/SQL:ORA-04063錯誤解決方法SQL
- T-SQL、Jet SQL、PL-SQL 的含義SQL
- PL/SQL 迴圈SQL
- PL/SQL 遊標SQL
- PL/SQL 運算子SQL
- PL/SQL 條件SQL
- pl/sql to_dateSQL