アイテムは、チェック・ボックス、日付ピッカー、テキストとしての表示、ファイル参照フィールド、ポップアップLOV、選択リスト、テキスト領域などのHTMLフォームの一部です。
アイテムを定義する場合、開発者は、定義されたネーミング規則と、セッション・ステートに格納されたアイテム値を参照する場合の特定のルールに従う必要があります。
親トピック: ページ・レベル・アイテムの管理
ページ・アイテムはページ上に配置され、関連付けられたユーザー・インタフェースのプロパティを持ち、アプリケーション・アイテムはページに関連付けられません。
アイテムには、ページ・アイテムとアプリケーション・アイテムの2つのタイプが存在します。ページ・アイテムはページ上に配置され、「表示のみ」、「ラベル」、「ラベル・テンプレート」などの関連付けられたユーザー・インタフェースのプロパティを持ちます。ページ・レベル・アイテムの例としてはチェック・ボックス、日付ピッカー、テキストとしての表示、「ファイル参照」フィールド、「ポップアップLOV」、「選択リスト」、または「テキスト領域」などがあります。対照的に、アプリケーション・アイテムはページに関連付けられないため、ユーザー・インタフェースのプロパティを持ちません。アプリケーション・アイテムは、グローバル変数として使用できます。
関連項目:
親トピック: ページ・レベル・アイテムの理解
アイテム名を作成する場合、開発者は非常に具体的なアイテムのネーミング規則に従う必要があります。
アイテム名を指定する場合は、次の規則に注意してください。規則は次のとおりです。
アプリケーション内で一意である必要があります。
引用符を含めることはできません。
先頭は文字または数字である必要があります。その後は、文字、数字またはアンダースコア文字を使用できます。
大/小文字が区別されません。
30文字以内にする必要があります。30文字を超えるアイテムは、バインド変数構文を使用して参照できません。バインド変数構文を使用したセッション・ステートの参照を参照してください。
基本ASCIIキャラクタ・セット以外の文字を含めることはできません。
アイテム名を指定する場合は、ページ番号を含めることをお薦めします。デフォルトでは、ウィザードによってページ・アイテム名の先頭にP
<page no>
_
<item name>
が付けられます(たとえば、P1_NAME
)。
親トピック: ページ・レベル・アイテムの理解
リージョン、計算、プロセス、検証およびブランチのセッション・ステートに格納されたアイテム値を参照できます。
表14-2に、アイテム値を参照するためにサポートされている構文を示します。
表14-2 アイテム値を参照するための構文
データ型 | 構文 | 説明 |
---|---|---|
SQL |
|
名前が30バイト以下のアイテム用の標準のバインド変数構文。この構文は、SQL問合せおよびPL/SQLコード内の参照用に使用します。 |
PL/SQL |
|
この構文をSQL文で使用しないでください。使用すると、パフォーマンスの問題が発生する場合があります。 |
PL/SQL |
|
この構文をSQL文で使用しないでください。使用すると、パフォーマンスの問題が発生する場合があります。 |
静的テキスト(完全置換) |
|
静的テキスト。完全置換です。 注意: 正確な置換構文をSQLまたはPL/SQLコードで使用しないでください。使用すると、SQLインジェクションに対して脆弱になる可能性があります。 |
次のいずれかの方法を使用すると、アプリケーションのアイテム値を設定できます。
ページ・レベル・アイテムの場合、ソース属性を使用してアイテム値を設定します。
ページから、アイテム名を選択してページ・アイテムの編集ページを表示します。「ソース」までスクロールして、該当するフィールドを編集します。
次の構文を使用して、PL/SQLまたはプロセスに基づく任意のリージョンのアイテム値を設定することもできます。
BEGIN :MY_ITEM := 'new value'; END;
f?p
構文を使用してURL参照の値を渡します。次に例を示します。
f?p=100:101:10636547268728380919::NO::MY_ITEM:ABC
計算を使用して値を設定します。計算は、アイテム値を設定するように設計されています。次に例を示します。
TO_CHAR(SYSDATE,'Day DD Month, YYYY');
PL/SQL APIを使用して、PL/SQLコンテキストにアイテム値を設定します。次に例を示します。
APEX_UTIL.SET_SESSION_STATE('MY_ITEM',SYSDATE); F
アイテムを参照する場合、最も有効な方法は、IDで参照する方法です。
WebブラウザでOracle Application ExpressページのHTMLソースを表示すると、すべてのアイテムにID属性が含まれていることがわかります。このIDは、アイテム・ラベルではなく、アイテム名に対応します。たとえば、P1_FIRST_NAME
という名前で、First Name
というラベルを持つアイテムを作成した場合、IDはP1_FIRST_NAME
になります。
JavaScriptファンクション$v('P1_FIRST_NAME')
と$s('P1_FIRST_NAME', 'Joe');
を使用して、アイテム属性と値を取得および設定できます。次に例を示します。
function showFirstName(){ alert('First Name is ' +$v('P1_FIRST_NAME')) }; function setFirstName(pFirstName){ $s('P1_FIRST_NAME', pFirstName); };
これらのファンクションは、他のJavaScriptファンクションにより、またはJavaScriptコードの実行動的アクションを使用してコールできます。
関連項目:
『Oracle Application Express APIリファレンス』のAPEX_JAVASCRIPTに関する説明
親トピック: ページ・レベル・アイテムの理解
数の選択リスト・アイテムから返された値を処理する方法について学習します。
複数選択アイテムは複数選択リストのフォーム要素としてレンダリングされ、複数選択リストまたはシャトル・アイテム・タイプのいずれかになります。送信されると、選択した値は単一のコロンで区切られた文字列に戻されます。このフォーマットの値は3通りの方法で処理できます。
INSTR
ファンクションの使用
APEX_UTIL.STRING_TO_TABLE
ファンクションの使用
シャトルの作成
親トピック: 複数選択リスト・アイテムでの操作
たとえば、部門の複数選択リストから選択した部門によって限定されているEMP
表およびDEPT
表に関するレポートがあるとします。まず、次の問合せを使用して、複数選択アイテム「P1_DEPTNO」を作成します。
SELECT dname, deptno FROM dept
次に、次のように入力して、選択した部門内の従業員のみを戻します。
SELECT ename, job, sal, comm, dname FROM emp e, dept d WHERE d.deptno = e.deptno AND instr(':'||:P1_DEPTNO||':',':'||e.deptno||':') > 0
次に、複数選択アイテム「P1_DEPTNO」で選択した値をプログラムで処理するとします。このタスクを行うには、APEX_UTIL.STRING_TO_TABLE
ファンクションを使用して、コロンで区切られた文字列をPL/SQL配列に変換します。次の例では、選択した部門を問合せの日付が含まれている監査表に挿入する方法を示します。
DECLARE l_selected APEX_APPLICATION_GLOBAL.VC_ARR2; BEGIN -- -- Convert the colon separated string of values into -- a PL/SQL array l_selected := APEX_UTIL.STRING_TO_TABLE(:P1_DEPTNO); -- -- Loop over array to insert department numbers and sysdate -- FOR i IN 1..l_selected.count LOOP INSERT INTO report_audit_table (report_date, selected_department) VALUES (sysdate, l_selected(i)); END LOOP; END;
関連項目:
Oracle Application Express APIリファレンスの「STRING_TO_TABLEファンクション」
親トピック: 複数選択リスト・アイテムでの操作