SAP ALV 设置下拉框

设置下拉框

主代码

*&---------------------------------------------------------------------*
*& FORM frm_display_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_display_alv .
* 定义DATA
  DATA:lt_data TYPE TABLE OF gty_alv.

*   清空结构
  CLEAR:gs_layout,gt_fieldcat.

*  " 设置LAYOUT
  PERFORM frm_set_layout.

*  " 设置展示字段
  PERFORM frm_set_fieldcat  .

* 设置单元格下拉框
  PERFORM frm_creat_dropdown_values.
  PERFORM frm_create_event.

* 设置单元格不可编辑
  MOVE-CORRESPONDING gt_data TO lt_data.
  PERFORM frm_editables USING lt_data 'X'.

*  " 调用展示报表
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'FRM_PF_STATUS'
      i_callback_user_command  = 'FRM_USER_COMMAND'
      is_layout_lvc            = gs_layout
      it_fieldcat_lvc          = gt_fieldcat
      i_save                   = 'A'
      it_events                = gt_event
    TABLES
      t_outtab                 = gt_data
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.
  IF sy-subrc <> 0.
    RETURN.
  ENDIF.

ENDFORM.

DATA定义

DATA: gs_event    TYPE slis_alv_event,
      gt_event    TYPE slis_t_event,
      gt_dropdown TYPE lvc_t_drop,
      gs_dropdown TYPE lvc_s_drop.

设置下拉框内容 

FORM frm_creat_dropdown_values.

* 设置下拉框内容
  APPEND VALUE #( handle = '1' value = '正式供应商非预付款' ) TO gt_dropdown.
  APPEND VALUE #( handle = '1' value = '预付款供应商'       ) TO gt_dropdown.
  APPEND VALUE #( handle = '1' value = '临时供应商'         ) TO gt_dropdown.
  APPEND VALUE #( handle = '1' value = '特殊导入供应商'     ) TO gt_dropdown.

ENDFORM.
*&---------------------------------------------------------------------*
*& FORM frm_create_event
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_create_event.
  gs_event-name = 'CALLER_EXIT'.
  gs_event-form = 'FRM_CALLER_EXIT'.
  APPEND gs_event TO gt_event.
ENDFORM.

*&---------------------------------------------------------------------*
*& FORM frm_caller_exit
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_caller_exit  ##CALLED
  USING u_grid TYPE slis_data_caller_exit.

  DATA:lr_ref_alv TYPE REF TO cl_gui_alv_grid.
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = lr_ref_alv.

  CALL METHOD lr_ref_alv->set_drop_down_table
    EXPORTING
      it_drop_down = gt_dropdown.
ENDFORM.

定义alv列 

ls_fieldcat-f4availabl = &8.

*&---------------------------------------------------------------------*
*& form frm_set_fieldcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_set_fieldcat.
* 定义DATA
  DATA: ls_fieldcat LIKE LINE OF gt_fieldcat.
  DATA: lv_col_pos TYPE i.

  CLEAR: gt_fieldcat.

  DEFINE buildfieldcat.
    CLEAR ls_fieldcat.
    lv_col_pos = lv_col_pos + 1.
    ls_fieldcat-col_pos = lv_col_pos.
    ls_fieldcat-fieldname = &1.
    ls_fieldcat-coltext   = &2.
    ls_fieldcat-scrtext_s = &2.
    ls_fieldcat-scrtext_m = &2.
    ls_fieldcat-scrtext_l = &2.
*    ls_fieldcat-icon      = &3.
    ls_fieldcat-ref_table = &3.
    ls_fieldcat-ref_field = &4.
    ls_fieldcat-just      = &5.
    ls_fieldcat-no_zero   = &6.
*    ls_fieldcat-edit      = &7.
    ls_fieldcat-drdn_hndl = &7.
    ls_fieldcat-f4availabl = &8.
    ls_fieldcat-drdn_field = &9.
    APPEND ls_fieldcat TO gt_fieldcat.
  END-OF-DEFINITION.

* 设置alv列
  buildfieldcat  'ZEORD'  TEXT-t01 'EORD'   'ZEORD' '' '' ''  '' ''.
  buildfieldcat  'MATNR'  TEXT-t02 'EORD'   'MATNR' '' 'X' ''  '' ''.
  buildfieldcat  'MAKTX'  TEXT-t11 'MAKT'   'MAKTX' '' '' ''  '' ''.
  buildfieldcat  'WERKS'  TEXT-t03 'EORD'   'WERKS' '' '' ''  '' ''.
  buildfieldcat  'VDATU'  TEXT-t04 'EORD'   'VDATU' '' '' ''  'X' ''.
  buildfieldcat  'BDATU'  TEXT-t05 'EORD'   'BDATU' '' '' ''  'X' ''.
  buildfieldcat  'LIFNR'  TEXT-t06 'EORD'   'LIFNR' '' 'X' ''  'X' ''.
  buildfieldcat  'BPKIND' TEXT-t12 'EORD'   'BPKIND' '' '' ''  '' ''.
  buildfieldcat  'TEXT40' TEXT-t13 'TB004'  'TEXT40' '' '' '' '' ''.
  buildfieldcat  'ZTERM'  TEXT-t14 'EORD'   'ZTERM' '' '' ''  '' ''.
  buildfieldcat  'VTEXT'  TEXT-t15 'TVZBT'  'VTEXT' '' '' ''  '' ''.
  buildfieldcat  'EKORG'  TEXT-t07 'EORD'   'EKORG' '' '' ''  'X' ''.
  buildfieldcat  'EKOTX'  TEXT-t18 'T024E'  'EKOTX' '' '' ''  '' ''.
  buildfieldcat  'RESWK'  TEXT-t19 'EORD'   'RESWK' '' '' ''  'X' ''.
  buildfieldcat  'EKGRP'  TEXT-t16 'EORD'   'EKGRP' '' '' ''  '' ''.
  buildfieldcat  'EKNAM'  TEXT-t17 'T024'   'EKNAM' '' '' ''  '' ''.
  buildfieldcat  'ERNAM'  TEXT-t08 'EORD'   'ERNAM' '' '' ''  '' ''.
  buildfieldcat  'FLIFN'  TEXT-t20 'EORD'   'FLIFN' '' '' ''  '' ''.
  buildfieldcat  'AUTET'  TEXT-t21 'EORD'   'AUTET' '' '' ''  '' ''.
  buildfieldcat  'NOTKZ'  TEXT-t09 'EORD'   'NOTKZ' '' '' ''  '' ''.

" 有下拉框 '1' 为frm_creat_dropdown_values中handle值
  buildfieldcat  'ZTEXT1' TEXT-t10 'EORD'   'ZTEXT1' '' ''  '1' '' ''.

ENDFORM.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值