FORMパーソナライズ-レポートの呼び出し
21025 ワード
標準Formでクライアント化リクエストを提出し、Formのパーソナライズを使用することで、このニーズを完全に実現できます.
次の例は、支払インタフェースで支払申請を印刷し、ツールバーでアクティブな支払申請発行要求を印刷する例です.
1.まずメニューボタンを作成する.これは言うまでもなく、フリップフロップイベント選択WHEN-NEW-FORM-INSTANCE
2.次に、印刷ボタンに応答し、ここでは実行プロセスという内蔵項目を用いて要求を呼び出し、呼び出されたプロセスコードは以下の通りである.
パーソナライズでは、レスポンスボタンイベントを追加します.イベントトリガは、最初のステップで追加したメニュー項目です.この例ではSPECIAL 30です.「≪アクティビティ|Activity|Ir≫」で、「≪タイプ|Type|Ir≫」を「≪組み込み|Initiative|Ir≫」、「≪組み込みタイプ|Initiative Type|Ir≫」の順に選択します.
='xxx_payment_planning_rpt.submit_plan_request('''||:HEADERS.USER_GROUP_ID||''','||''''|| NULL ||''')'
ここでは特に変数を説明する必要がありますが、個性化では、実際には変数が文字列であると考えられています.ここで変数は2つに分けることができます.1つ目は、"="の文字列を持たないことです.この方法は、パーソナライズされた申請後、実行された文をバインドし、いつ実行された文も固定されています.例えば、変数にXXBG_を記入します.AP_UTL.insert_log(1,'AP_INVOICE')(注意、外層には'''を追加する必要はありません)では、パーソナライズされた申請後、メニュー項目のボタンをクリックすると、いつも実行プロセスXXXXBG_AP_UTL.insert_log(1,'AP_INVOICE'),この方法は簡単な実行プロセスに適している.2つ目は、"="を持つ変数であり、文字列が"="を使用すると、この文字列にはいくつかの動的パラメータが含まれていることを意味し、Formパーソナライズ申請後に文字列をバインドせずに実行時に動的に解析する.この例ではuser_group_idが使用されるため、2つ目の方法が使用される.
3.機能を追加して、要求ウィンドウをポップアップします.
次の例は、支払インタフェースで支払申請を印刷し、ツールバーでアクティブな支払申請発行要求を印刷する例です.
1.まずメニューボタンを作成する.これは言うまでもなく、フリップフロップイベント選択WHEN-NEW-FORM-INSTANCE
2.次に、印刷ボタンに応答し、ここでは実行プロセスという内蔵項目を用いて要求を呼び出し、呼び出されたプロセスコードは以下の通りである.
PROCEDURE submit_plan_request(p_group_id IN VARCHAR2,
p_vendor_id IN VARCHAR2) IS
l_success BOOLEAN;
l_request_number NUMBER;
l_errbuf VARCHAR2(2000);
e_exception EXCEPTION;
BEGIN
l_success := fnd_request.add_layout('XXX',
'XXXAPPAYMENT',
'zh',
'CN',
'PDF');
IF p_group_id IS NOT NULL THEN
IF l_success THEN
-- fnd_request.set_org_id(to_number(p_org_id));
--
l_request_number := fnd_request.submit_request('XXX',
'XXXAPPAYMENT',
'',
'',
FALSE,
p_group_id,
p_vendor_id,
chr(0),
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'');
IF l_request_number = 0 THEN
l_errbuf := 'Submit Request Failure';
RAISE e_exception;
ELSE
COMMIT;
END IF;
ELSE
l_errbuf := 'Add Template Failure';
RAISE e_exception;
END IF;
ELSE
l_errbuf := 'Please Choice Group';
RAISE e_exception;
END IF;
EXCEPTION
WHEN e_exception THEN
raise_application_error(-20002, l_errbuf);
WHEN OTHERS THEN
raise_application_error(-20001, SQLERRM);
END;
パーソナライズでは、レスポンスボタンイベントを追加します.イベントトリガは、最初のステップで追加したメニュー項目です.この例ではSPECIAL 30です.「≪アクティビティ|Activity|Ir≫」で、「≪タイプ|Type|Ir≫」を「≪組み込み|Initiative|Ir≫」、「≪組み込みタイプ|Initiative Type|Ir≫」の順に選択します.
='xxx_payment_planning_rpt.submit_plan_request('''||:HEADERS.USER_GROUP_ID||''','||''''|| NULL ||''')'
ここでは特に変数を説明する必要がありますが、個性化では、実際には変数が文字列であると考えられています.ここで変数は2つに分けることができます.1つ目は、"="の文字列を持たないことです.この方法は、パーソナライズされた申請後、実行された文をバインドし、いつ実行された文も固定されています.例えば、変数にXXBG_を記入します.AP_UTL.insert_log(1,'AP_INVOICE')(注意、外層には'''を追加する必要はありません)では、パーソナライズされた申請後、メニュー項目のボタンをクリックすると、いつも実行プロセスXXXXBG_AP_UTL.insert_log(1,'AP_INVOICE'),この方法は簡単な実行プロセスに適している.2つ目は、"="を持つ変数であり、文字列が"="を使用すると、この文字列にはいくつかの動的パラメータが含まれていることを意味し、Formパーソナライズ申請後に文字列をバインドせずに実行時に動的に解析する.この例ではuser_group_idが使用されるため、2つ目の方法が使用される.
3.機能を追加して、要求ウィンドウをポップアップします.