ALV报表——AVL可编辑
整个ALV可编辑
将Layout的Edit设置值为X
效果:所有栏位可以编辑

代码:
TYPES: BEGIN OF ty_data, matnr TYPE matnr, maktx TYPE maktx, END OF ty_data. DATA: gt_data TYPE TABLE OF ty_data. DATA: gs_layout TYPE lvc_s_layo, "布局 gt_fieldcat TYPE lvc_t_fcat. "字段 "内表数据 gt_data = VALUE #( ( matnr = '物料A' maktx = '物料A的描述' ) ( matnr = '物料B' maktx = '物料B的描述' ) ). "栏位最适宽度 gs_layout-cwidth_opt = 'X'. "ALV条纹 gs_layout-zebra = 'X'. "ALV可编辑 gs_layout-edit = 'X'. "ALV栏位 gt_fieldcat = VALUE #( ( fieldname = 'MATNR' ref_field = 'MATNR' ref_table = 'MARA' ) ( fieldname = 'MAKTX' ref_field = 'MAKTX' ref_table = 'MAKT' ) ). CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid "当前程序名 is_layout_lvc = gs_layout "Layout it_fieldcat_lvc = gt_fieldcat "Fieldcat i_save = 'A' TABLES t_outtab = gt_data EXCEPTIONS program_error = 1 OTHERS = 2.
列可编辑
将Fieldcat的指定字段的Edit设置值为X
效果:物料栏位可编辑,物料描述不可编辑

代码:
TYPES: BEGIN OF ty_data, matnr TYPE matnr, maktx TYPE maktx, END OF ty_data. DATA: gt_data TYPE TABLE OF ty_data. DATA: gs_layout TYPE lvc_s_layo, "布局 gt_fieldcat TYPE lvc_t_fcat. "字段 "内表数据 gt_data = VALUE #( ( matnr = '物料A' maktx = '物料A的描述' ) ( matnr = '物料B' maktx = '物料B的描述' ) ). "栏位最适宽度 gs_layout-cwidth_opt = 'X'. "ALV条纹 gs_layout-zebra = 'X'. "ALV栏位 gt_fieldcat = VALUE #( ( fieldname = 'MATNR' ref_field = 'MATNR' ref_table = 'MARA' edit = 'X' ) ( fieldname = 'MAKTX' ref_field = 'MAKTX' ref_table = 'MAKT' ) ). CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid "当前程序名 is_layout_lvc = gs_layout "Layout it_fieldcat_lvc = gt_fieldcat "Fieldcat i_save = 'A' TABLES t_outtab = gt_data EXCEPTIONS program_error = 1 OTHERS = 2.
单元格可编辑
1、AVL增加Style栏位(相当于表中表)
2、在Style里设置哪些字段可编辑哪些字段不可编辑
3、Layout指定样式栏位为ALV增加的Style栏位名
4、Layout的Edit设置值为X
效果:第1行的物料可编辑,物料A的描述不可编辑;第2行的物料不可编辑,物料B的描述可编辑

代码:
TYPES: BEGIN OF ty_data, matnr TYPE matnr, maktx TYPE maktx, style TYPE lvc_t_styl, END OF ty_data. DATA: gt_data TYPE TABLE OF ty_data. DATA: gs_layout TYPE lvc_s_layo, "布局 gt_fieldcat TYPE lvc_t_fcat. "字段 DATA: gt_style1 TYPE lvc_t_styl, gt_style2 TYPE lvc_t_styl. "物料可编辑,描述不可编辑 gt_style1 = VALUE #( ( fieldname = 'MATNR' style = cl_gui_alv_grid=>mc_style_enabled ) ( fieldname = 'MAKTX' style = cl_gui_alv_grid=>mc_style_disabled ) ). "物料不可编辑,描述可编辑 gt_style2 = VALUE #( ( fieldname = 'MATNR' style = cl_gui_alv_grid=>mc_style_disabled ) ( fieldname = 'MAKTX' style = cl_gui_alv_grid=>mc_style_enabled ) ). "内表数据 gt_data = VALUE #( ( matnr = '物料A' maktx = '物料A的描述' style = gt_style1 ) ( matnr = '物料B' maktx = '物料B的描述' style = gt_style2 ) ). "栏位最适宽度 gs_layout-cwidth_opt = 'X'. "ALV条纹 "gs_layout-zebra = 'X'. "ALV可编辑 gs_layout-edit = 'X'. "ALV的样式栏位 gs_layout-stylefname = 'STYLE'. "ALV栏位 gt_fieldcat = VALUE #( ( fieldname = 'MATNR' ref_field = 'MATNR' ref_table = 'MARA' ) ( fieldname = 'MAKTX' ref_field = 'MAKTX' ref_table = 'MAKT' ) ). CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid "当前程序名 is_layout_lvc = gs_layout "Layout it_fieldcat_lvc = gt_fieldcat "Fieldcat i_save = 'A' TABLES t_outtab = gt_data EXCEPTIONS program_error = 1 OTHERS = 2.
落霞与孤鹜齐飞,秋水共长天一色

浙公网安备 33010602011771号