2011-10-17 27 views
4

我是相對APEX noob。在APEX中創建表單以在交互式報告的查詢中設置變量

我對10gR2數據庫運行APEX 4.0。

我寫了一個查詢,它需要幾個輸入(兩個日期字段,用於開始和結束,還有一個文本字段用於進一步過濾),並創建了一個動態報告,當我將輸入變量:START_DATE,:END_DATE,:OFFICE),或將其替換爲靜態值。

我想在頁面上創建一個表單,將這些值提交給動態報表頁面,以便在查詢中使用,以過濾用戶在遇到報表時的結果。

我沒有太多的運氣找到一個很好的分步示例。我創建了一個帶有兩個日期選擇器和一個LOV選擇下拉列表的空白頁面,但我不確定如何最好地將這些值轉換爲動態報告。

有人能爲我指出正確的文檔嗎?

回答

9

下使用的Apex 4.1開發的,但除了一些表面的改變的原則應該是相同的。

數據來自標準scott.emp架構。

概述

這是第1,用戶可以輸入一個EMPNO和\或HIREDATE。

enter image description here

當提交被壓在不同的頁面下面的報表顯示:

enter image description here

它是如何工作

在第1頁我創建了三個項目所示。文本項目被稱爲P1_EMPNO和P1_HIREDATE。按鈕的操作是「提交網頁」

還是第1頁上,創建具有以下值的分支:

enter image description here

這個分支導航到第2頁(這是尚待開發)並使用頁面1中的值設置頁面2上的項目值。

創建一個新頁面,在本例中,這將參考第2頁。

在第2頁使用以下查詢創建一個新的交互式報表:

select e.* 
from emp e 

接下來,創建在同一地區兩個文本的項目,如報告,並調用這些:P2_EMPNO和:P2_HIREDATE。我發現在開發過程中顯示這些項目很有用,所以你可以看到正確的值被傳遞給頁面。一旦您對報告滿意,您可以隨時將其設置爲隱藏。

最後修改通過交互式報表使用的查詢使用由第1頁

enter image description here

運行應用程序提供的值。

+0

記錄良好的答案,雖然你不需要分支當你在同一頁上的報告當然是你的參數:)另外,我不認爲有必要在第2頁有項目,除了存在展示物品(否則你會嘗試改變它們,沒有提交就不會發生)。您可以簡單地參考p2中的p1_hiredate。我想知道,雖然(不能訪問工作區atm),你能不能設置紅外濾鏡,比如'IR_P2_EMPNO'? – Tom

+0

@Tom:感謝您的評論,永遠感激。我編輯了我的答案,以澄清第2頁顯示的字段的原因。 –

+0

伊恩:我試圖實現這一點,但失敗。看起來第2頁上的變量沒有被填充爲可以在分支中設置的「項目」。除了在交互式報告的源頭中命名它們以將它們轉換爲可設置的項目之外,我還需要做些什麼? – Rob

1

您想在查詢中引用您的頁面項目,這意味着您必須在查詢之前提交頁面才能獲取它們的會話狀態。當我提供一個小參數表單時,我所做的就是在其中放置一個按鈕(即標記爲「查詢」),它會進行提交。

在您的報告中,您可以引用您的項目。例如,如果你有2項P1_DATE_STARTP1_DATE_END,您的查詢可能看起來像:

SELECT firstname, lastname, job 
    FROM employees 
WHERE employment_start BETWEEN to_date(:P1_DATE_START) AND to_date(:P1_DATE_END); 
相關問題