1. 程式人生 > >abap 彈出對話方塊函式POPUP_GET_VALUES的使用方法

abap 彈出對話方塊函式POPUP_GET_VALUES的使用方法

  專案中,經常用到,點選按鈕時彈出一個對話方塊,選擇一些值,然後返回選擇的值,進一步操作,下面是使用彈窗對話方塊函式POPUP_GET_VALUES返回日期的例子,當然後也可以時其他型別的,定義資料元素時,根據需要定義成相應的型別就行了,效果如下圖:

程式碼如下:

  DATA: it_value TYPE TABLE OF sval,

        wa_value TYPE sval,

        lv_rtn_cd.

  CLEAR:it_value,wa_value,lv_rtn_cd.
  IF lv_cmd = '1' OR lv_cmd = '2'.
    wa_value-tabname = 'ZMMDATE'
.
    wa_value-fieldname = 'BDATE'.
    wa_value-value = sy-datum.
    APPEND wa_value TO it_value.


    wa_value-tabname = 'ZMMDATE'.
    wa_value-fieldname = 'EDATE'.
    wa_value-value = sy-datum.
    APPEND wa_value TO it_value.
  ELSE.
    wa_value-tabname = 'ZMMDATE'.
    wa_value-fieldname = 'JDATE'
.
    wa_value-value = sy-datum.
    APPEND wa_value TO it_value.
  ENDIF.


  CALL FUNCTION 'POPUP_GET_VALUES'
    EXPORTING
      popup_title = '日期選擇'
    IMPORTING
      returncode  = lv_rtn_cd
    TABLES
      fields      = it_value.

  DATA:gt_itab TYPE TABLE OF zputwbsrq_s WITH HEADER LINE.
  DATA
:msg TYPE TABLE OF  zbapimessage WITH HEADER LINE.

  DATA:gt_in TYPE TABLE OF zputprrq_s WITH HEADER LINE.


  DATA:gt_in1  TYPE TABLE OF zputporq_s WITH HEADER LINE.
  DATA:msg1 TYPE TABLE OF zbapiret WITH HEADER LINE.

  DATA:gt_in2 TYPE TABLE OF zputplrq_s WITH HEADER LINE.

  IF lv_rtn_cd IS INITIAL.
        READ TABLE it_value INTO wa_value WITH KEY fieldname = 'BDATE'.
        IF sy-subrc = 0.
          gt_itab-p_day = wa_value-value.
          gt_itab-b_day = wa_value-value.
        ENDIF.
    ENDIF.