前言部分
大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。
正文部分
CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING * TITLEBAR = ' ' * DIAGNOSE_OBJECT = ' ' TEXT_QUESTION = * TEXT_BUTTON_1 = 'Ja'(001) * ICON_BUTTON_1 = ' ' * TEXT_BUTTON_2 = 'Nein'(002) * ICON_BUTTON_2 = ' ' * DEFAULT_BUTTON = '1' * DISPLAY_CANCEL_BUTTON = 'X' * USERDEFINED_F1_HELP = ' ' * START_COLUMN = 25 * START_ROW = 6 * POPUP_TYPE = * IV_QUICKINFO_BUTTON_1 = ' ' * IV_QUICKINFO_BUTTON_2 = ' ' * IMPORTING * ANSWER = * TABLES * PARAMETER = * EXCEPTIONS * TEXT_NOT_FOUND = 1 * OTHERS = 2
POPUP_TO_CONFIRM in ECC600 have to be used instead of the obsolete function module: POPUP_FOR_INFO POPUP_TO_CONFIRM_LOSS_OF_DATA POPUP_TO_CONFIRM_STEP POPUP_TO_CONFIRM_WITH_MESSAGE POPUP_TO_CONFIRM_WITH_VALUE POPUP_TO_CONFIRM_WITH_VALUE_2 POPUP_TO_DECIDE POPUP_TO_DECIDE_WITH_MESSAGE Even if most of these function modules are obsolete also in SAP 4.7, I would like to analyze it because are largely used. Below for each obsolete function module I give the new coding (default use) through POPUP_TO_CONFIRM.
1. POPUP_FOR_INFO:
CALL FUNCTION 'POPUP_FOR_INFO' EXPORTING INFO1 = text-001 TEXTLINE1 = text-002 TITEL = text-003.
CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = text-003 TEXT_QUESTION = text-002 DISPLAY_CANCEL_BUTTON = ' '.
2. POPUP_TO_CONFIRM_LOSS_OF_DATA:
CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA' EXPORTING TEXTLINE1 = text-001 * TEXTLINE2 = ' ' TITEL = text-002 * START_COLUMN = 25 * START_ROW = 6 * DEFAULTOPTION = 'N' * IMPORTING * ANSWER = .
CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = text-002 DIAGNOSE_OBJECT = 'CACS_CONFIRM_LOSS_OF_DATA' TEXT_QUESTION = text-001 DISPLAY_CANCEL_BUTTON = ' ' POPUP_TYPE = 'ICON_MESSAGE_WARNING'.
3. POPUP_TO_CONFIRM_STEP:
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' EXPORTING * DEFAULTOPTION = 'Y' TEXTLINE1 = text-001 * TEXTLINE2 = ' ' TITEL = text-002 * START_COLUMN = 25 * START_ROW = 6 * CANCEL_DISPLAY = 'X' * IMPORTING * ANSWER = .
CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = text-002 TEXT_QUESTION = text-001.
4. POPUP_TO_CONFIRM_WITH_MESSAGE:
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE' EXPORTING * DEFAULTOPTION = 'Y' DIAGNOSETEXT1 = text-004 * DIAGNOSETEXT2 = ' ' * DIAGNOSETEXT3 = ' ' TEXTLINE1 = text-002 * TEXTLINE2 = ' ' TITEL = text-001 * START_COLUMN = 25 * START_ROW = 6 * CANCEL_DISPLAY = 'X' * IMPORTING * ANSWER = .
CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = text-001 DIAGNOSE_OBJECT = 'Z_CONFIRM_WITH_MESSAGE' TEXT_QUESTION = text-002.
Z_CONFIRM_WITH_MESSAGE should be created as shown in image below from Transaction SE61
5. POPUP_TO_CONFIRM_WITH_VALUE
This function creates a popup with a dynamic text with this pattern <TEXT_BEFORE><OBJECTVALUE><TEXT_AFTER>.
OBJECTVALUE could be any type of parameter that could be implicitly converted to a sequence of chars.
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_VALUE' EXPORTING * DEFAULTOPTION = 'Y' OBJECTVALUE = lv_value * TEXT_AFTER = ' ' TEXT_BEFORE = text-001 TITEL = text-002 * START_COLUMN = 25 * START_ROW = 6 * CANCEL_DISPLAY = 'X' * IMPORTING * ANSWER = * EXCEPTIONS * TEXT_TOO_LONG = 1 * OTHERS = 2 .
DATA: TEXT_QUESTION(256) TYPE C, TEXT_BEFORE(256) TYPE C, TEXT_AFTER(256) TYPE C, VALUE(256) TYPE C. VALUE = lv_value. TEXT_BEFORE = text-001. TEXT_AFTER = text-003. CONCATENATE TEXT_BEFORE VALUE TEXT_AFTER INTO TEXT_QUESTION SEPARATED BY SPACE. IF SY-SUBRC = 4. * TO DO: text too long ENDIF. CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = text-002 TEXT_QUESTION = TEXT_QUESTION.
DATA: PARAMETERS LIKE SPAR OCCURS 0 WITH HEADER LINE. MOVE lv_value TO PARAMETERS-VALUE. MOVE 'VALUE' TO PARAMETERS-PARAM. 'PARAM must have the same name of the symbol in the dialog text APPEND PARAMETERS. CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = text-002 DIAGNOSE_OBJECT = 'Z_CONFIRM_WITH_VALUE' TEXT_QUESTION = '' TABLES PARAMETER = PARAMETERS.
Z_CONFIRM_WITH_VALUE is a dialog text created with SE61 with a symbol named &VALUE&.
6. POPUP_TO_CONFIRM_WITH_VALUE_2
This function is very similar to POPUP_TO_CONFIRM_WITH_VALUE but it uses only one parameter to generate test before and test after value. Separating char is '&'.
In ECC6 this function module is no longer usable because it generates a dump.
See POPUP_TO_CONFIRM_WITH_VALUE.
7. POPUP_TO_DECIDE
This function creates a popup with customizable button. This function is a default in the new POPUP_TO_CONFIRM.
CALL FUNCTION 'POPUP_TO_DECIDE' EXPORTING * DEFAULTOPTION = '1' TEXTLINE1 = text-001 * TEXTLINE2 = ' ' * TEXTLINE3 = ' ' TEXT_OPTION1 = 'TEXT_OPTION1' TEXT_OPTION2 = 'TEXT_OPTION2' * ICON_TEXT_OPTION1 = ' ' * ICON_TEXT_OPTION2 = ' ' TITEL = text-002 * START_COLUMN = 25 * START_ROW = 6 * CANCEL_DISPLAY = 'X' * IMPORTING * ANSWER = .
CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = text-002 TEXT_QUESTION = text-001 TEXT_BUTTON_1 = 'TEXT_OPTION1' TEXT_BUTTON_2 = 'TEXT_OPTION2'.
8. POPUP_TO_DECIDE_WITH_MESSAGE
This function is the same as POPUP_TO_DECIDE, but with a DIAGNOSE TEXT.
CALL FUNCTION 'POPUP_TO_DECIDE_WITH_MESSAGE' EXPORTING * DEFAULTOPTION = '1' DIAGNOSETEXT1 = * DIAGNOSETEXT2 = ' ' * DIAGNOSETEXT3 = ' ' TEXTLINE1 = * TEXTLINE2 = ' ' * TEXTLINE3 = ' ' TEXT_OPTION1 = TEXT_OPTION2 = * ICON_TEXT_OPTION1 = * ICON_TEXT_OPTION2 = TITEL = * START_COLUMN = 25 * START_ROW = 6 * CANCEL_DISPLAY = 'X' * IMPORTING * ANSWER = .
See POPUP_TO_DECIDE and POPUP_TO_CONFIRM_WITH_MESSAGE.
Finally it's very important to know how to manage the answer. In the old popup answer is a char with 3 possible value: 'J' (Yes), 'N' (No) and 'A' (Abort); in the function module POPUP_TO_CONFIRM the output answer could be: 1 (Yes), 2 (No) and 'A' (Abort), so pay much attention when you make the substitution of obsolete function with the new one.
Suggestions and critics are welcome.
In the next article I would like to analyze the class CL_GUI_FRONTEND_SERVICES.