&---------------------------------------------------------------------
*& Report Z_ALV_TEST_014
*&
&---------------------------------------------------------------------
*&
*&
&---------------------------------------------------------------------
REPORT Z_ALV_TEST_014.
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.
FIELD-SYMBOLS:
-
<fs_tab> TYPE ty_tab, <fs_alv> TYPE TY_ALV, <fs_field> TYPE ANY.
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.
DATA: i_grid_settings TYPE lvc_s_glay .
START-OF-SELECTION.
*UPDATE T001 set BUTXT = ‘1001’ where BUKRS = ‘1000’.
SELECT BUKRS BUTXT UP TO 10 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 = ‘X’.
GS_LAYOUT1-CWIDTH_OPT = ‘X’.
GS_LAYOUT1-STYLEFNAME = ‘STYLE’.i_grid_settings-edt_cll_cb = ‘X’ . "显示界面可编辑字段上修改了数据,回车后就会立即将内表的数据也修改
LOOP AT GT_ALV ASSIGNING <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_enabled.
APPEND gs_style to gt_style.<fs_alv>-style = gt_style.
ENDIF.
ENDLOOP.
-
ALV显示
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
EXPORTING
i_grid_settings = i_grid_settings "显示界面可编辑字段上修改了数据,回车后就会立即将内表的数据也修改
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 i_save = 'A' 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.