设置下拉框
主代码
*&---------------------------------------------------------------------*
*& 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.