0

コレクション オブジェクト内に格納されている値に基づいて、ApEx で選択リストを作成しようとしています。

基本的に、varchar2 の配列の値を設定する Java クラスを呼び出すストアド プロシージャを実行しています。

値を取得して dbms 出力に出力するには、次の PLSQL ブロックを実行します。

DECLARE
    vArray testschema.stringarray_type := testschema.stringarray_type();
BEGIN
    testschema.getLOV(vArray);

    FOR i IN 1..vArray.COUNT LOOP
        DBMS_OUTPUT.PUT_LINE('Counter: ' || i || ' Value: "' || vArray(i) || '".');
    END LOOP;

END;

ここで必要なのは、それらの値を出力する代わりに、すべての値を選択リストに入れることだけです。

選択リストのLOVソースで機能するように、このPLSQLコードを書き直すにはどうすればよいですか?

コードを次のように変更する方法はありますか。

FOR i IN 1..vArray.COUNT LOOP
    :P1_SELECT_LIST.append(vArray(i));
END LOOP;

それを動的アクションか何かで実行しますか?

ありがとう

編集:

ページの読み込み時に動的アクションを使用して PLSQL を実行する一時的な回避策を作成しました。オブジェクトの各値を plsql ブロッ​​クの varchar2 変数にカンマで区切って追加します。次に、非表示のページ アイテムをその変数の値に等しく設定すると、次のような値が保持されます。

item1,item2,item3,item4,item5

次に、javascript 動的アクションを使用して、アイテムの値をカンマで分割し、選択リストの html をカスタム作成の html 文字列に置き換えて、すべてのアイテムをオプションとしてリストします。

これは私の理想的な解決策ではないので、もっと良い方法があるかどうかを知りたいと思っています。または、この回避策の一部をより良いソリューションで使用できる可能性があります。

4

3 に答える 3

0

POPUP_FROM_QUERY 関数を使用できます。ここを読むhttp://docs.oracle.com/cd/E23903_01/doc/doc.41/e21676/apex_item.htm#CHDEBCCI

于 2013-07-08T08:59:23.047 に答える