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);
パラメータ
表19-2では、DEBUG_DYNAMIC_ACTION
プロシージャで使用可能なパラメータについて説明します。
表19-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);
パラメータ
表19-2では、DEBUG_PAGE_ITEM
プロシージャで使用可能なパラメータについて説明します。
表19-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);
パラメータ
表19-3では、DEBUG_PAGE_ITEM
プロシージャで使用可能なパラメータについて説明します。
表19-3 DEBUG_PAGE_ITEMのパラメータ
パラメータ | 説明 |
---|---|
|
プラグイン・ファンクションの |
p_page_item |
プラグイン・ファンクションの |
p_value |
プラグイン・ファンクションの |
p_is_readonly |
プラグイン・ファンクションの |
p_is_printer_friendly |
プラグイン・ファンクションの |
例
次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、レンダラ、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);
パラメータ
表19-4では、DEBUG_PROCESS
プロシージャで使用可能なパラメータについて説明します。
表19-4 DEBUG_PROCESSのパラメータ
パラメータ | 説明 |
---|---|
|
プラグイン・ファンクションの |
p_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);
パラメータ
表19-5では、DEBUG_REGION
プロシージャで使用可能なパラメータについて説明します。
表19-5 DEBUG_REGIONのシグネチャ1のパラメータ
パラメータ | 説明 |
---|---|
|
プラグイン・ファンクションの |
|
プラグイン・ファンクションの |
例
次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインのレンダリング・ファンクションまたはAJAXコールバック・ファンクションに実際に渡された値を確認する方法を示します。
apex_plugin_util.debug_process ( 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);
パラメータ
表19-6では、DEBUG_REGION
プロシージャで使用可能なパラメータについて説明します。
表19-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;
パラメータ
表19-7では、ESCAPEファンクションで使用可能なパラメータについて説明します。
表19-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);
パラメータ
表19-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;
提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。このファンクション・コールの前に、prepare_query
をコールする必要があります。
構文
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;
パラメータ
表19-9では、GET_DATA
ファンクションのシグネチャ1で使用可能なパラメータについて説明します。
表19-9 GET_DATAファンクションのシグネチャ1のパラメータ
パラメータ | 説明 |
---|---|
|
参照に使用されるSQL文。 |
|
戻り列の最小数。 |
|
戻り列の最大数。 |
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
c_search_*定数のいずれかである必要があります。c_search_*定数は、 |
|
SQL文を制限するために使用する列の数。 |
|
問合せを制限するために使用する値。 |
|
指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。 |
|
可能な戻り行の最大数。 |
戻り値
表19-10では、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問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。このファンクション・コールの前に、prepare_query
をコールする必要があります。
構文
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;
パラメータ
表19-11では、GET_DATAファンクションのシグネチャ2で使用可能なパラメータについて説明します。
表19-11 GET_DATAファンクションのシグネチャ2のパラメータ
パラメータ | 説明 |
---|---|
|
参照に使用されるSQL文。 |
|
戻り列の最小数。 |
|
戻り列の最大数。 |
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
c_search_*定数のいずれかである必要があります。c_search_*定数は、 |
|
これは、SQL文を制限するために使用する列の名前です。 |
|
問合せを制限するために使用する値。 |
|
指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。 |
|
可能な戻り行の最大数。 |
戻り値
表19-12では、GET_DATA
ファンクションのシグネチャ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問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。
構文
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;
パラメータ
表19-13では、GET_DATA2
ファンクションで使用可能なパラメータについて説明します。
表19-13 GET_DATA2のパラメータ
パラメータ | 説明 |
---|---|
|
参照に使用されるSQL文。 |
|
戻り列の最小数。 |
|
戻り列の最大数。 |
|
指定する場合は、各列のデータ型が配列内の指定されたデータ型と一致することを確認します。使用可能なデータ型の定数 |
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
c_search_*定数のいずれかである必要があります。c_search_*定数は、 |
|
SQL文を制限するために使用する列の数。 |
|
問合せを制限するために使用する値。 |
|
指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。 |
|
可能な戻り行の最大数。 |
戻り値
表19-14では、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 wwv_flow_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問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。
構文
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;
パラメータ
表19-15では、GET_DATA2
ファンクションのシグネチャ2で使用可能なパラメータについて説明します。
表19-15 GET_DATA2ファンクションのシグネチャ2
パラメータ | 説明 |
---|---|
|
参照に使用されるSQL文。 |
|
戻り列の最小数。 |
|
戻り列の最大数。 |
|
指定する場合は、各列のデータ型が配列内の指定されたデータ型と一致することを確認します。使用可能なデータ型の定数 |
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
c_search_*定数のいずれかである必要があります。c_search_*定数は、 |
|
SQL文を制限するために使用する列の名前。 |
|
問合せを制限するために使用する値。 |
|
指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。 |
|
可能な戻り行の最大数。 |
戻り値
表19-16では、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 wwv_flow_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;
パラメータ
表19-17では、GET_DISPLAY_DATA
ファンクションのシグネチャ1で使用可能なパラメータについて説明します。
表19-17 GET_DISPLAY_DATAのシグネチャ1のパラメータ
パラメータ | 説明 |
---|---|
|
参照に使用されるSQL文。 |
|
戻り列の最小数。 |
|
戻り列の最大数。 |
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
SQL文から戻される列の数。 |
|
SQL文を制限するために使用する列の数。 |
|
問合せを制限するために使用する値。 |
|
|
戻り値
表19-18では、GET_DISPLAY_DATA
ファンクションのシグネチャ1の戻り値について説明します。
表19-18 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 wwv_flow_global.vc_arr2;
パラメータ
表19-19では、GET_DISPLAY_DATA
ファンクションのシグネチャ2で使用可能なパラメータについて説明します。
表19-19 GET_DISPLAY_DATAのシグネチャ2のパラメータ
パラメータ | 説明 |
---|---|
|
参照に使用されるSQL文。 |
|
戻り列の最小数。 |
|
戻り列の最大数。 |
|
エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。 |
|
SQL文から戻される列の数。 |
|
SQL文を制限するために使用する列の数。 |
|
参照する値の配列。 |
|
|
戻り値
表19-20では、GET_DISPLAY_DATA
ファンクションのシグネチャ2の戻り値について説明します。
表19-20 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 wwv_flow_global.vc_arr2; l_result_list wwv_flow_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、名前、必須、プレースホルダ、領域エラー属性、クラスなど)の標準属性の一部を返します。
構文
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 ) return varchar2;
パラメータ
表19-21では、GET_ELEMENT_ATTRIBUTES
ファンクションで使用可能なパラメータについて説明します。
表19-21 GET_ELEMENT_ATTRIBUTESファンクションのパラメータ
パラメータ | 説明 |
---|---|
p_item |
これは、プラグイン・ファンクションのp_itemパラメータです。 |
p_name |
これは、apex_plugin.get_input_name_or_page_itemで返される値です。 |
p_default_class |
結果文字列に含まれている必要のあるデフォルトのCSSクラス。 |
p_add_id |
TRUEを設定すると、結果文字列にはID属性も含まれます。 |
例
次の例には、最も一般的な属性を自動的に含むために、apex_plugin_util
.get_element_attributes
を使用するテキスト型の入力タグが表示されています。
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;
パラメータ
表19-22では、GET_PLSQL_EXPRESSION_RESULT
ファンクションで使用可能なパラメータについて説明します。
戻り値
表19-23では、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;
パラメータ
表19-24では、GET_PLSQL_FUNCTION_RESULT
ファンクションで使用可能なパラメータについて説明します。
戻り値
表19-25では、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 wwv_flow_global.vc_arr2, p_value IN VARCHAR2) RETURN NUMBER;
パラメータ
表19-26では、GET_POSITION_IN_LIST
ファンクションで使用可能なパラメータについて説明します。
表19-26 GET_POSITION_IN_LISTのパラメータ
パラメータ | 説明 |
---|---|
|
VARCHAR2型のエントリを含む |
|
|
戻り値
表19-27では、GET_POISTION_IN_LISTファンクションの戻り値について説明します。
例
次の例では、提供されたリスト内で「New York」を検索し、l_position
に2
を戻します。
declare l_list wwv_flow_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;
パラメータ
表19-28では、GET_SEARCH_STRING
ファンクションで使用可能なパラメータについて説明します。
表19-28 GET_SEARCH_STRINGのパラメータ
パラメータ | 説明 |
---|---|
|
|
p_search_string |
|
戻り値
表19-29では、GET_SEARCH_STRING
ファンクションの戻り値について説明します。
表19-29 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;
パラメータ
表19-30では、IS_EQUAL
ファンクションで使用可能なパラメータについて説明します。
戻り値
表19-31では、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;
パラメータ
表19-32では、PAGE_ITEM_NAMES_TO_JQUERYファンクションで使用可能なパラメータについて説明します。
戻り値
表19-31では、PAGE_ITEM_NAMES_TO_JQUERYファンクションからの戻り値について説明します。
表19-33 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');
パラメータ
表19-34では、PRINT_DISPLAY_ONLYプロシージャで使用可能なパラメータについて説明します。
表19-34 PRINT_DISPLAY_ONLYのパラメータ
パラメータ | 説明 |
---|---|
|
ページ・アイテムの名前。このパラメータは、 |
p_display_value |
表示されるテキスト。 |
p_show_line_breaks |
TRUEを設定すると、 |
p_attributes |
SPANタグに追加されるその他の属性。 |
p_id_postfix |
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);
パラメータ
表19-35では、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);
パラメータ
表19-36では、PRINT_HIDDEN_IF_READONLYプロシージャで使用可能なパラメータについて説明します。
表19-36 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);
パラメータ
表19-37では、PRINT_LOV_AS_JSONプロシージャで使用可能なパラメータについて説明します。
表19-37 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);
パラメータ
表19-38では、PRINT_OPTIONプロシージャで使用可能なパラメータについて説明します。
表19-38 PRINT_OPTIONのパラメータ
パラメータ | 説明 |
---|---|
|
オプションで表示されるテキスト。 |
|
オプションが選択されると設定される値。 |
|
選択した属性をこのオプションに対して設定する必要がある場合は、TRUEを設定します。 |
p_attributes |
OPTIONタグに設定する必要がある追加のHTML属性。 |
p_escape |
|
例
次の例は、アイテム・タイプ・プラグインでSELECTのリストを作成する場合に使用できます。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;
パラメータ
表19-39に、REPLACE_SUBSTITUTIONファンクションで使用可能なパラメータを示します。
表19-39 REPLACE_SUBSTITUTIONのパラメータ
パラメータ | 説明 |
---|---|
|
この値は、実際のページ・アイテムの値によって置換される |
|
|
例
次の例では、リージョン・プラグインattribute 05
内の置換構文の参照を、実際の値と置換します。値に含まれる特殊文字はすべてエスケープされます。
l_advanced_formatting := apex_plugin_util.replace_substitutions ( p_value => p_region.attribute_05, p_escape => true );