APEX_PLUGIN_UTILパッケージには、プラグインを記述する際の共通の問題を解決するユーティリティ・ファクションが用意されています。
このプロシージャは、デバッグが有効な場合に、動的アクション・メタデータのデータをデバッグ出力に書き込みます。
構文
APEX_PLUGIN_UTIL.DEBUG_DYNAMIC_ACTION (
p_plugin IN apex_plugin.t_plugin,
p_dynamic_action IN apex_plugin.t_dynamic_action);
パラメータ
表22-2では、DEBUG_DYNAMIC_ACTIONプロシージャで使用可能なパラメータについて説明します。
表22-1 DEBUG_DYNAMIC_ACTIONのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
例
次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインのレンダリングされたファンクションまたはAjaxコールバック・ファンクションに実際に渡された値を確認する方法を示します。
apex_plugin_util.debug_dynamic_action (
p_plugin => p_plugin,
p_dynamic_action => p_dynamic_action );
このプロシージャは、デバッグが有効な場合に、ページ・アイテム・メタデータのデータをデバッグ出力に書き込みます。
構文
APEX_PLUGIN_UTIL.DEBUG_PAGE_ITEM (
p_plugin IN apex_plugin.t_plugin,
p_page_item IN apex_plugin.t_page_item);
パラメータ
表22-2では、DEBUG_PAGE_ITEMプロシージャで使用可能なパラメータについて説明します。
表22-2 DEBUG_PAGE_ITEMのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
プラグイン・ファンクションの |
|
p_page_item |
プラグイン・ファンクションの |
例
次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、レンダラ、Ajaxコールバックまたは検証ファンクションに実際に渡された値を確認する方法を示します。
apex_plugin_util.debug_page_item (
p_plugin => p_plugin,
p_page_item => p_page_item );
このプロシージャは、デバッグが有効な場合に、ページ・アイテム・メタデータのデータをデバッグ出力に書き込みます。
構文
APEX_PLUGIN_UTIL.DEBUG_PAGE_ITEM (
p_plugin IN apex_plugin.t_plugin,
p_page_item IN apex_plugin.t_page_item,
p_value IN VARCHAR2,
p_is_readonly IN BOOLEAN,
p_is_printer_friendly IN BOOLEAN);
パラメータ
表22-3では、DEBUG_PAGE_ITEMプロシージャで使用可能なパラメータについて説明します。
表22-3 DEBUG_PAGE_ITEMのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
例
次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、レンダラ、Ajaxコールバックまたは検証ファンクションに実際に渡された値を確認する方法を示します。
apex_plugin_util.debug_page_item (
p_plugin => p_plugin,
p_page_item => p_page_item,
p_value => p_value,
p_is_readonly => p_is_readonly,
p_is_printer_friendly => p_is_printer_friendly);
このプロシージャは、デバッグが有効な場合に、プロセス・メタデータのデータをデバッグ出力に書き込みます。
構文
APEX_PLUGIN_UTIL.DEBUG_PROCESS (
p_plugin IN apex_plugin.t_plugin,
p_process IN apex_plugin.t_process);
パラメータ
表22-4では、DEBUG_PROCESSプロシージャで使用可能なパラメータについて説明します。
表22-4 DEBUG_PROCESSのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
例
次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインの実行ファンクションに実際に渡された値を確認する方法を示します。
apex_plugin_util.debug_process (
p_plugin => p_plugin,
p_process => p_process);
このプロシージャは、デバッグが有効な場合に、リージョン・メタデータのデータをデバッグ出力に書き込みます。
構文
APEX_PLUGIN_UTIL.DEBUG_REGION (
p_plugin IN apex_plugin.t_plugin,
p_region IN apex_plugin.t_region);
パラメータ
表22-5では、DEBUG_REGIONプロシージャで使用可能なパラメータについて説明します。
表22-5 DEBUG_REGIONのシグネチャ1のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
例
次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインのレンダリング・ファンクションまたはAjaxコールバック・ファンクションに実際に渡された値を確認する方法を示します。
apex_plugin_util.debug_region (
p_plugin => p_plugin,
p_region => p_region);
このプロシージャは、デバッグが有効な場合に、リージョン・メタデータのデータをデバッグ出力に書き込みます。これは、リージョン・プラグインのレンダリング・ファンクションに使用する高度なバージョンのデバッグ・プロシージャです。
構文
APEX_PLUGIN_UTIL.DEBUG_REGION (
p_plugin IN apex_plugin.t_plugin,
p_region IN apex_plugin.t_region,
p_is_printer_friendly IN BOOLEAN);
パラメータ
表22-6では、DEBUG_REGIONプロシージャで使用可能なパラメータについて説明します。
表22-6 DEBUG_REGIONのシグネチャ2のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
|
|
プラグイン・ファンクションの |
例
次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインのレンダリング・ファンクションまたはAjaxコールバック・ファンクションに実際に渡された値を確認する方法を示します。
apex_plugin_util.debug_process (
p_plugin => p_plugin,
p_region => p_region,
p_is_printer_friendly => p_is_printer_friendly);
このファンクションは、アイテム・タイプのプラグインの標準属性である「エスケープ出力属性を指定」オプションが選択されていて、出力をエスケープするかどうかを開発者が指定できる場合に使用します。
構文
APEX_PLUGIN_UTIL.ESCAPE (
p_value IN VARCHAR2,
p_escape IN BOOLEAN)
RETURN VARCHAR2;
パラメータ
表22-7では、ESCAPEファンクションで使用可能なパラメータについて説明します。
表22-7 ESCAPEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
|
例
次の例では、配列l_display_value_listのすべての値をHTMLリストとして出力し、プラグインの使用時に開発者が選択した設定に応じて、この配列の値をエスケープします。
for i in 1 .. l_display_value_list.count
loop
sys.htp.prn (
'<li>'||
apex_plugin_util.escape (
p_value => l_display_value_list(i),
p_escape => p_item.escape_output )||
'</li>' );
end loop;
このプロシージャは、PL/SQLコード・ブロックを実行し、提供されたPL/SQLコード内のバインド変数のバインディングを実行します。通常、このプロシージャはタイプが「PL/SQLコード」のプラグイン属性に使用します。
構文
APEX_PLUGIN_UTIL.EXECUTE_PLSQL_CODE (
p_plsql_code IN VARCHAR2);
パラメータ
表22-8では、EXECUTE_PLSQL_CODEプロシージャで使用可能なパラメータについて説明します。
例
エスケープしてから、HTTPバッファに出力する必要があるテキスト。
declare
l_plsql_code VARCHAR(32767) := p_process.attribute_01;
begin
apex_plugin_util.execute_plsql_code (
p_plsql_code => l_plsql_code );
end;
このファンクションは、現行データベース・セッションで有効なNLS小数点セパレータを考慮して、プラグイン属性の値を数値として戻します。このファンクションは、組込みto_numberファンクションのかわりに、プラグインPL/SQLソースでNUMBER型のカスタム属性に使用します。
構文
APEX_PLUGIN_UTIL.GET_ATTRIBUTE_AS_NUMBER (
p_value IN VARCHAR2 ),
p_attribute_label IN VARCHAR2 )
return NUMBER;
パラメータ
表22-9では、GET_ATTRIBUTE_AS_NUMBERファンクションで使用可能なパラメータについて説明します。
表22-9 GET_ATTRIBUTE_AS_NUMBERファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
カスタム・プラグイン属性のラベル。 |
|
|
|
例
declare
l_value number;
begin
-- The following may fail for languages that don't use dot as the NLS decimal separator
l_value := to_number( p_region.attribute_04 );
-- The following will work correctly regardless of the effective NLS decimal separator
l_value := apex_plugin_util.get_attribute_as_number( p_region.attribute_04, 'Minimum Amount' );
end;
/
提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。検索列は、p_search_column_noパラメータに列番号を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。
構文
APEX_PLUGIN_UTIL.GET_DATA (
p_sql_statement IN VARCHAR2,
p_min_columns IN NUMBER,
p_max_columns IN NUMBER,
p_component_name IN VARCHAR2,
p_search_type IN VARCHAR2 DEFAULT 2,
p_search_column_no IN VARCHAR2 DEFAULT 2,
p_search_string IN VARCHAR2 DEFAULT NULL,
p_first_row IN NUMBER DEFAULT NULL,
p_max_rows IN NUMBER DEFAULT NULL)
RETURN t_column_value_list;
パラメータ
表22-10では、GET_DATAファンクションのシグネチャ1で使用可能なパラメータについて説明します。
表22-10 GET_DATAファンクションのシグネチャ1のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
参照に使用されるSQL文。 |
|
|
戻り列の最小数。 |
|
|
戻り列の最大数。 |
|
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
|
c_search_*定数のいずれかである必要があります。c_search_*定数は、 |
|
|
SQL文を制限するために使用する列の数。 |
|
|
問合せを制限するために使用する値。 |
|
|
指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。 |
|
|
可能な戻り行の最大数。 |
戻り値
表22-11では、GET_DATAファンクションのシグネチャ1の戻り値について説明します。
表22-11 GET_DATAファンクションのシグネチャ1の戻り値
| 戻り値 | 説明 |
|---|---|
|
|
列番号で索引付けされた |
例
次の例に、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。
function render_list (
p_item in apex_plugin.t_page_item,
p_value in varchar2,
p_is_readonly in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_column_value_list apex_plugin_util.t_column_value_list;
begin
l_column_value_list :=
apex_plugin_util.get_data (
p_sql_statement => p_item.lov_definition,
p_min_columns => 2,
p_max_columns => 2,
p_component_name => p_item.name,
p_search_type => apex_plugin_util.c_search_contains_case,
p_search_column_no => 1,
p_search_string => p_value );
sys.htp.p('<ul>');
for i in 1 .. l_column_value_list(1).count
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_column_value_list(1)(i))|| -- display column
'-'||
sys.htf.escape_sc(l_column_value_list(2)(i))|| -- return column
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;
提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。検索列は、p_search_column_nameパラメータに列名を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。
構文
APEX_PLUGIN_UTIL.GET_DATA (
p_sql_statement IN VARCHAR2,
p_min_columns IN NUMBER,
p_max_columns IN NUMBER,
p_component_name IN VARCHAR2,
p_search_type IN VARCHAR2 DEFAULT NULL,
p_search_column_name IN VARCHAR2 DEFAULT NULL,
p_search_string IN VARCHAR2 DEFAULT NULL,
p_first_row IN NUMBER DEFAULT NULL,
p_max_rows IN NUMBER DEFAULT NULL)
RETURN t_column_value_list;
パラメータ
表22-12では、GET_DATAファンクションのシグネチャ2で使用可能なパラメータについて説明します。
表22-12 GET_DATAファンクションのシグネチャ2のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
参照に使用されるSQL文。 |
|
|
戻り列の最小数。 |
|
|
戻り列の最大数。 |
|
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
|
c_search_*定数のいずれかである必要があります。c_search_*定数は、 |
|
|
これは、SQL文を制限するために使用する列名です。 |
|
|
問合せを制限するために使用する値。 |
|
|
指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。 |
|
|
可能な戻り行の最大数。 |
戻り値
表22-13では、GET_DATAファンクションのシグネチャ2の戻り値について説明します。
表22-13 GET_TABLEファンクションのシグネチャ2
| パラメータ | 説明 |
|---|---|
|
|
列番号で索引付けされた |
例
次の例に、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。
function render_list (
p_item in apex_plugin.t_page_item,
p_value in varchar2,
p_is_readonly in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_column_value_list apex_plugin_util.t_column_value_list;
begin
l_column_value_list :=
apex_plugin_util.get_data (
p_sql_statement => p_item.lov_definition,
p_min_columns => 2,
p_max_columns => 2,
p_component_name => p_item.name,
p_search_type => apex_plugin_util.c_search_contains_case,
p_search_column_name => 'ENAME',
p_search_string => p_value );
sys.htp.p('<ul>');
for i in 1 .. l_column_value_list(1).count
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_column_value_list(1)(i))|| -- display column
'-'||
sys.htf.escape_sc(l_column_value_list(2)(i))|| -- return column
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;
提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。検索列は、p_search_column_noパラメータに列番号を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。
構文
APEX_PLUGIN_UTIL.GET_DATA2 (
p_sql_statement IN VARCHAR2,
p_min_columns IN NUMBER,
p_max_columns IN NUMBER,
p_data_type_list IN WWV_GLOBAL.VC_ARR2 DEFAULT C_EMPTY_DATA_TYPE_LIST,
p_component_name IN VARCHAR2,
p_search_type IN VARCHAR2 DEFAULT 2,
p_search_column_no IN VARCHAR2 DEFAULT 2,
p_search_string IN VARCHAR2 DEFAULT NULL,
p_first_row IN NUMBER DEFAULT NULL,
p_max_rows IN NUMBER DEFAULT NULL)
RETURN t_column_value_list2;
パラメータ
表22-14では、GET_DATA2ファンクションで使用可能なパラメータについて説明します。
表22-14 GET_DATA2のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
参照に使用されるSQL文。 |
|
|
戻り列の最小数。 |
|
|
戻り列の最大数。 |
|
|
指定する場合は、各列のデータ型が配列内の指定されたデータ型と一致することを確認します。使用可能なデータ型の定数 |
|
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
|
c_search_*定数のいずれかである必要があります。c_search_*定数は、 |
|
|
SQL文を制限するために使用する列の数。 |
|
|
問合せを制限するために使用する値。 |
|
|
指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。 |
|
|
可能な戻り行の最大数。 |
戻り値
表22-15では、GET_DATA2ファンクションの戻り値について説明します。
例
次の例は、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。ここでは、LOV SQL文の最初の列がVARCHAR2型であり、2つ目の列が数値型であることを確認します。
function render_list (
p_item in apex_plugin.t_page_item,
p_value in varchar2,
p_is_readonly in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_data_type_list apex_application_global.vc_arr2;
l_column_value_list apex_plugin_util.t_column_value_list2;
begin
-- The first LOV column has to be a string and the second a number
l_data_type_list(1) := apex_plugin_util.c_data_type_varchar2;
l_data_type_list(2) := apex_plugin_util.c_data_type_number;
--
l_column_value_list :=
apex_plugin_util.get_data2 (
p_sql_statement => p_item.lov_definition,
p_min_columns => 2,
p_max_columns => 2,
p_data_type_list => l_data_type_list,
p_component_name => p_item.name,
p_search_type => apex_plugin_util.c_search_contains_case,
p_search_column_no => 1,
p_search_string => p_value );
--
sys.htp.p('<ul>');
for i in 1 .. l_column_value_list.count(1)
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_column_value_list(1).value_list(i).varchar2_value)|| -- display column
'-'||
sys.htf.escape_sc(l_column_value_list(2).value_list(i).number_value)|| -- return column
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;
提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。検索列は、p_search_column_noパラメータに列番号を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。
構文
APEX_PLUGIN_UTIL.GET_DATA2 (
p_sql_statement IN VARCHAR2,
p_min_columns IN NUMBER,
p_max_columns IN NUMBER,
p_data_type_list IN WWV_GLOBAL.VC_ARR2 DEFAULT C_EMPTY_DATA_TYPE_LIST,
p_component_name IN VARCHAR2,
p_search_type IN VARCHAR2 DEFAULT 2,
p_search_column_name IN VARCHAR2 DEFAULT 2,
p_search_string IN VARCHAR2 DEFAULT NULL,
p_first_row IN NUMBER DEFAULT NULL,
p_max_rows IN NUMBER DEFAULT NULL)
RETURN t_column_value_list2;
パラメータ
表22-16では、GET_DATA2ファンクションのシグネチャ2で使用可能なパラメータについて説明します。
表22-16 GET_DATA2ファンクションのシグネチャ2
| パラメータ | 説明 |
|---|---|
|
|
参照に使用されるSQL文。 |
|
|
戻り列の最小数。 |
|
|
戻り列の最大数。 |
|
|
指定する場合は、各列のデータ型が配列内の指定されたデータ型と一致することを確認します。使用可能なデータ型の定数 |
|
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
|
c_search_*定数のいずれかである必要があります。c_search_*定数は、 |
|
|
SQL文を制限するために使用する列名。 |
|
|
問合せを制限するために使用する値。 |
|
|
指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。 |
|
|
可能な戻り行の最大数。 |
戻り値
表22-17では、GET_DATA2ファンクションのシグネチャ2の戻り値について説明します。
例
次の例は、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。ここでは、LOV SQL文の最初の列がVARCHAR2型であり、2つ目の列が数値型であることを確認します。
function render_list (
p_item in apex_plugin.t_page_item,
p_value in varchar2,
p_is_readonly in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_data_type_list apex_application_global.vc_arr2;
l_column_value_list apex_plugin_util.t_column_value_list2;
begin
-- The first LOV column has to be a string and the second a number
l_data_type_list(1) := apex_plugin_util.c_data_type_varchar2;
l_data_type_list(2) := apex_plugin_util.c_data_type_number;
--
l_column_value_list :=
apex_plugin_util.get_data2 (
p_sql_statement => p_item.lov_definition,
p_min_columns => 2,
p_max_columns => 2,
p_data_type_list => l_data_type_list,
p_component_name => p_item.name,
p_search_type => apex_plugin_util.c_search_contains_case,
p_search_column_name => 'ENAME',
p_search_string => p_value );
--
sys.htp.p('<ul>');
for i in 1 .. l_column_value_list.count(1)
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_column_value_list(1).value_list(i).varchar2_value)|| -- display column
'-'||
sys.htf.escape_sc(l_column_value_list(2).value_list(i).number_value)|| -- return column
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;
このファンクションは、p_search_stringに指定される値の表示参照値を取得します。
構文
APEX_PLUGIN_UTIL.GET_DISPLAY_DATA (
p_sql_statement IN VARCHAR2,
p_min_columns IN NUMBER,
p_max_columns IN NUMBER,
p_component_name IN VARCHAR2,
p_display_column_no IN BINARY_INTEGER DEFAULT 1,
p_search_column_no IN BINARY_INTEGER DEFAULT 2,
p_search_string IN VARCHAR2 DEFAULT NULL,
p_display_extra IN BOOLEAN DEFAULT TRUE)
RETURN VARCHAR2;
パラメータ
表22-18では、GET_DISPLAY_DATAファンクションのシグネチャ1で使用可能なパラメータについて説明します。
表22-18 GET_DISPLAY_DATAのシグネチャ1のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
参照に使用されるSQL文。 |
|
|
戻り列の最小数。 |
|
|
戻り列の最大数。 |
|
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
|
SQL文から戻される列の数。 |
|
|
SQL文を制限するために使用する列の数。 |
|
|
問合せを制限するために使用する値。 |
|
|
|
戻り値
表22-19では、GET_DISPLAY_DATAファンクションのシグネチャ1の戻り値について説明します。
表22-19 GET_DISPLAY_DATAのシグネチャ1の戻り値
| 戻り値 | 説明 |
|---|---|
|
VARCHAR2 |
|
例
次の例では、p_valueで提供された値で参照を実行し、LOV問合せの表示列を戻します。
function render_value (
p_item in apex_plugin.t_page_item,
p_value in varchar2,
p_is_readonly in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
begin
sys.htp.p(sys.htf.escape_sc(
apex_plugin_util.get_display_data (
p_sql_statement => p_item.lov_definition,
p_min_columns => 2,
p_max_columns => 2,
p_component_name => p_item.name,
p_display_column_no => 1,
p_search_column_no => 2,
p_search_string => p_value )));
end render_value;
このファンクションは、1つの値参照ではなく、p_search_value_listで提供されるすべての値を参照します。
構文
APEX_PLUGIN_UTIL.GET_DISPLAY_DATA (
p_sql_statement IN VARCHAR2,
p_min_columns IN NUMBER,
p_max_columns IN NUMBER,
p_component_name IN VARCHAR2,
p_display_column_no IN BINARY_INTEGER DEFAULT 1,
p_search_column_no IN BINARY_INTEGER DEFAULT 2,
p_search_value_list IN ww_flow_global.vc_arr2,
p_display_extra IN BOOLEAN DEFAULT TRUE)
RETURN apex_application_global.vc_arr2;
パラメータ
表22-20では、GET_DISPLAY_DATAファンクションのシグネチャ2で使用可能なパラメータについて説明します。
表22-20 GET_DISPLAY_DATAのシグネチャ2のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
参照に使用されるSQL文。 |
|
|
戻り列の最小数。 |
|
|
戻り列の最大数。 |
|
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
|
SQL文から戻される列の数。 |
|
|
SQL文を制限するために使用する列の数。 |
|
|
参照する値の配列。 |
|
|
|
戻り値
表22-21では、GET_DISPLAY_DATAファンクションのシグネチャ2の戻り値について説明します。
表22-21 GET_DISPLAY_DATAのシグネチャ2の戻り値
| 戻り値 | 説明 |
|---|---|
|
|
pls_integerで索引付けされるVARCHAR2のリスト。 |
例
値7863、7911および7988を参照し、LOV問合せの対応する表示列の値で、HTMLリストを生成します。
function render_list (
p_plugin in apex_plugin.t_plugin,
p_item in apex_plugin.t_page_item,
p_value in varchar2,
p_is_readonly in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_search_list apex_application_global.vc_arr2;
l_result_list apex_application_global.vc_arr2;
begin
l_search_list(1) := '7863';
l_search_list(2) := '7911';
l_search_list(3) := '7988';
--
l_result_list :=
apex_plugin_util.get_display_data (
p_sql_statement => p_item.lov_definition,
p_min_columns => 2,
p_max_columns => 2,
p_component_name => p_item.name,
p_search_column_no => 1,
p_search_value_list => l_search_list );
--
sys.htp.p('<ul>');
for i in 1 .. l_result_list.count
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_result_list(i))||
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;
このファンクションは、一貫性のある属性セットを取得するためにHTMLのinput、select、textareaなどのタグを生成する場合に使用される、いくつかのHTML要素の標準属性(id、name、required、placeholder、aria-error-attributes、classなど)を戻します。
構文
APEX_PLUGIN_UTIL.GET_ELEMENT_ATTRIBUTES (
p_item in apex_plugin.t_page_item,
p_name in varchar2 default null,
p_default_class in varchar2 default null,
p_add_id in boolean default true,
p_add_labelledby in boolean default true )
return varchar2;
パラメータ
表22-22では、GET_ELEMENT_ATTRIBUTESファンクションで使用可能なパラメータについて説明します。
表22-22 GET_ELEMENT_ATTRIBUTESファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
一貫性のある属性セットを取得するためにHTMLのinput、select、textareaなどのタグを生成する場合に使用される、HTML要素(ID、name、required、placeholder、aria-error-attributes、classなど)の一般属性をいくつか戻します。aria-labelledby属性の指定を必要としないHTMLの入力要素(input、select、textareaなど)をレンダリングする場合は、ラベルの 注意: aria-labelledbyの挿入は、「標準のフォーム要素」が「いいえ」に設定され、 |
|
|
これは、プラグイン・ファンクションのp_itemパラメータです。 |
|
|
これは、apex_plugin.get_input_name_or_page_itemによって戻される値です。 |
|
|
結果文字列に含む必要があるデフォルトのCSSクラス。 |
|
|
TRUEを設定すると、結果文字列にID属性も含まれます。 |
例
この例では、最も一般的な属性が自動的に含まれるように、apex_plugin_util.get_element_attributesを使用するテキスト・タイプのINPUTタグを生成します。
sys.htp.prn (
'<input type="text" ' ||
apex_plugin_util.get_element_attributes(p_item, l_name, 'text_field') ||
'value="'||l_escaped_value||'" '||
'size="'||p_item.element_width||'" '||
'maxlength="'||p_item.element_max_length||'" '||
' />');
このファンクションは、PL/SQL式を実行して結果を戻します。このファンクションは、提供されたPL/SQL式の任意のバインド変数のバインディングも実行します。通常、このファンクションはタイプがPL/SQL式であるプラグイン属性に使用されます。
構文
APEX_PLUGIN_UTIL.GET_PLSQL_EXPRESSION_RESULT (
p_plsql_expression IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表22-23では、GET_PLSQL_EXPRESSION_RESULTファンクションで使用可能なパラメータについて説明します。
戻り値
表22-24では、GET_PLSQL_EXPRESSION_RESULTファンクションの戻り値について説明します。
例
次の例では、タイプが「PL/SQL式」であるアイテム・タイプ・プラグインの属性のattribute_03で指定されるPL/SQL式を実行し、結果を戻します。
l_result := apex_plugin_util.get_plsql_expression_result (
p_plsql_expression => p_item.attribute_03 );
このファンクションは、PL/SQLファンクション・ブロックを実行して結果を戻します。このファンクションは、提供されたPL/SQLファンクション本体のバインド変数のバインディングも実行します。通常、このファンクションはタイプが「PL/SQLファンクション本体」のプラグイン属性に使用されます。
構文
APEX_PLUGIN_UTIL.GET_PLSQL_FUNCTION_RESULT (
p_plsql_function IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表22-25では、GET_PLSQL_FUNCTION_RESULTファンクションで使用可能なパラメータについて説明します。
戻り値
表22-26では、GET_PLSQL_FUNCTION_RESULTファンクションの戻り値について説明します。
例
次の例では、タイプがPL/SQLファンクション本体であるアイテム・タイプ・プラグインの属性のattribute_03で指定されるPL/SQLファンクション本体を実行し、結果を戻します。
l_result := apex_plugin_util.get_plsql_function_result (
p_plsql_function => p_item.attribute_03 );
このファンクションは、p_valueが格納されるリスト内の位置を戻します。見つからない場合は、nullが戻されます。
構文
APEX_PLUGIN_UTIL.GET_POSITION_IN_LIST(
p_list IN apex_application_global.vc_arr2,
p_value IN VARCHAR2)
RETURN NUMBER;
パラメータ
表22-27では、GET_POSITION_IN_LISTファンクションで使用可能なパラメータについて説明します。
表22-27 GET_POSITION_IN_LISTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
VARCHAR2型のエントリを含む |
|
|
|
戻り値
表22-28では、GET_POISTION_IN_LISTファンクションの戻り値について説明します。
例
次の例では、提供されたリスト内でNew Yorkを検索し、l_positionに2を戻します。
declare
l_list apex_application_global.vc_arr2;
l_position number;
begin
l_list(1) := 'Rome';
l_list(2) := 'New York';
l_list(3) := 'Vienna';
l_position := apex_plugin_util.get_position_in_list (
p_list => l_list,
p_value => 'New York' );
end;
p_search_type内の提供された値に基づいて、p_search_stringに渡された値が変更されずに戻されるか、大文字に変換されます。このファンクションは、get_dataおよびget_data2のp_search_stringパラメータとともに使用します。
構文
APEX_PLUGIN_UTIL.GET_SEARCH_STRING(
p_search_type IN VARCHAR2,
p_search_string IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表22-29では、GET_SEARCH_STRINGファンクションで使用可能なパラメータについて説明します。
表22-29 GET_SEARCH_STRINGのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
|
戻り値
表22-30では、GET_SEARCH_STRINGファンクションの戻り値について説明します。
表22-30 GET_SEARCH_STRINGの戻り値
| 戻り値 | 説明 |
|---|---|
|
|
|
例
次の例では、get_dataまたはget_data2へのコールを使用して、検索文字列の大文字と小文字が正しいことを確認します。
l_column_value_list :=
apex_plugin_util.get_data (
p_sql_statement => p_item.lov_definition,
p_min_columns => 2,
p_max_columns => 2,
p_component_name => p_item.name,
p_search_type => apex_plugin_util.c_search_contains_ignore,
p_search_column_no => 1,
p_search_string => apex_plugin_util.get_search_string (
p_search_type => apex_plugin_util.c_search_contains_ignore,
p_search_string => p_value ) );
このファンクションは、両方の値が等しい場合にTRUEを戻し、等しくない場合にFALSEを戻します。両方の値がNULLの場合は、TRUEが戻されます。
構文
APEX_PLUGIN_UTIL.IS_EQUAL (
p_value1 IN VARCHAR2
p_value2 IN VARCHAR2)
RETURN BOOLEAN;
パラメータ
表22-31では、IS_EQUALファンクションで使用可能なパラメータについて説明します。
戻り値
表22-32では、IS_EQUALファンクションの戻り値について説明します。
例
次の例では、データベースの値が入力内容と異なる場合に、if文のコードが実行されます。
if NOT apex_plugin_util.is_equal(l_database_value, l_current_value) then
-- value has changed, do something
null;
end if;
このファンクションは、ページ・アイテム名のカンマ区切り文字列に基づいて、jQueryセレクタを戻します。たとえば、JavaScriptコードが指定されたページ・アイテムの値を読み取る必要がある「送信するページ・アイテム」というプラグイン属性に対して、このファンクションを使用できます。
構文
APEX_PLUGIN_UTIL.PAGE_ITEM_NAMES_TO_JQUERY (
p_page_item_names IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表22-33では、PAGE_ITEM_NAMES_TO_JQUERYファンクションで使用可能なパラメータについて説明します。
戻り値
表22-32では、PAGE_ITEM_NAMES_TO_JQUERYファンクションからの戻り値について説明します。
表22-34 PAGE_ITEM_NAMES_TO_JQUERYの戻り値
| 戻り値 | 説明 |
|---|---|
|
|
|
例
次の例は、myOwnWidget.というJavaScriptファンクションの初期化コールを作成するコードを示しています。このファンクションは、いくつかの属性を持つオブジェクトを取得しますが、この属性のうちの1つは、jQueryセレクタとなるpageItemsToSubmitです。
apex_javascript.add_onload_code (
p_code => 'myOwnWidget('||
'"#'||p_item.name||'",'||
'{'||
apex_javascript.add_attribute('ajaxIdentifier', apex_plugin.get_ajax_identifier)||
apex_javascript.add_attribute('dependingOnSelector', apex_plugin_util.page_item_names_to_jquery(p_item.lov_cascade_parent_items))||
apex_javascript.add_attribute('optimizeRefresh', p_item.ajax_optimize_refresh)||
apex_javascript.add_attribute('pageItemsToSubmit', apex_plugin_util.page_item_names_to_jquery(p_item.ajax_items_to_submit))||
apex_javascript.add_attribute('nullValue', p_item.lov_null_value, false, false)||
'});' );
このプロシージャは、表示のみのフィールド用のSPANタグを出力します。
構文
APEX_PLUGIN_UTIL.PRINT_DISPLAY_ONLY (
p_item_name IN VARCHAR2,
p_display_value IN VARCHAR2,
p_show_line_breaks IN BOOLEAN,
p_attributes IN VARCHAR2,
p_id_postfix IN VARCHAR2 DEFAULT '_DISPLAY');
パラメータ
表22-35では、PRINT_DISPLAY_ONLYプロシージャで使用可能なパラメータについて説明します。
表22-35 PRINT_DISPLAY_ONLYのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ページ・アイテムの名前。このパラメータは、 |
|
|
表示されるテキスト。 |
|
|
TRUEを設定すると、 |
|
|
SPANタグに追加されるその他の属性。 |
|
|
SPANタグのIDを取得するために |
例
次のコードは、アイテム・タイプ・プラグインで表示のみのページ・アイテムをレンダリングする場合に使用できます。
apex_plugin_util.print_display_only (
p_item_name => p_item.name,
p_display_value => p_value,
p_show_line_breaks => false,
p_escape => true,
p_attributes => p_item.element_attributes );
このプロシージャは、値をエスケープされた形式で、文字数の多い場合は文字列をより小さいチャンクに分割して出力します。
構文
APEX_PLUGIN_UTIL.PRINT_ESCAPED_VALUE (
p_value IN VARCHAR2);
パラメータ
表22-36では、PRINT_ESCAPED_VALUEプロシージャで使用可能なパラメータについて説明します。
例
ページ・アイテムの現在の値で、非表示フィールドを出力します。
sys.htp.prn('<input type="hidden" name="'||l_name||'" id="'||p_item_name||'" value="');
print_escaped_value(p_value);
sys.htp.prn('">');
ページ・アイテムが読取り専用としてレンダリングされ、プリンタ用ではない場合、このプロシージャはページ・アイテム値を格納する非表示フィールドを出力します。このプロシージャがアイテム・タイプ・プラグインでコールされる場合、プラグイン・インタフェースのパラメータは直接渡される必要があります。
構文
APEX_PLUGIN_UTIL.PRINT_HIDDEN_IF_READ_ONLY (
p_item_name IN VARCHAR2,
p_value IN VARCHAR2,
p_is_readonly IN BOOLEAN,
p_is_printer_friendly IN BOOLEAN,
p_id_postfix IN VARCHAR2 DEFAULT NULL);
パラメータ
表22-37では、PRINT_HIDDEN_IF_READONLYプロシージャで使用可能なパラメータについて説明します。
表22-37 PRINT_HIDDEN_IF_READONLYのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ページ・アイテムの名前。このパラメータに対して |
|
|
ページ・アイテムの現在の値。このパラメータに対して |
|
|
読取り専用でレンダリングされるアイテムかどうか。このパラメータに対して |
|
|
プリンタ用でレンダリングされるアイテムかどうか。このパラメータに対して |
|
|
非表示フィールドのID属性の生成に使用されます。 |
例
p_is_readonlyがTRUEで、p_printer_friendlyがFALSEの場合、現在の値が含まれる非表示フィールドをHTTP出力に書き込みます。
apex_plugin_util.print_hidden_if_readonly (
p_item_name => p_item.name,
p_value => p_value,
p_is_readonly => p_is_readonly,
p_is_printer_friendly => p_is_printer_friendly );
このプロシージャは、JSON出力の標準HTTPヘッダーを出力します。
構文
APEX_PLUGIN_UTIL.PRINT_JSON_HTTP_HEADER;
パラメータ
なし。
例
次の例に、プラグインのAjaxコールバック・ファンクションでこのプロシージャを使用する方法を示します。このコードは、JSONの構造を[{"d":"Display 1","r":"Return 1"},{"d":"Display 2","r":"Return 2"}]という形式で出力します。
-- Write header for the JSON stream.
apex_plugin_util.print_json_http_header;
-- initialize the JSON structure
sys.htp.p('[');
-- loop through the value array
for i in 1 .. l_values.count
loop
-- add array entry
sys.htp.p (
case when i > 1 then ',' end||
'{'||
apex_javascript.add_attribute('d', sys.htf.escape_sc(l_values(i).display_value), false, true)||
apex_javascript.add_attribute('r', sys.htf.escape_sc(l_values(i).return_value), false, false)||
'}' );
end loop;
-- close the JSON structure
sys.htp.p(']');
このプロシージャは、2つの列のLOVの結果に基づいて、JSONレスポンスを次の形式で出力します。
[{"d:"display","r":"return"},{"d":....,"r":....},....]
|
注意: HTTPヘッダーも、MIMEタイプの「application/json」で初期化されます。 |
構文
APEX_PLUGIN_UTIL.PRINT_LOV_AS_JSON (
p_sql_statement IN VARCHAR2,
p_component_name IN VARCHAR2,
p_escape IN BOOLEAN,
p_replace_substitutions IN BOOLEAN DEFAULT FALSE);
パラメータ
表22-38では、PRINT_LOV_AS_JSONプロシージャで使用可能なパラメータについて説明します。
表22-38 PRINT_LOV_AS_JSONのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
SELECTから2つの列を戻すSQL文。 |
|
|
エラーが表示される場合に使用されるページ・アイテムまたはレポート列の名前。 |
|
|
|
|
|
TRUEに設定すると、表示列の値として |
例
次の例に、アイテム・タイプ・プラグインのAjaxコールバック・ファンクションでプロシージャを使用する方法を示します。次のコールはLOVの結果をJSON配列としてHTTP出力に書き込みます。
apex_plugin_util.print_lov_as_json (
p_sql_statement => p_item.lov_definition,
p_component_name => p_item.name,
p_escape => true );
このプロシージャは、OPTIONタグを出力します。
構文
APEX_PLUGIN_UTIL.PRINT_OPTION (
p_display_value IN VARCHAR2,
p_return_value IN VARCHAR2,
p_is_selected IN BOOLEAN,
p_attributes IN VARCHAR2,
p_escape IN BOOLEAN DEFAULT TRUE);
パラメータ
表22-39では、PRINT_OPTIONプロシージャで使用可能なパラメータについて説明します。
表22-39 PRINT_OPTIONのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
オプションで表示されるテキスト。 |
|
|
オプションが選択されると設定される値。 |
|
|
選択した属性をこのオプションに対して設定する必要がある場合は、TRUEを設定します。 |
|
|
OPTIONタグに設定する必要がある追加のHTML属性。 |
|
|
|
例
次の例は、アイテム・タイプのプラグインで選択リストを作成するために使用されています。apex_plugin_util.is_equalを使用して、現行のものとしてマークする必要があるリスト・エントリを検索します。
sys.htp.p('<select id="'||p_item.name||'" size="'||nvl(p_item.element_height, 5)||'" '||coalesce(p_item.element_attributes, 'class="new_select_list"')||'>');
-- loop through the result and add list entries
for i in 1 .. l_values.count
loop
apex_plugin_util.print_option (
p_display_value => l_values(i).display_value,
p_return_value => l_values(i).return_value,
p_is_selected => apex_plugin_util.is_equal(l_values(i).return_value, p_value),
p_attributes => p_item.element_option_attributes,
p_escape => true );
end loop;
sys.htp.p('</select>');
次のファンクションは、&ITEM.置換参照を実際の値と置換します。p_escapeをTRUEに設定すると、参照されたアイテムの値に含まれるすべての特殊文字がエスケープされるため、クロスサイト・スクリプティング(XSS)攻撃を防ぐことができます。
構文
apex_plugin_util.replace_substitutions (
p_value in varchar2,
p_escape in boolean default true )
return varchar2;
パラメータ
表22-40に、REPLACE_SUBSTITUTIONファンクションで使用可能なパラメータを示します。
表22-40 REPLACE_SUBSTITUTIONのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
この値は、実際のページ・アイテムの値によって置換される |
|
|
|
例
次の例では、リージョン・プラグインattribute 05内の置換構文の参照を、実際の値と置換します。値の中の特殊文字はすべてエスケープされます。
l_advanced_formatting := apex_plugin_util.replace_substitutions (
p_value => p_region.attribute_05,
p_escape => true );