zoukankan      html  css  js  c++  java
  • ABAP 业务处理中的弹窗提示

    网上各种弹窗技术,以下仅记录业务中用到的。

    第一,ALV按钮事件中,弹窗提示。

    使用过的是

    'POPUP_TO_CONFIRM'
    WHEN 'SCRAP'.
          LOOP AT IT_ALV INTO WA_ALV WHERE SEL EQ 'X'.
            SELECT VBELN INTO TABLE @DATA(VBAP_TEMP) FROM ZTSD027A WHERE VBELN = @WA_ALV-VBELN AND TYPE = 'S'.
            CLEAR: WA_ALV.
          ENDLOOP.
          IF VBAP_TEMP IS NOT INITIAL.
            CALL FUNCTION 'POPUP_TO_CONFIRM'
              EXPORTING
                TEXT_QUESTION         = '此合同已经传入过OA,是否需要再次上传?'
                TEXT_BUTTON_1         = ''(001)
                TEXT_BUTTON_2         = ''(002)
                DEFAULT_BUTTON        = '2'
                DISPLAY_CANCEL_BUTTON = ''
              IMPORTING
                ANSWER                = LV_ANSWER
              EXCEPTIONS
                TEXT_NOT_FOUND        = 1
                OTHERS                = 2.
            IF SY-SUBRC <> 0.
            ENDIF.
    
            IF LV_ANSWER = '2' OR LV_ANSWER = 'A'.
              EXIT.
            ELSEIF LV_ANSWER = '1'.
              PERFORM DOWN_DATA.
              PERFORM MOVE_ALV TABLES IT_ALV.
            ELSE.
              MESSAGE '不要瞎点!' TYPE 'S' .
            ENDIF.

    TEXT_QUESTION  :它的功能就是写入要显示给用户的信息。

    ICON_BUTTON_1 :按钮上显示信息 返回值是1

    ICON_BUTTON_2 :按钮上显示信息 返回值是2

    DEFAULT_BUTTON :调用函数后哪个按钮被默认选中

    DISPLAY_CANCEL_BUTTON  :显示取消的按钮并可用

    START_COLUMN    ;TART_ROW   :这两个是一对的控制对话框在画面上显示的位置

    ANSWER  :这个很重要是存放你选择哪个BUTTON返回值的,定义为一位的CHAR型就可以了,可以根据返回值进行操作 

    第二,用于ALV取数前的条件屏幕判断。

    有时候,对于屏幕条件需要在执行程序前判断 不大方便时,采取了一个折中措施,放在执行开始前。

    屏幕如下

    SELECTION-SCREEN BEGIN OF BLOCK BLK02 WITH FRAME TITLE TEXT-004.
    SELECT-OPTIONS: S_WERKS FOR MARC-WERKS MODIF ID M1,        "工厂
                    S_LGORT FOR MARD-LGORT MODIF ID M1,        "库位
                    S_MATNR FOR MARA-MATNR MODIF ID M1,        "物料编码
                    S_MAKTX FOR MAKT-MAKTX MODIF ID M1,        "物料描述
                    S_MTART FOR MARA-MTART MODIF ID M1,        "物料类型
                    S_MATKL FOR MARA-MATKL MODIF ID M1,        "物料组
                    S_ERNAM FOR MARA-ERNAM MODIF ID M1,        "创建人
                    S_ERSDA FOR MARA-ERSDA MODIF ID M1.        "创建时间
    SELECTION-SCREEN END OF BLOCK BLK02.

    一般检查用法:

    *AT SELECTION-SCREEN.
    *  IF S_WERKS IS INITIAL.
    *    MESSAGE '请填入一个查询工厂' TYPE 'E'.
    *  ENDIF.
    *  IF S_LGORT IS INITIAL.
    *    MESSAGE '请填入一个查询库位' TYPE 'E'.
    *  ENDIF.

    弹窗做法:

    IF S_WERKS IS INITIAL.
    *    MESSAGE '请填入一个查询工厂' TYPE 'E' DISPLAY LIKE 'S'.
        CALL FUNCTION 'POPUP_DISPLAY_MESSAGE'
          EXPORTING
            TITEL = '请填入一个查询工厂'
            MSGID = '00'
            MSGTY = 'E'
            MSGNO = '001'
            MSGV1 = '请填入一个查询工厂'
    *       MSGV2 =
    *       MSGV3 =
    *       MSGV4 =
    *       START_COLUMN       = 5
    *       START_ROW          = 5
          .
        STOP.
      ENDIF.
      IF S_LGORT IS INITIAL.
    *    MESSAGE '请填入一个查询库位' TYPE 'E'.
        CALL FUNCTION 'POPUP_DISPLAY_MESSAGE'
          EXPORTING
            TITEL = '请填入一个查询库位'
            MSGID = '00'
            MSGTY = 'E'
            MSGNO = '001'
            MSGV1 = '请填入一个查询库位'
    *       MSGV2 =
    *       MSGV3 =
    *       MSGV4 =
    *       START_COLUMN       = 5
    *       START_ROW          = 5
          .
        STOP.
      ENDIF.

  • 相关阅读:
    Core Animation 文档翻译—附录C(KVC扩展)
    Core Animation 文档翻译—附录B(可动画的属性)
    Core Animation 文档翻译—附录A(Layer样貌相关属性动画)
    Core Animation 文档翻译 (第八篇)—提高动画的性能
    Core Animation 文档翻译 (第七篇)—改变Layer的默认动画
    Core Animation 文档翻译 (第六篇)—高级动画技巧
    Core Animation 文档翻译 (第五篇)—构建Layer的层次结构
    用Markdown快速排版一片文章
    Core Animation 文档翻译 (第四篇)—让Layer的content动画起来
    Core Animation 文档翻译(第三篇)—设置Layer对象
  • 原文地址:https://www.cnblogs.com/BruceKing/p/15146992.html
Copyright © 2011-2022 走看看