创建屏幕
调用屏幕
MODULE status_0200 OUTPUT.
PERFORM sub_200_status_pbo.
ENDMODULE.
MODULE user_command_0200 INPUT.
PERFORM sub_200_user_command_pai.
ENDMODULE.
FORM sub_200_status_pbo .
DATA:lt_code LIKE TABLE OF sy-ucomm.
*设置标题与应用工具栏
SET PF-STATUS 'GS_2000' EXCLUDING lt_code.
*创建并划分ALV容器:前提ALV容易是初始化的
PERFORM sub_200_init.
ENDFORM.
FORM sub_200_init .
DATA: lv_save,
ls_variant TYPE disvariant.
DATA: lt_exclude TYPE ui_functions.
DATA: lv_repid TYPE sy-repid.
CLEAR:go_alv2,gs_layout,lt_exclude.
IF go_alv2 IS INITIAL.
*--变式参数赋值
lv_repid = sy-repid.
ls_variant-report = lv_repid.
lv_save = 'A'.
gs_layout-info_fname = 'LNCOL'.
gs_layout-cwidth_opt = c_x.
gs_layout-zebra = c_x.
gs_layout-smalltitle = c_x.
gs_layout-no_rowmark = c_x.
* PERFORM sub_get_title2 CHANGING gs_layout.
*--创建ALV控制
CREATE OBJECT go_alv2
EXPORTING
i_parent = cl_gui_container=>screen0.
PERFORM sub_init_fieldcat_item.
PERFORM sub_exclude_tb_functions USING lt_exclude.
* PERFORM sub_200_event USING go_alv2.
CALL METHOD go_alv2->set_table_for_first_display
EXPORTING
is_variant = ls_variant
i_save = lv_save
is_layout = gs_layout
it_toolbar_excluding = lt_exclude
CHANGING
it_outtab = gt_out
it_fieldcatalog = gt_fieldcat2.
ELSE.
go_alv2->refresh_table_display( ). "刷新
ENDIF.
ENDFORM.
FORM sub_init_fieldcat_item .
DATA:lv_line TYPE sy-tfill .
DATA:lt_fieldcat TYPE lvc_t_fcat.
DEFINE mcr_alv_fieldcat.
CLEAR: gs_fieldcat.
gs_fieldcat-tabname = 'GT_OUT'.
gs_fieldcat-fieldname = &1.
gs_fieldcat-key = &2.
gs_fieldcat-outputlen = &3.
gs_fieldcat-coltext = &4.
gs_fieldcat-scrtext_l = &4.
gs_fieldcat-scrtext_m = &4.
gs_fieldcat-scrtext_s = &4.
gs_fieldcat-ref_field = &5.
gs_fieldcat-ref_table = &6.
gs_fieldcat-no_out = &7.
gs_fieldcat-no_zero = &8.
gs_fieldcat-emphasize = &9. "列颜色
APPEND gs_fieldcat TO gt_fieldcat2.
END-OF-DEFINITION.
REFRESH: gt_fieldcat2.
mcr_alv_fieldcat 'VBELN' '' '010' '销售订单号' 'VBELN' 'VBEP' ' ' ' ' ''.
mcr_alv_fieldcat 'POSNR' '' '010' '销售订单行号' 'POSNR' 'VBEP' ' ' ' ' ''.
mcr_alv_fieldcat 'MATNR' '' '040' '物料' 'MATNR' 'VBAP' ' ' ' ' ''.
mcr_alv_fieldcat 'KBMENG' '' '013' '数量' 'MATNR' 'KBMENG' ' ' ' ' ''.
mcr_alv_fieldcat 'VBELN_V1' '' '010' '发运单号' '' '' ' ' ' ' ''.
mcr_alv_fieldcat 'POSNR_V1' '' '01' '发运单行号' '' '' ' ' ' ' ''.
mcr_alv_fieldcat 'MESSAGE' '' '100' '消息' '' '' ' ' ' ' ''.
ENDFORM.
FORM sub_exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
DATA ls_exclude TYPE ui_func.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_check.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_refresh.
APPEND ls_exclude TO pt_exclude.
ENDFORM.
FORM sub_200_user_command_pai .
gv_code = ok_code.
CLEAR: ok_code.
CASE gv_code.
WHEN 'BACK' OR 'EXIT' OR 'CANC'.
CLEAR:gt_out[],gt_out.
go_alv2->set_visible( space ).
LEAVE TO SCREEN 0.
ENDCASE.
ENDFORM.