【SAP】汎用M:POPUP_TO_CONFIRM (ダイアログ表示)
汎用M:POPUP_TO_CONFIRM (ダイアログ表示)
■機能としては
GUI画面に「YES」「NO」の確認ダイアログを表示する汎用モジュールです。
□用途としては
販売伝票を設定する際に不完全決定表の設定による確認でなく、EXITを用いてある一定の取引の設定が間違っていた際等に対して、処理を続行するか(YES)、中断するか(NO)を確認ダイアログにより分岐処理させる等。
中断時の処理としてはエラーメッセージを設定することで処理を中断させることが多く、これを警告メッセージとするとNOでも処理が継続されます。LEAVE PROGRAMを設定するとSAPのログイン時の画面まで戻るのでエラーメッセージによる中断処理が無難。
■注意点
・メッセージの表示できる桁数には制限があり、65バイトが限界値となっています。
そのため、それ以上の桁数を設定した際は桁落ちとなります。
・DISPLAY_CANCEL_BUTTONが初期設定ではついており、デフォルト設定のままだと想定外の「中止」ボタンが第3のボタンとして出力される。設定としては’ (空白)’とすることで非表示とすることができます。
・全体的に左による傾向があり、右に余白があるがこれを埋める手はありませんでした。
サンプルコード
DATA:
L_TEXT_QUESTION TYPE STRING, *質問テキスト
L_TEXT_BUTTO_1 TYPE TEXT8, *第1ボタン
L_TEXT_BUTTO_2 TYPE TEXT8, *第2ボタン
L_ANSWER TYPE CHAR1. *選択したボタンの返り値
*パラメータに値を設定する
L_TEXT_QUESTION = "続行しますか。".*質問テキスト
L_TEXT_BUTTO_1 = ”はい”.*第1ボタン
L_TEXT_BUTTO_2 = ”いいえ”.*第2ボタン
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TEXT_QUESTION = L_TEXT_QUESTION
TEXT_BUTTON_1 = L_TEXT_BUTTO_1
TEXT_BUTTON_2 = L_TEXT_BUTTO_2
IMPORTING
ANSWER = L_ANSWER *回答を格納(ボタン1なら1、ボタン2なら2)
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 1
IF L_ANSWER <> 1 *ボタンの回答が1以外なら2のNOである分岐処理
TEXT E・・・・
ENDIF.
ENDIF.