ヘッダーをスキップ
Oracle® Application Express APIリファレンス
リリース3.2
B53798-03
  目次へ移動
目次

前
 
次
 

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

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

G_BROWSER_LANGUAGE

Webブラウザの現行の言語プリファレンスを参照します。

G_DEBUG

デバッグが現在有効になっているかどうかを参照します。DEBUGフラグの有効値は、「Yes」または「No」です。デバッグを有効にすると、アプリケーション処理の詳細が表示されます。

G_HOME_LINK

アプリケーションのホームページを参照します。ページが指定されておらず、かつ認証スキームのロジックによって代替ページが指定されていない場合、Application Expressエンジンによって、この場所にリダイレクトされます。

G_LOGIN_URL

現在ログインしていないユーザー用のログイン・ページへのリンクを表示するために使用できます。

G_IMAGE_PREFIX

Oracle Application Expressによって分散されたイメージ・ディレクトリを指すためにWebサーバーで使用される仮想パスを参照します。

G_FLOW_SCHEMA_OWNER

Application Expressスキーマの所有者を参照します。

G_PRINTER_FRIENDLY

Application Expressエンジンが印刷表示モードで実行されているかどうかを参照します。この設定は、印刷されたドキュメントに不要な要素をページから排除するための条件で参照できます。

G_PROXY_SERVER

アプリケーション属性「プロキシ・サーバー」を参照します。

G_SYSDATE

データベース・サーバーの現在の日付を参照します。この日付には、DATEデータ型が使用されています。

G_PUBLIC_USER

データベース・アクセス記述子(DAD)でデータベースに接続するために使用するOracleスキーマを参照します。

G_GLOBAL_NOTIFICATION

アプリケーションのグローバル通知属性を指定します。


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


配列の参照

通常、アイテムは、テキスト・フィールド、選択リスト、チェック・ボックスなどの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)

HELPプロシージャ

このファンクションでは、書式設定された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>:&nbsp;',
    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_show_regionsが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_after_region_html

このパラメータは、すべてのリージョン・セクションの後にHTMLを含める場合に使用します。p_show_regionsが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_before_prompt_html

このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ラベルの前にHTMLを含める場合に使用します。p_show_item_helpが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_after_prompt_html

このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ラベルの後にHTMLを含める場合に使用します。p_show_item_helpが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_before_item_html

このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ヘルプ・テキストの前にHTMLを含める場合に使用します。p_show_item_helpが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_after_item_html

このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ヘルプ・テキストの後にHTMLを含める場合に使用します。p_show_item_helpが「NO」に設定されている場合、このパラメータは無視されることに注意してください。


次の例に、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>&nbsp;&nbsp;');

アプリケーションでこのタイプのコールを実装するには、次の手順を実行します。

  1. アプリケーションのヘルプ・ページとなるページを作成します。

  2. 「PL/SQL動的コンテンツ」タイプのリージョンを作成し、APEX_APPLICATION.HELPコールをPL/SQLソースとして追加します。

  3. その後、このページに「ナビゲーション・バー」リンクを追加して、このリンクに設定されているREQUESTの値が&APP_PAGE_IDであることを確認します。