2012-11-22 104 views
0

的IR我有我的一些應用程序中不同的交互式報表的(使用Oracle APEX 4.1)在不同的頁面。計算行的總數從頁0

關於這些報道,我有分頁,但我一直在問也提供各的報告,記錄的總體總數,每個報告的頁面上的某個地方顯示出來。

是否有在第0頁做這個功能的一種手段或者我需要計算總記錄每個單獨報告?

謝謝。

=============================

**湯姆 - 必須把這個問題意見的下方,增加了在這裏:

你好Tom,正如我以前對你的評論中提到,我添加了新的「p_use_filter」布爾參數,此設置爲false,一切工作正常,所以感謝。

現在我有另一個查詢給你,不確定這是否仍然是你可能正在處理的東西,但在一個IR報告中,在我的where條件下,我使用綁定變量,但是當我向下鑽取時這傳遞給其他報告與綁定變量字符串,然後看看在後端SQL語句報告字段,我得到一個無效的關係運算符錯誤,因爲SQL有一個WHERE條件,如:

WHERE (CUSTOMER_NAME = ABC AIRLINES LTD) 

即它試圖解析SQL沒有單引號左右ABC航空有限公司

任何想法,湯姆。

謝謝。

+0

在apex 4.2中有一個包APEX_IR,您可以使用它檢索IR報告sql。我做了一個在4.1中工作的包並且可以返回IR sql。如果你對我感興趣,我會嘗試在github上獲取它。 – Tom

+0

湯姆 - 這將是偉大的,但可以用它來確定記錄總數,因爲我基本上需要選擇計數(*)與每個IR查詢的from和where子句。湯姆,如果你的包裹可以容納這個要求,那麼肯定會喜歡看看。 Github鏈接會很好。謝謝。 – tonyf

+0

我只是簡單地檢索ir sql,並將其作爲子查詢包含在select count(*)中。今天晚些時候我會有一個鏈接,因爲我無法更快地訪問git。 – Tom

回答

1

我建議檢索IR sql,然後執行包裝在SELECT COUNT(*) from (...)中的SQL。
現在,在apex 4.2中,您將獲得可以獲取報表sql的apex_ir包,但在4.2之前,您沒有這樣的包。我爲自己做了一個,我已經用它做了幾件事情(例如i've blogged a bit about these)。 我對代碼的當前狀態表示歉意,因爲它需要一些清理,但它是功能性的,並且有很多註釋。它會解析所有的過濾器並將它們再次轉換爲sql。它不處理計算或分組。它可能會在某處留下一些扭結,但這可能取決於你想要做什麼。在這種情況下,它不應該是一個問題。

Git link

基本上,安裝包在您的架構,然後用這樣的代碼來運行它:

DECLARE 
    lNullTable DBMS_SQL.VARCHAR2_TABLE; 
    lDebug  VARCHAR2(4000); 
    lSql  VARCHAR2(4000); 
    lCount  NUMBER; 
BEGIN 
    lSql := apex_ir_pkg.get_ir_sql 
     (
     p_app_id    => :APP_ID, 
     p_session_id   => :APP_SESSION, 
     p_page_id   => :APP_PAGE_ID, 
     p_report_id   => NULL, 
     p_app_user   => :APP_USER, 
     p_use_session_state => TRUE, 
     p_binds    => lNullTable, 
     p_binds_val   => lNullTable, 
     p_incl_order_by  => FALSE, 
     p_debug    => lDebug, 
    ); 

    lSql := 'SELECT count(*) FROM ('||lSql||')'; 

    EXECUTE IMMEDIATE lSql INTO lCount; 
END; 

如果碰到一些麻煩,無法弄明白,你可以聯繫我,我會看看我能做些什麼。我知道一些代碼檢修是必要的,但我還沒有得到它。

+0

嗨,湯姆,一切正常,但我怎麼能讓你的例程總是返回記錄的總量,並忽略在IR報告上執行的任何過濾?基本上總是希望總數和忽視任何過濾的記錄。謝謝。 – tonyf

+0

哦,好吧。你基本上想要執行爲報告定義的SQL?如果是這樣,它是否綁定了變量(頁面項)還是簡單的sql? – Tom

+0

嗨,湯姆,一些IRs綁定了變量,有些沒有。我基本上總是希望忽略用戶單獨執行的任何過濾,但總是返回記錄的總數。謝謝。 – tonyf

0

您可以使用##TOTAL_ROWS在該地區的頁眉或頁腳,但它只會顯示的初始值。我用它來傳統的報道。我不認爲它與紅外javascript很好地發揮。這是部分頁面刷新。 請參閱:https://forums.oracle.com/forums/thread.jspa?threadID=2239712http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21674/ui_region.htm#CHDBCGJH

+0

嗨,#TOTAL_ROWS#只是基於分頁行向我返回行,在我的情況下是15行,而不是報告中所有行的總數,例如總共200行 - 任何想法?謝謝。 – tonyf