ALV模版1

TYPE-POOLS:SLIS.
DATA: t_fieldcat TYPE slis_t_fieldcat_alv,
w_fieldcat TYPE slis_fieldcat_alv,
w_layout TYPE slis_layout_alv,
G_REPID TYPE SY-REPID VALUE SY-REPID,
git_events TYPE slis_t_event,
gd_printparams TYPE slis_print_alv,
t_listheader TYPE slis_t_listheader.

*&---------------------------------------------------------------------*
*& 包括 ZCPPR_077_FORM
*&---------------------------------------------------------------------*

FORM F_INIT_LAYOUT .
* GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
W_LAYOUT-ZEBRA = 'X'.
w_layout-colwidth_optimize = 'X'.
w_layout-box_fieldname = 'BOX'.
w_layout-info_fieldname = 'COLOR'.
ENDFORM. " F_INIT_LAYOUT


*&---------------------------------------------------------------------*
*& Form form_alv_status
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PT_EXTAB text
*----------------------------------------------------------------------*
FORM form_alv_status USING pt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD_FULLSCREEN' EXCLUDING pt_extab.
ENDFORM. "form_alv_status
*&---------------------------------------------------------------------*
*& Form form_alv_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->G_UCOMM text
* -->G_SELFIELD text
*----------------------------------------------------------------------*
FORM form_alv_command USING g_ucomm LIKE sy-ucomm
g_selfield TYPE slis_selfield.

DATA:ref_grid TYPE REF TO cl_gui_alv_grid.

CASE sy-ucomm.

WHEN 'BACK'.
perform refresh.
LEAVE PROGRAM.

WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN OTHERS.

ENDCASE.
ENDFORM. "form_alv_command

*&---------------------------------------------------------------------*
*& Form frm_show_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_show_data .

* 设置显示目录
**--------------------------------------------------------------------*
** 关键字 复选框 编辑 单击 对齐 字段名 字段描述
**--------------------------------------------------------------------*
* ' ' ' ' ' ' ' ' 'L' 'BUKRS' '公司代码
* ELSE.
PERFORM frm_fieldcat USING:
' ' ' ' ' ' ' ' 'L' 'BUKRS' '公司代码',
' ' ' ' ' ' ' ' 'L' 'BUTXT' '公司名称',
' ' ' ' ' ' ' ' 'L' 'EBELN' '采购凭证',
' ' ' ' ' ' ' ' 'L' 'BSART' '采购凭证类型',
' ' ' ' ' ' ' ' 'L' 'BEDAT' '凭证日期',
' ' ' ' ' ' ' ' 'L' 'KO_PRCTR' '默认BU',
' ' ' ' ' ' ' ' 'L' 'LIFNR' '供应商'.

* 设置显示格式
PERFORM frm_layout.
* ALV显示
PERFORM frm_alv_show.
ENDFORM. " FRM_SHOW_DATA

FORM frm_fieldcat USING
fu_key
fu_checkbox
fu_edit
fu_hotspot
fu_just
fu_fieldname
fu_seltext.
CLEAR w_fieldcat.

w_fieldcat-key = fu_key.
w_fieldcat-checkbox = fu_checkbox.
w_fieldcat-edit = fu_edit.
w_fieldcat-hotspot = fu_hotspot.
w_fieldcat-just = fu_just.
w_fieldcat-fieldname = fu_fieldname.
w_fieldcat-seltext_l = fu_seltext.
"w_fieldcat-datatype = 'CURR'.
APPEND w_fieldcat TO t_fieldcat.
ENDFORM. " FRM_FIELDCAT

*&---------------------------------------------------------------------*
*& Form frm_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_layout .
w_layout-zebra = 'X'.
w_layout-colwidth_optimize = 'X'.
w_layout-box_fieldname = 'BOX'.
w_layout-info_fieldname = 'COLOR'.
ENDFORM. " FRM_LAYOUT
*&---------------------------------------------------------------------*
*& Form FRM_ALV_SHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_ALV_SHOW .
G_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
i_callback_pf_status_set = 'FORM_ALV_STATUS'
i_callback_user_command = 'FORM_ALV_COMMAND'
i_callback_top_of_page = 'TOP-OF-PAGE'
IS_LAYOUT = W_LAYOUT "I_CALLBACK_USER_COMMAND = 'F_PRINT'
IT_FIELDCAT = t_fieldcat
I_SAVE = 'X'
TABLES
T_OUTTAB = T_ALV[].

ENDFORM. " FRM_ALV_SHOW


*&---------------------------------------------------------------------*
*& Form REFRESH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form REFRESH .
DATA: gr_alvgrid TYPE REF TO cl_gui_alv_grid.

IF gr_alvgrid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = gr_alvgrid.
ENDIF.
IF NOT gr_alvgrid IS INITIAL.
CALL METHOD gr_alvgrid->check_changed_data.
CALL METHOD gr_alvgrid->refresh_table_display
EXPORTING
i_soft_refresh = 'X'
EXCEPTIONS
finished = 1
OTHERS = 2.
IF sy-subrc <> 0.
LEAVE TO SCREEN 0.
ENDIF.
ENDIF.
endform. "REFRESH

FORM f_get_event .
DATA: formname_top_of_page TYPE slis_formname VALUE 'TOP-OF-PAGE'.
DATA l_events TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = git_events
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR l_events.
READ TABLE git_events WITH KEY name = slis_ev_top_of_page INTO
l_events.
IF sy-subrc = 0.
MOVE formname_top_of_page TO l_events-form.
MODIFY git_events FROM l_events INDEX sy-tabix.
ENDIF.
ENDFORM.

FORM top-of-page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_listheader.
ENDFORM.

FORM FRM_comment_build .
*ALV表头

PERFORM f_build_title USING 'FQC检验单/生产入库单打印' ' '.
* PERFORM f_build_title USING '工厂代码:' w_title-werks.
* PERFORM f_build_title USING '工厂名称:' w_title-name1.

ENDFORM.

FORM f_build_title USING value(l_title1)
value(l_title2).
*ALV表头
DATA: l_listheader TYPE slis_listheader,
l_title(60).

CONCATENATE l_title1 l_title2 INTO l_title.
l_listheader-info = l_title.
l_listheader-typ = 'S'."M中号字体,H大号字体,S小号字体
APPEND l_listheader TO t_listheader.
CLEAR : l_title,
l_title1,
l_title2,
l_listheader.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA .

ENDFORM. " FRM_GET_DATA

原文地址:https://www.cnblogs.com/eric0701/p/3336846.html