• 2020.01.10 【ABAP随笔】ALV上的下拉框


    ALV下拉框

    如图在ALV下拉框内做了1到5 的选择下拉框,下面一起来看下如何实施

     

    1.在GT_DATA中增加一个字段来用于下拉框的使用:

    TYPES:BEGIN OF ty_data,
            checkbox TYPE c,
            matnr    TYPE mara-matnr,
            mtart    TYPE mara-mtart,
            matkl    TYPE mara-matkl,
            maktx    TYPE makt-maktx,
            context  TYPE char10,"用于下拉框
          END OF ty_data.

    DATA gt_data TYPE TABLE OF ty_data WITH EMPTY KEY.

    2.设置fieldcat属性:

    设置context字段可输入,设置fieldcat-drdn_hndl = ‘1’.

    (这个1是下面下拉框对应的组,可以用2 3 4 5 6··· 来标记下拉框的组,以此来实现多个下拉框)

    FORM frm_set_fieldcat.
      DATA lv_pos TYPE i.
      DATA ls_fieldcat LIKE LINE OF gt_fieldcat.
      DEFINE %%append_fieldcat.
        lv_pos = lv_pos + 1.
        ls_fieldcat-col_pos = lv_pos.
        ls_fieldcat-fieldname = &1."字段名
        ls_fieldcat-coltext = &2."文本
    *  ls_fieldcat-no_zero = &3."去掉前导零
        ls_fieldcat-ref_table = &3.
        ls_fieldcat-ref_field = &4.
      APPEND ls_fieldcat TO gt_fieldcat.
      CLEAR ls_fieldcat.
      END-OF-DEFINITION.

      %%append_fieldcat:
      'CHECKBOX' '选择' '' '',
      'MATNR' '' 'MARA' 'MATNR',
      'MTART' '' 'MARA' 'MTART',
      'MATKL' '' 'MARA' 'MATKL',
      'MAKTX' '' 'MAKT' 'MAKTX',
      'CONTEXT' '下拉输入1' '' ''.

      READ TABLE gt_fieldcat ASSIGNING FIELD-SYMBOL(<fs1>) WITH KEY fieldname = 'CONTEXT'.
      IF sy-subrc EQ 0.
        <fs1>-edit = 'X'.
        <fs1>-drdn_hndl = '1'.“分组标识
      ENDIF.

    3.设置下拉框内容

    如下图,set_drop_down_table()方法需要在 set_table_for_first_display()方法之前调用,否则下拉框没有下拉值。

    Handle = 1 就是给下拉框分组

        "ALV 下拉框
        DATA:ls_drop_down TYPE lvc_s_drop,
             lt_drop_down TYPE lvc_t_drop.
        "句柄HANDLE 为I类型,相同数字为同一组下拉框
        DO 5 TIMES.
          CLEAR ls_drop_down.
          ls_drop_down-handle = '1'.“对应分组标识
          ls_drop_down-value = sy-index.
          APPEND ls_drop_down TO lt_drop_down.
        ENDDO.

      "ALV 下拉框
        cr_grid->set_drop_down_table(
      it_drop_down = lt_drop_down
      ).

     CALL METHOD cr_grid->set_table_for_first_display
          EXPORTING
            is_variant           = ls_disvariant
            i_default            = 'X'
            i_save               = 'U'
            is_layout            = ls_layout
            it_toolbar_excluding = lt_exclude
          CHANGING
            it_outtab            = ct_data
            it_fieldcatalog      = ct_fieldcat.

    4.有多个下拉框分组的时候效果:

     

     

     

    这样应该理解了handle = 1 / 2 时分组的概念了。

     

  • 相关阅读:
    readystatechange事件
    DOMContentLoaded事件
    beforeunload事件
    jieba
    模型评估
    机器学习术语
    决策树
    kafka
    即时通讯好文
    HTTP头的Expires与Cache-control
  • 原文地址:https://www.cnblogs.com/jxzhu/p/12174168.html
Copyright © 2020-2023  润新知