• 【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.

  • 相关阅读:
    由一个表更新另一个表中field
    DevExpress控件XtraGrid显示问题,分组不好用
    20090522: IBM X22
    DevExpress的GridControl选择一行,不显示单元格焦点的设置
    DataTable添加行的方法
    DevExpress自定义XtraGrid列菜单
    一道面试题
    DevExpress 设置LookUpEdit的值
    解决端口占用问题
    NoSQL
  • 原文地址:https://www.cnblogs.com/SAPmatinal/p/11181964.html
Copyright © 2020-2023  润新知