APEX_APPLICATION
パッケージは、Oracle Application Expressレンダリング・エンジンを実装するPL/SQLパッケージです。このパッケージを使用すると、多くのグローバル変数を使用できます。表4-1に、APEX_APPLICATION
パッケージで使用可能なグローバル変数を示します。
表4-1 APEX_APPLICATIONで使用可能なグローバル変数
グローバル変数 | 説明 |
---|---|
|
現在ログインしているユーザーを指定します。 |
|
現在実行されているアプリケーションのIDを指定します。 |
|
現在実行されているページのIDを指定します。 |
|
現在実行されているアプリケーションの解析対象のスキーマを指定します。 |
|
表示または受入れモジュールに最後に渡されるか、あるいは表示または受入れモジュール内に最後に設定されるリクエスト変数の値を指定します。 |
|
Webブラウザの現行の言語プリファレンスを参照します。 |
|
デバッグが現在有効になっているかどうかを参照します。DEBUGフラグの有効値は、「Yes」または「No」です。デバッグを有効にすると、アプリケーション処理の詳細が表示されます。 |
|
アプリケーションのホームページを参照します。ページが指定されておらず、かつ認証スキームのロジックによって代替ページが指定されていない場合、Application Expressエンジンによって、この場所にリダイレクトされます。 |
|
現在ログインしていないユーザー用のログイン・ページへのリンクを表示するために使用できます。 |
|
Oracle Application Expressによって分散されたイメージ・ディレクトリを指すためにWebサーバーで使用される仮想パスを参照します。 |
|
Application Expressスキーマの所有者を参照します。 |
|
Application Expressエンジンが印刷表示モードで実行されているかどうかを参照します。この設定は、印刷されたドキュメントに不要な要素をページから排除するための条件で参照できます。 |
|
アプリケーション属性「プロキシ・サーバー」を参照します。 |
|
データベース・サーバーの現在の日付を参照します。この日付には、DATEデータ型が使用されています。 |
|
データベース・アクセス記述子(DAD)でデータベースに接続するために使用するOracleスキーマを参照します。 |
|
アプリケーションのグローバル通知属性を指定します。 |
このセクションの構成は次のとおりです。
通常、アイテムは、テキスト・フィールド、選択リスト、チェック・ボックスなどのHTMLフォーム要素です。ウィザードを使用して新しいフォーム・アイテムを作成する場合、ウィザードは標準のネーミング形式を使用します。ネーミング形式ではハンドルが提供されるため、後でアイテムの値を取得できます。
独自のアイテムを作成する必要がある場合、ページを送信した後にAPEX_APPLICATION.G_F01
からAPEX_APPLICATION.G_F50
配列を参照してそれらにアクセスできます。F01
、F02
、F03
などの形式を使用して入力パラメータを入力することによって、独自の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
配列のエントリを含めることができる他のアイテム(TEXT
、TEXTAREA
および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)
このファンクションでは、書式設定されたHTMLとしてページ・レベルおよびアイテム・レベルのヘルプ・テキストが出力されます。また、このファンクションは、アプリケーションでのヘルプ情報の表示方法のカスタマイズに使用できます。
構文
APEX_APPLICATION.HELP ( p_request IN VARCHAR2 DEFAULT NULL, p_flow_id IN VARCHAR2 DEFAULT NULL, p_flow_step_id IN VARCHAR2 DEFAULT NULL, p_show_item_help IN VARCHAR2 DEFAULT 'YES', p_show_regions IN VARCHAR2 DEFAULT 'YES', p_before_page_html IN VARCHAR2 DEFAULT '<p>', p_after_page_html IN VARCHAR2 DEFAULT NULL, p_before_region_html IN VARCHAR2 DEFAULT NULL, p_after_region_html IN VARCHAR2 DEFAULT '</td></tr></table></p>', p_before_prompt_html IN VARCHAR2 DEFAULT '<p><b>', p_after_prompt_html IN VARCHAR2 DEFAULT '</b></p>: ', p_before_item_html IN VARCHAR2 DEFAULT NULL, p_after_item_html IN VARCHAR2 DEFAULT NULL);
パラメータ
表4-2に、HELPプロシージャで使用可能なパラメータを示します。
表4-2 HELPのパラメータ
パラメータ | 説明 |
---|---|
p_request |
使用されません。 |
p_flow_id |
出力するページ・レベルまたはアイテム・レベルのヘルプが含まれているアプリケーションID。 |
p_flow_step_id |
表示するページ・レベルまたはアイテム・レベルのヘルプが含まれているページID。 |
p_show_item_help |
アイテム・レベルのヘルプが出力されるかどうかを決定するフラグ。このパラメータを指定する場合は、値を「YES」または「NO」のいずれかに設定する必要があります。設定しないと、デフォルトの「YES」が設定されます。 |
p_show_regions |
リージョン・ヘッダーが出力されるかどうかを決定するフラグ(ページ・アイテムが含まれているリージョン用)。このパラメータを指定する場合は、値を「YES」または「NO」のいずれかに設定する必要があります。設定しないと、デフォルトの「YES」が設定されます。 |
p_before_page_html |
このパラメータは、ページ・レベルのヘルプ・テキストとアイテム・レベルのヘルプ・テキストの間にHTMLを含める場合に使用します。 |
p_after_page_html |
このパラメータは、出力の下部の他のすべてのヘルプの後にHTMLを含める場合に使用します。 |
p_before_region_html |
このパラメータは、すべてのリージョン・セクションの前にHTMLを含める場合に使用します。 |
p_after_region_html |
このパラメータは、すべてのリージョン・セクションの後にHTMLを含める場合に使用します。 |
p_before_prompt_html |
このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ラベルの前にHTMLを含める場合に使用します。 |
p_after_prompt_html |
このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ラベルの後にHTMLを含める場合に使用します。 |
p_before_item_html |
このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ヘルプ・テキストの前にHTMLを含める場合に使用します。 |
p_after_item_html |
このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ヘルプ・テキストの後にHTMLを含める場合に使用します。 |
例
次の例に、APEX_APPLICATION.HELP
プロシージャを使用してヘルプ情報の表示方法をカスタマイズする方法を示します。
この例では、p_flow_step_id
パラメータが:REQUEST
に設定されています。つまり、表示されるページのヘルプ情報の制御に、URLのREQUESTセクションに指定されたページIDが使用されます(こうするための手順の詳細は、例の後を参照)。
また、ヘルプの表示は、(p_before_region_html
パラメータによって)リージョンのサブヘッダーが異なる色で表示されるようにカスタマイズされています。さらに、(p_after_prompt_html
パラメータによって)すべてのアイテム・プロンプトの後にデフォルトで表示される「:」は削除されています。
APEX_APPLICATION.HELP( p_flow_id => :APP_ID, p_flow_step_id => :REQUEST, p_before_region_html => '<p><br/><table bgcolor="#A3BED8" width="100%"><tr><td><b>', p_after_prompt_html => '</b></p> ');
アプリケーションでこのタイプのコールを実装するには、次の手順を実行します。
アプリケーションのヘルプ・ページとなるページを作成します。
「PL/SQL動的コンテンツ」タイプのリージョンを作成し、APEX_APPLICATION.HELP
コールをPL/SQLソースとして追加します。
その後、このページに「ナビゲーション・バー」リンクを追加して、このリンクに設定されているREQUESTの値が&APP_PAGE_ID
であることを確認します。