ヘッダーをスキップ
Oracle Application Express APIリファレンス
リリース3.1.2
B51325-01
  目次
目次
索引
索引

前へ
前へ
 
次へ
次へ
 

4 APEX_APPLICATION

APEX_APPLICATIONパッケージは、Oracle Application Expressレンダリング・エンジンを実装するPL/SQLパッケージです。このパッケージを使用すると、多くのグローバル変数を利用できます。表4-1に、APEX_APPLICATIONパッケージで使用可能なグローバル変数を示します。

表4-1 APEX_APPLICATIONで使用可能なグローバル変数

グローバル変数 説明

G_USER

現在ログインしているユーザーを指定します。

G_FLOW_ID

現在実行されているアプリケーションのIDを指定します。

G_FLOW_STEP_ID

現在実行されているページのIDを指定します。

G_FLOW_OWNER

現在実行されているアプリケーションの解析対象のスキーマを指定します。

G_REQUEST

表示または受入れモジュールに最後に渡されるか、あるいは表示または受入れモジュール内に最後に設定されるリクエスト変数の値を指定します。


このセクションの構成は次のとおりです。


配列の参照

通常、アイテムは、テキスト・フィールド、選択リスト、チェック・ボックスなどのHTMLフォーム要素です。ウィザードを使用して新しいフォーム・アイテムを作成する場合、ウィザードは標準のネーミング形式を使用します。ネーミング形式ではハンドルが提供されるため、後でアイテムの値を取得できます。

独自のアイテムを作成する必要がある場合、ページを送信した後にAPEX_APPLICATION.G_F01からAPEX_APPLICATION.G_F50配列を参照してそれらにアクセスできます。F01F02F03などの形式を使用して入力パラメータを入力することによって、独自のHTMLフォーム・フィールドを作成できます。最大50個の入力パラメータ(F01からF50まで)を作成できます。次に例を示します。

<INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="some value">
 
<TEXTAREA NAME="F02" ROWS=4 COLS=90 WRAP="VIRTUAL">this is the example of a text area.</TEXTAREA>
 
<SELECT NAME="F03" SIZE="1">
<OPTION VALUE="abc">abc
<OPTION VALUE="123">123
</SELECT> 

F01からF50の入力アイテムはPL/SQL配列として宣言されるため、複数のアイテムに同じ値を指定できます。次に例を示します。

<INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="array element 1">
<INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="array element 2">
<INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="array element 3">

次のPL/SQLコードにより、前述の例と同一のHTMLを作成できます。

FOR i IN 1..3 LOOP
APEX_ITEM.TEXT(P_IDX        => 1,
 p_value      =>'array element '||i ,
 p_size       =>32,
 p_maxlength  =>32);
END LOOP;

送信時プロセス内の値の参照

PL/SQL変数APEX_APPLICATION.G_F01からAPEX_APPLICATION.G_F50を使用して、HTMLフォームによってポストされた値を参照できます。この要素は配列のため、値を直接参照できます。次に例を示します。

FOR i IN 1.. APEX_APPLICATION.G_F01.COUNT LOOP 
    htp.p('element '||I||' has a value of '||APEX_APPLICATION.G_F01(i)); 
END LOOP;

APEX_ITEM.CHECKBOXを使用して表示したチェック・ボックスには、選択されている行に対してのみAPEX_APPLICATION配列の値が含まれることに注意してください。送信したすべての行に対応するAPEX_APPLICATION配列のエントリを含めることができる他のアイテム(TEXTTEXTAREAおよびDATE_POPUP)と異なり、チェック・ボックスには、行が選択されている場合にのみAPEX_APPLICATION配列のエントリが含まれます。


配列の単一値への変換

Oracle Application Expressパブリック・ユーティリティの機能を使用して、配列を単一値に変換することもできます。変換後の文字列は、配列要素の値がコロンで区切られたリストです。次に例を示します。

htp.p(APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01));

このファンクションを使用すると、データに対して操作を実行するアプリケーション・プロセスで、G_F01からG_F50の値を参照できます。次の例に、表に値を挿入する方法を示します。

INSERT INTO my_table (my_column) VALUES 
APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01)