完整可执行代码
REPORT YZWG0006.
TYPES:
BEGIN OF TY_ALV,
REL TYPE C,
STYLE TYPE lvc_t_styl,
BUKRS TYPE T001-BUKRS,
BUTXT TYPE T001-BUTXT,
END OF TY_ALV,
TT_ALV TYPE STANDARD TABLE OF TY_ALV.
DATA:
GS_LAYOUT1 TYPE LVC_S_LAYO,
GT_FIELDCAT TYPE LVC_T_FCAT,
GT_ALV TYPE TT_ALV,
gt_style TYPE lvc_t_styl,
gs_style TYPE lvc_s_styl,
GS_ALV TYPE TY_ALV.
START-OF-SELECTION.
SELECT BUKRS BUTXT UP TO 3 ROWS
INTO CORRESPONDING FIELDS OF TABLE GT_ALV
FROM T001.
PERFORM F_EDIT_FCAT USING:
'' 'BUKRS' '公司' ,
'X' 'BUTXT' '公司名' .
* LAYOUT编辑
GS_LAYOUT1-BOX_FNAME = 'REL'.
GS_LAYOUT1-ZEBRA = ABAP_TRUE.
GS_LAYOUT1-CWIDTH_OPT = ABAP_TRUE.
GS_LAYOUT1-STYLEFNAME = 'STYLE'.
LOOP AT GT_ALV ASSIGNING FIELD-SYMBOL(<fs_alv>).
CLEAR:gs_style,
gt_style.
IF <fs_alv>-bukrs <> '1000'.
gs_style-fieldname = 'BUTXT'.
gs_style-style = cl_gui_alv_grid=>mc_style_disabled.
APPEND gs_style to gt_style.
<fs_alv>-style = gt_style.
ENDIF.
ENDLOOP.
* ALV显示
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
* I_CALLBACK_PF_STATUS_SET = 'F_SET_STATUS1'
* I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND1'
* I_GRID_SETTINGS = LS_GLAY
IS_LAYOUT_LVC = GS_LAYOUT1
I_SAVE = ABAP_ON
IT_FIELDCAT_LVC = gT_FIELDCAT
TABLES
T_OUTTAB = GT_ALV.
*&---------------------------------------------------------------------*
*& Form F_EDIT_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_edit_fcat USING V_V1
V_V2
V_V3.
DATA:
LS_FIELDCAT TYPE LVC_S_FCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-EDIT = V_V1. "可编辑
LS_FIELDCAT-FIELDNAME = V_V2. "要显示的字段
LS_FIELDCAT-COLTEXT = V_V3. "字段名
APPEND LS_FIELDCAT TO GT_FIELDCAT.
ENDFORM.
转载设定ALV颜色的