1. 程式人生 > >ABAP 關於下拉框的一種寫法和關聯螢幕輸入的方法

ABAP 關於下拉框的一種寫法和關聯螢幕輸入的方法

網上下拉框的教程很多,我用的方法也比較簡單,主要是為了記錄一下自己的學習狀況,實現下拉框如下:

1.設定下拉框

 LOOP AT lt_zjwsfh.
        CLEAR:lt_vlist,lt_vlist2.
        CONCATENATE lt_zjwsfh-zdm lt_zjwsfh-zjwsfh   "add by PAB014 20180914
        INTO lt_zjwsfh-zjwsfh SEPARATED BY SPACE.
        lt_vlist-key = lt_zjwsfh-zjwsfh.
        APPEND lt_vlist.
        lt_vlist2-key = lt_zjwsfh-zaeon.
        APPEND lt_vlist2.
      ENDLOOP.
      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          id              = 'Z10TIEBCKBGD_HD-ZJWSFH'
          values          = lt_vlist[]
        EXCEPTIONS
          id_illegal_name = 1
          OTHERS          = 2.
      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          id              = 'Z10TIEBCKBGD_HD-ZAEON'
          values          = lt_vlist2[]
        EXCEPTIONS
          id_illegal_name = 1
          OTHERS          = 2.

2.關聯螢幕輸入

假如你要選擇欄位1,關聯欄位2,那麼在這裡選擇欄位1設定欄位檢查,紅色標註部分為欄位2.

MODULE get_zaeon INPUT.
  DATA: lv_zdm TYPE z10tiebjwsfh-zdm.
  DATA: lv_zjwsfh LIKE z10tiebjwsfh-zjwsfh.

  SPLIT z10tiebckbgd_hd-zjwsfh AT space INTO lv_zdm lv_zjwsfh.
  "CONDENSE lv_zjwsfh NO-GAPS.
  IF lv_zjwsfh IS NOT INITIAL.
    SELECT SINGLE zaeon FROM z10tiebjwsfh
      INTO (z10tiebckbgd_hd-zaeon)


      WHERE zjwsfh = lv_zjwsfh
      AND zdm = lv_zdm.
    IF sy-subrc <> 0.
      CONCATENATE lv_zdm 'HE' lv_zjwsfh INTO lv_zjwsfh.
      MESSAGE S001(00) WITH lv_zjwsfh DISPLAY LIKE 'E'.
    ENDIF.
  ENDIF.
ENDMODULE.