【ABAP系列】SAP ABAP POPUP_TO_CONFIRM 弹出框总结

公众号:matinal
本文作者:matinal
 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

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.

原文地址:https://www.cnblogs.com/SAPmatinal/p/11181964.html