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
- Oracle PL/SQLOracleSQL
- pl/sql to_dateSQL
- PL/SQL 運算子SQL
- PL/SQL 條件SQL
- PL/SQL 迴圈SQL
- PL/SQL 遊標SQL
- Oracle 的PL/SQL語言使用OracleSQL
- Oracle SQL調優系列之SQL Monitor ReportOracleSQL
- [20240607]PL/SQL中sql語句的註解.txtSQL
- Oracle PL/SQL塊簡介OracleSQL
- ultraedit高亮顯示pl/sqlSQL
- plsql developer工具生成sql monitor reportSQLDeveloper
- Java程式生成linechart report的方法Java
- Oracle PL/SQL程式碼中的註釋OracleSQL
- pl/sql developer的一個小問題SQLDeveloper
- PL/SQL 條件控制語句SQL
- PL/SQL程式設計急速上手SQL程式設計
- 6. Oracle開發和應用—6.4. PL/SQL語法—6.4.3. 賦值OracleSQL賦值
- 6. Oracle開發和應用—6.4. PL/SQL語法—6.4.2. 變數OracleSQL變數
- 使用profiler測試Oracle PL/SQL效能OracleSQL
- 6. Oracle開發和應用—6.4. PL/SQL語法—6.4.1. 語句塊OracleSQL
- 【TUNE_ORACLE】列出LOOP套LOOP的PL/SQL程式碼SQL參考OracleOOPSQL
- Oralce之PL/SQL程式設計(遊標)SQL程式設計
- OCP 複習筆記之PL/SQL (1)筆記SQL
- PL/SQL第二章--基本語法SQL
- PL/SQL第三章--游標SQL
- OCP 複習筆記之PL/SQL (3)筆記SQL
- 6.4. PL/SQL語法——6.4.7. 集合SQL
- OCP 複習筆記之PL/SQL (2)筆記SQL
- OCP 複習筆記之PL/SQL (4)筆記SQL
- OCP 複習筆記之PL/SQL (5)筆記SQL
- ORA-06544:PL/SQL:internal error,arguments:[56319]SQLError
- 使用PL/SQL找到兩個表中的相似值FKSQL
- Laravel框架改進Web App開發的9種方法Laravel框架WebAPP
- Oracl資料庫+PL/SQL安裝與配置資料庫SQL
- PL/SQL Developer連線到Oracle 12cSQLDeveloperOracle
- openGauss關於PL/SQL匿名塊呼叫測試SQL
- 【OracleEBS】 在PL/SQL中呼叫Oracle ERP請求OracleSQL