2010-04-15 58 views
1

我對Oracle Apex相當陌生,並且遇到問題。我們的應用程序目前有一個輸入數據的方法,有幾個文本框和可選的值列表。我想基於像這樣在另一個文本框的信息有一個LOV:基於另一個文本框中的數據填充Oracle Apex中的LOV

select APPOINTMENT_ID PATIENT_ID from APPOINTMENT where PATIENT_ID = :P9_PAT_NUM 

其中P9_PAT_NUM是在文本框中的患者數量。但是,如果文本框已經提交,這顯然只能工作,否則它假定文本框爲空。

有沒有什麼辦法讓這個工作與一個LOV,或者其他一些方法?

回答

3

在Apex版本4+中,這是一個內置功能。您只需指定LOV取決於級聯LOV父項目屬性的項目。

此前4版本,有許多可用的解決方案 - 谷歌「的Apex級聯LOV」,你會發現,涉及到一些工作的幾個解決方案,如:

的Javascript: http://www.inside-oracle-apex.com/generic-solution-for-cascading-select-listslovs/

ApexLib: http://one-size-doesnt-fit-all.blogspot.com/2007/10/apex-cascading-lovs-revisited.html

使用ExtJS的: http://application-express-blog.e-dba.com/?tag=apex-cascading-lov

0

一旦頂點4.0出來(應該很快),這將是非常簡單的使用它的級聯LOV功能。在此之前,你可以做以下兩種方法之一:容易,但笨重,或困難,但光滑......

1)容易,但笨重的:

添加以下JavaScript的第一個項目的HTML表單元素屬性:

onchange="doSubmit()" 

這會在第一個項目被更改時提交頁面,所以當它重新加載項目的當前值將被用於填充LOV。我說這是「笨重」,因爲整個頁面重新加載(緩慢),並且光標移回到開始位置。

2)困難的,但華而不實:

如果LOV是一個彈出,那麼你只需要得到第一個項目到會話狀態,您可以通過JavaScript和Ajax做的價值。

如果您的LOV是一個選擇列表,那麼您需要使用Javascript和AJAX動態地重新填充選擇列表。

我不會詳細介紹這些內容,但是我發現雖然我一直在寫這個Jeffrey Kemp已經發布了一些有用的鏈接,將會更詳細地解釋。

相關問題