Creating Report using Report Builder and Oracle DB 使用Report Builder 3.0 (報表產生器)

研究如何用Report Builder 3.0 呼叫Oracle Procedure 方法,我找到兩篇的文章還不錯可以紀錄參考一下。

Creating Report using Report Builder and Oracle DB - Part 1

Creating Report using Report Builder and Oracle DB - Part 2

另外,可以利用Oracle 使用 SYS_REFCURSOR 來回傳資料集參考方式。

CREATE OR REPLACE PROCEDURE SP_GETEMPLOYEES (e_recordset OUT SYS_REFCURSOR)
IS
BEGIN
  OPEN e_recordset FOR
    SELECT * FROM PERSONNEL;
END SP_GETEMPLOYEES;


2016/05/25 Updated

一 目的:

處理目前ERP系統的Oracle Develop 2000工具技術困難及使用不方便,但是原有系統上的已經開發的Procedure可以重複使用,不會浪費原有程式降低程式開發複雜度。

安裝軟體

2.1 微軟報表產生器:

可以從微軟官方網站下載此軟體,安裝步驟這裡就不在重述。

2.2 Oracle Instant Client Downloads

可以從Oracle官方網站下載此軟體,必須注意x64及32-bit的版本區分,也就是若是有其它軟體要透過這一ODAC軟體連到Oracle資料庫,必需要安裝相對應的版本(也就是都安裝32-bit是最保險的方式)。

1

另外一篇另一篇安裝問題排除。

建立自己資料及Procedure程式

3.1 建立personnel table如下

CREATE TABLE personnel (
   id NUMBER (5) PRIMARY KEY,
   name VARCHAR2 (20),
   birthday DATE,
   hireday DATE DEFAULT SYSDATE,
   department VARCHAR2 (20)
)
TABLESPACE usr

塞入測試資料如下

INSERT INTO personnel (
  id,
  name,
  birthday,
  hireday,
  department)
VALUES(05, '員工五', TO_DATE('19101201', 'YYYYMMDD'), TO_DATE('20111010', 'YYYYMMDD'), 'Sales');

基本資料如下展示如下表所示

2

3.2 建立Oracle 上的Procedure

CREATE OR REPLACE PROCEDURE ARGOERP.sp_getemployees (
  e_recordset OUT SYS_REFCURSOR)
IS
BEGIN
  OPEN e_recordset FOR SELECT * FROM personnel;
END
sp_getemployees;
/

其中 OUT SYS_REFCURSOR 是重點,在 Oracle 中讓你把資料集傳給前端,這樣就完成基本的procedure程式。

使用報表產生器

4.1 開啟微軟報表產生器

3

4.2 建立資料來源

資料來源中按下右鍵,點選入資料來源

4

5

填入連接Oracle資料庫的名稱TNSname、帳號及密碼,若是沒有任何問題可按下測試連線。

若是出現測試連線成功,表示與資料庫聯繫沒有問題。

6

7

修改資料的相關屬性,按照畫面提示動做執行

②資料來源的DataSource1也就是在剛剛建立的資料來源名稱。

最後按下⑤的查詢設計工具

8

接下來後會出現查詢設計工具的提視窗,請按下①,若是沒有其它錯誤會將資料呈現在②的視窗框中,若是確認無誤後請執行③確定按鈕,完成此部份動作。

9

接下來看到底下視窗,請按下確定按鈕

10

4.4 資料的排版及呈現方式

上面資料來源及資料集都作業無誤後,於畫面中會出現①中的資料集,也就是Oracle 中建立的Table欄位,接下來要針對頁面排版的動作,在插入中選擇資料表—>插入資料表

11

請拖拉畫面涵蓋整個右側工作區

12

按右鍵新增兩列資料行,因為我們的資料集中有五個資料表

13

將資料集中的欄位,往右拖拉到適當的位置中,完成後如下列圖示,並且將排版位置調整適中。

14

最後,按下執行按鈕完成這一次報表的預覽動作。

15

報表預覽呈現

16

留言

這個網誌中的熱門文章

資訊部門KPI範例