2016-04-18 41 views
0

我有一個APEX 5.0.3.00.03頁面,其中包含許多標準字段,後面跟着一個包含交互式報告(IR)的區域。我想推遲產生的IR,直到點擊「Generate」按鈕,但我遇到了麻煩。沒有標準的報告會通過一個令人討厭的5表連接生成數百萬行,所以我想推遲處理,直到用戶準備就緒。我知道我可以做一個/*+ FIRST_ROWS */提示,但仍然希望避免調用SQL,直到用戶選擇一些條件。Oracle Apex 5.0:等待生成IR,直到輸入標準字段

我嘗試以下:

創建隱藏字段P210_WAIT,「TRUE」的初始值,這是我包括在SQL標準是這樣的:

select * from tab_1, tab_2, tab_3, tab_4, tab_5 
where :P210_WAIT != 'TRUE' 
and -- join, and dozens of other criteria here 

和在上一個動態作用Generate按鈕,我做兩件事情:

  1. Execupte PL/SQL代碼來設置:P210_WAIT := 'FALSE';
  2. 刷新操作:
    • 操作:刷新
    • 受影響的元素:選擇類型:區域。地區:(含區我IR)

我在PL/SQL代碼調試語句,它們出現,但產生報表的SQL沒有運行,這意味着刷新行動並不是「喚醒」IR。

它似乎正在對頁面加載執行的IR SQL,因爲我是動態地設置IR屬性「時,沒有找到數據」值最初說「請選擇條件,然後點擊生成按鈕顯示報告」那是行得通的。

回答

1

如果我正確理解你的問題,你的主要問題在於:刷新區域的延遲動作不起作用,我正確嗎?

如果是這樣的問題,試試這個:

  • 首先,確保在源查詢的所有綁定變量的源查詢區下上市Page Items to Submit

  • 然後,分配Static ID用於IR區域。

  • 接下來將是,改變Refresh動態動作Execute Javascript並粘貼此

    $('#static_id').trigger('apexrefresh'); 
    

希望這有助於。

+0

工程很棒;謝謝!看起來,我不必在頁面項目中列出要提交的所有綁定變量,但不是肯定的。調試日誌顯示 'IR綁定:「P210_CLASS」value =「定製服務:數據中心網絡:災難恢復:現場支持」'我沒有列出的字段。 –

+0

嗯。看起來我很快就說話了。我正在監視某些正在執行的SQL語句,並且正在查看錯誤的:(我的報告SQL在APEX Page Designer中更新後沒有執行過,我會嘗試一些事情併發布結果。執行,我得到了'使用現有會話報告設置'和'打印行'的日誌消息。行窗口:1-50。找到的行:1'似乎事情正在工作;實際上,它可能是它的工作,因爲我忘記了最初的SQL APEX確實獲得了行數...... –