前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【SAP ABAP系列】ABAP POPUP_TO_CONFIRM 弹出框总结

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

原创
作者头像
matinal
修改2020-11-16 09:59:38
1.8K0
修改2020-11-16 09:59:38
举报
文章被收录于专栏:SAP Technical

正文部分

代码语言:javascript
复制
​
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 

​
代码语言:javascript
复制
​
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:

代码语言:javascript
复制
​
CALL FUNCTION 'POPUP_FOR_INFO'  
EXPORTING  
INFO1           = text-001  
TEXTLINE1       = text-002  
TITEL           = text-003.  

​
代码语言:javascript
复制
​
CALL FUNCTION 'POPUP_TO_CONFIRM'  
EXPORTING  
TITLEBAR = text-003  
TEXT_QUESTION = text-002  
DISPLAY_CANCEL_BUTTON = ' '.  

​

2. POPUP_TO_CONFIRM_LOSS_OF_DATA:

代码语言:javascript
复制
​
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 =  
.  

​
代码语言:javascript
复制
​
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:

代码语言:javascript
复制
​
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 =  
.  

​
代码语言:javascript
复制
​
CALL FUNCTION 'POPUP_TO_CONFIRM'  
EXPORTING  
TITLEBAR = text-002  
TEXT_QUESTION = text-001.  

​

4. POPUP_TO_CONFIRM_WITH_MESSAGE:

代码语言:javascript
复制
​
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               =  
.  

​
代码语言:javascript
复制
​
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.

代码语言:javascript
复制
​
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  
.  

​
代码语言:javascript
复制
​
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.  

​
代码语言:javascript
复制
​
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.

代码语言:javascript
复制
​
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                  =  
.  

​
代码语言:javascript
复制
​
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.

代码语言:javascript
复制
​
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.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文部分
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档