FormでのBlockの再クエリ
5236 ワード
Formの一部のボタンはPackageを呼び出してテーブルの一部のフィールドを更新する可能性がありますが、データベースのフィールドの変更はformのインタフェースにすぐに反映されませんので、再クエリーを行いますが、ユーザーはクエリーウィンドウを使用してクエリーを行った後、ボタンを押す操作をクリックして、簡単にexecute_を使用するとqueryがクエリーを行うと、元のクエリー条件が消去されます.クエリーのために共通のパッケージが書かれています.
--再execute_queryのデータブロックは次のとおりです.
プログラムはまず、現在のblock、record、およびItemを保存し、実行後もカーソルがジャンプせずに元の位置にとどまるようにします.現在のBlockとパラメータが入ってくるP_Blockが一致し、一致しなければgoからP_Blockで、BlockのLast_を取得します.Queryは、Order Byを持つクエリがある可能性があるので、Order Byがあるかどうかを判断して切り取りの最終位置を決定する必要があります.where条件を取得したらset_を使用block_property(p_block_name,default_where,l_where_clause)およびexecute_queryはblockをクエリーします.その前に元のdefault whereを保存し、クエリーの後にdefault_を保存する必要があります.whereはデフォルトに設定されています.最後にカーソルを元の位置に合わせます.
呼び出すときにBlock Nameを入力すると、Blockのクエリー条件を切り取ってBlockをクエリーできます.
プログラムはまず、現在のblock、record、およびItemを保存し、実行後もカーソルがジャンプせずに元の位置にとどまるようにします.現在のBlockとパラメータが入ってくるP_Blockが一致し、一致しなければgoからP_Blockで、BlockのLast_を取得します.Queryは、Order Byを持つクエリがある可能性があるので、Order Byがあるかどうかを判断して切り取りの最終位置を決定する必要があります.where条件を取得したらset_を使用block_property(p_block_name,default_where,l_where_clause)およびexecute_queryはblockをクエリーします.その前に元のdefault whereを保存し、クエリーの後にdefault_を保存する必要があります.whereはデフォルトに設定されています.最後にカーソルを元の位置に合わせます.
呼び出すときにBlock Nameを入力すると、Blockのクエリー条件を切り取ってBlockをクエリーできます.
プログラムはまず、現在のblock、record、およびItemを保存し、実行後もカーソルがジャンプせずに元の位置にとどまるようにします.現在のBlockとパラメータが入ってくるP_Blockが一致し、一致しなければgoからP_Blockで、BlockのLast_を取得します.Queryは、Order Byを持つクエリがある可能性があるので、Order Byがあるかどうかを判断して切り取りの最終位置を決定する必要があります.where条件を取得したらset_を使用block_property(p_block_name,default_where,l_where_clause)およびexecute_queryはblockをクエリーします.その前に元のdefault whereを保存し、クエリーの後にdefault_を保存する必要があります.whereはデフォルトに設定されています.最後にカーソルを元の位置に合わせます.
呼び出すときにBlock Nameを入力すると、Blockのクエリー条件を切り取ってBlockをクエリーできます.
プログラムはまず、現在のblock、record、およびItemを保存し、実行後もカーソルがジャンプせずに元の位置にとどまるようにします.現在のBlockとパラメータが入ってくるP_Blockが一致し、一致しなければgoからP_Blockで、BlockのLast_を取得します.Queryは、Order Byを持つクエリがある可能性があるので、Order Byがあるかどうかを判断して切り取りの最終位置を決定する必要があります.where条件を取得したらset_を使用block_property(p_block_name,default_where,l_where_clause)およびexecute_queryはblockをクエリーします.その前に元のdefault whereを保存し、クエリーの後にdefault_を保存する必要があります.whereはデフォルトに設定されています.最後にカーソルを元の位置に合わせます.
呼び出すときにBlock Nameを入力すると、Blockのクエリー条件を切り取ってBlockをクエリーできます.
--再execute_queryのデータブロックは次のとおりです.
PROCEDURE query_block(p_block_name varchar2) is
l_cursor_block varchar2(50);
l_cursor_record NUMBER;
l_cursor_item VARCHAR2(50);
l_trigger_record NUMBER;
l_default_where VARCHAR2(1000);
l_last_query VARCHAR2(2000);
l_where_anchor NUMBER;
l_order_anchor NUMBER;
l_where_clause VARCHAR2(1000);
l_message_level NUMBER;
BEGIN
l_cursor_item := name_in('SYSTEM.CURSOR_ITEM');
l_cursor_record := name_in('SYSTEM.CURSOR_RECORD');
l_cursor_block := name_in('SYSTEM.CURSOR_BLOCK');
l_trigger_record := l_cursor_record;
l_message_level := :system.message_level;
-- 。 go_block
IF l_cursor_block <> p_block_name THEN
--
l_trigger_record := get_block_property(p_block_name, CURRENT_RECORD);
go_block(p_block_name);
IF name_in('SYSTEM.CURSOR_BLOCK') <> p_block_name THEN
fnd_message.debug('DEVELOPER ERROR :To
SELECT records ' ||
'in another block,
you must be able to navigate');
RAISE FORM_TRIGGER_FAILURE;
END IF; --IF name_in('SYSTEM.CURSOR_BLOCK') <> p_block_name THEN
END IF;--IF l_cursor_block <> p_block_name THEN
l_default_where := get_block_property(p_block_name, DEFAULT_WHERE);--
l_last_query := get_block_property(p_block_name, LAST_QUERY);--
-- Order By
IF instr(upper(l_last_query), 'ORDER BY') = 0 THEN
l_order_anchor := length(l_last_query);
ELSE
l_order_anchor := instr(upper(l_last_query), 'ORDER BY')-1;
END IF; --IF instr(upper(l_last_query), 'ORDER BY') = 0 THEN
IF instr(upper(l_last_query), 'WHERE') = 0 THEN
l_where_anchor := l_order_anchor - 5;
ELSE
l_where_anchor := instr(upper(l_last_query), 'WHERE') + 1;
END IF; --IF instr(upper(l_last_query), 'WHERE') = 0 THEN
--
l_where_clause := substr(l_last_query,
l_where_anchor + 6,
l_order_anchor - l_where_anchor - 5);
--
set_block_property(p_block_name, default_where, l_where_clause);
--
:system.message_level := 25;
--
execute_query;
:system.message_level := l_message_level;
set_block_property(p_block_name, default_where, l_default_where);
go_block(p_block_name);
go_record(l_trigger_record);
fnd_message.debug('p_block_name'||p_block_name);
fnd_message.debug('l_trigger_record'||l_trigger_record);
fnd_message.debug('l_cursor_block'||l_cursor_block);
fnd_message.debug('l_cursor_record'||l_cursor_record);
fnd_message.debug('l_cursor_item'||l_cursor_item);
go_block(l_cursor_block);
go_record(l_cursor_record);
go_item(l_cursor_item);
END query_block;
プログラムはまず、現在のblock、record、およびItemを保存し、実行後もカーソルがジャンプせずに元の位置にとどまるようにします.現在のBlockとパラメータが入ってくるP_Blockが一致し、一致しなければgoからP_Blockで、BlockのLast_を取得します.Queryは、Order Byを持つクエリがある可能性があるので、Order Byがあるかどうかを判断して切り取りの最終位置を決定する必要があります.where条件を取得したらset_を使用block_property(p_block_name,default_where,l_where_clause)およびexecute_queryはblockをクエリーします.その前に元のdefault whereを保存し、クエリーの後にdefault_を保存する必要があります.whereはデフォルトに設定されています.最後にカーソルを元の位置に合わせます.
呼び出すときにBlock Nameを入力すると、Blockのクエリー条件を切り取ってBlockをクエリーできます.
プログラムはまず、現在のblock、record、およびItemを保存し、実行後もカーソルがジャンプせずに元の位置にとどまるようにします.現在のBlockとパラメータが入ってくるP_Blockが一致し、一致しなければgoからP_Blockで、BlockのLast_を取得します.Queryは、Order Byを持つクエリがある可能性があるので、Order Byがあるかどうかを判断して切り取りの最終位置を決定する必要があります.where条件を取得したらset_を使用block_property(p_block_name,default_where,l_where_clause)およびexecute_queryはblockをクエリーします.その前に元のdefault whereを保存し、クエリーの後にdefault_を保存する必要があります.whereはデフォルトに設定されています.最後にカーソルを元の位置に合わせます.
呼び出すときにBlock Nameを入力すると、Blockのクエリー条件を切り取ってBlockをクエリーできます.
プログラムはまず、現在のblock、record、およびItemを保存し、実行後もカーソルがジャンプせずに元の位置にとどまるようにします.現在のBlockとパラメータが入ってくるP_Blockが一致し、一致しなければgoからP_Blockで、BlockのLast_を取得します.Queryは、Order Byを持つクエリがある可能性があるので、Order Byがあるかどうかを判断して切り取りの最終位置を決定する必要があります.where条件を取得したらset_を使用block_property(p_block_name,default_where,l_where_clause)およびexecute_queryはblockをクエリーします.その前に元のdefault whereを保存し、クエリーの後にdefault_を保存する必要があります.whereはデフォルトに設定されています.最後にカーソルを元の位置に合わせます.
呼び出すときにBlock Nameを入力すると、Blockのクエリー条件を切り取ってBlockをクエリーできます.
プログラムはまず、現在のblock、record、およびItemを保存し、実行後もカーソルがジャンプせずに元の位置にとどまるようにします.現在のBlockとパラメータが入ってくるP_Blockが一致し、一致しなければgoからP_Blockで、BlockのLast_を取得します.Queryは、Order Byを持つクエリがある可能性があるので、Order Byがあるかどうかを判断して切り取りの最終位置を決定する必要があります.where条件を取得したらset_を使用block_property(p_block_name,default_where,l_where_clause)およびexecute_queryはblockをクエリーします.その前に元のdefault whereを保存し、クエリーの後にdefault_を保存する必要があります.whereはデフォルトに設定されています.最後にカーソルを元の位置に合わせます.
呼び出すときにBlock Nameを入力すると、Blockのクエリー条件を切り取ってBlockをクエリーできます.