1

私は Oracle Apex にかなり慣れていないので、問題があります。私たちのアプリケーションには現在、いくつかのテキスト ボックスとオプションの値リストを使用してデータを入力する方法があります。次のように、別のテキスト ボックスの情報に基づいて LOV を作成したいと考えています。

select APPOINTMENT_ID PATIENT_ID from APPOINTMENT where PATIENT_ID = :P9_PAT_NUM

ここで、P9_PAT_NUM はテキスト ボックス内の患者番号です。ただし、これはテキスト ボックスが既に送信されている場合にのみ機能するようです。それ以外の場合は、テキスト ボックスが null であると想定されます。

これをLOVまたは他の方法で機能させる方法はありますか?

4

2 に答える 2

3

Apex バージョン 4 以降では、これは組み込み機能です。Cascading LOV Parent Item(s)プロパティで、LOV が依存するアイテムを指定するだけです。

バージョン 4 より前のバージョンでは、Google の「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

于 2010-04-15T13:16:00.100 に答える
0

Apex 4.0 がリリースされると (すぐにリリースされるはずです)、カスケード LOV 機能を使用すると非常に簡単になります。その前に、2 つの方法のいずれかでそれを行うことができます: 簡単だがぎこちない、または難しいが滑らかな.

1) 簡単だが扱いにくい:

次の Javascript を最初のアイテムの HTML フォーム要素属性に追加します。

onchange="doSubmit()"

これにより、最初のアイテムが変更されたときにページが送信されるため、リロード時にアイテムの現在の値が LOV の入力に使用されます。ページ全体がリロードされ(遅く)、カーソルが開始位置に戻るため、「ぎこちない」と言います。

2) 難しいが巧妙:

LOV がポップアップの場合は、最初の項目の値をセッション状態にするだけで済みます。これは Javascript と AJAX を介して行うことができます。

LOV が選択リストの場合、Javascript と AJAX を使用して選択リストを動的に再設定する必要があります。

これらの詳細については触れませんが、この記事を書いている間に、Jeffrey Kemp が詳細を説明する便利なリンクをいくつか投稿していることに気付きました。

于 2010-04-15T13:19:42.107 に答える