2012-11-06 67 views
2

這個我們相關的問題:APEX LOV Display value look up,其中託尼·安德魯斯建議這樣做:APEX LOV顯示值參考

select display_value 
from apex_application_lov_entries 
where application_id = 123 
and list_of_values_name = 'DEPT_LOV' 
and return_value = :p1_deptno; 

這似乎引用應用程序級的LOV條目;有什麼方法可以查詢頁面項目中定義的LOV嗎?

我希望能夠做的是使用一個變量來引用一個LOV的顯示值,而不是它的返回值。所以如果我在一個名爲P2_TERM_SELECT的項目中有一個LOV,那麼:P2_TERM_SELECT.會給出它的返回值,但是顯示值有沒有另一個變量?

回答

0

爲了方便起見,爲什麼不將共享組件中的頁面項lov轉換爲lov?我的意思是,可能有一種方法可以從項目中檢索它,但不會那麼混亂嗎?你需要什麼顯示值:在plsql中還是在頁面上?如果在頁面本身上,總是有javascript。

Tony使用的查詢是從靜態LOV中檢索條目的查詢。當一個LOV包含SQL時,這將不太明確。

您可以檢索頁面項目LOV設置:

SELECT lov_definiation 
FROM APEX_APPLICATION_PAGE_ITEMS 
WHERE application_id = 123 
AND page_id = 1 
AND item_name = 'P1_DEPTNO'; 

然而,這將返回只是一個字符串。 select語句將是一個字符串。如果你已經定義了一個靜態值列表,那麼返回值也是一個字符串:你在定義中看到的那個。例如:

STATIC2:SALES;10,RESEARCH;20 

我不知道解析,除了也許在apex_plugin_util,但我要說,這是很難用它的地方的內置方式。除非你想自己推出(編輯:我試過apex_plugin_util.get_data,但它不適用於STATIC2格式)。

我會認真考慮你在做什麼以及它如何增加複雜性。如果你打算使用靜態lovs,或者考慮爲你的值使用查找表,我建議使用共享組件LOV。

+0

在頁面本身不幸的是,我希望不必進入JavaScript。幸運的是,我通過將Pop-Up LOV切換到選擇列表來解決了我的問題。 – Nick

0
  1. 在頂點中沒有什麼像頁面級lov。當您創建lov時,它始終是共享組件的一部分,並且是應用程序級別。

  2. P2_TERM_SELECT lov項總是返回你給出的返回值。

    所以,在你scenariou如果你想從描述值:P2_TERM_SELECT那麼一個想法是 有LOV查詢像下面的例子:

    選擇DISPLAY_VALUE DISP,RETURN_VALUE || ':'||來自some_table的display_value ret。

    然後得到P2_TERM_SELECT項目,他顯示值 然後做SUBSTR(:P2_TERM_SELECT,INSTR(:P2_TERM_SELECT, ':')+ 1,長度(:P2_TERM_SELECT))

日Thnx

MK

+0

1.是的,沒有頁面級lov。但從Nick的帖子中,我認爲他很清楚他的意思是頁面項目級別。不僅有應用程序級LOV,您還可以定義項目的LOV。我編輯了Nick的帖子,以更好地反映頁面項目級別。如果你覺得有必要絆倒這一點,而不是評論這一點,並花時間照顧你自己的帖子。來自「現代漢英綜合大詞典」好了 - 可以工作,但這很麻煩。這意味着在將數據處理到表中之前,您還需要處理替換爲會話狀態的值。不,你不想在你的餐桌上有這樣的價值。 – Tom

+0

當我回答問題時,我沒有在Nick的帖子上看到您的評論。對不起,您的回覆超出了。 – user989729

+0

沒問題,你沒有超越。我沒有多個答案的問題,完全沒問題!我只是不同意你的回答,並不認爲這是正確的做法。最終,判決取決於社區和OP。 – Tom