ABAP的两种OOALV实现方法第一种画屏幕

ABAP的两种OOALV实现方法
第一种画屏幕
DATA: gcl_custom_container TYPE REF TO cl_gui_custom_container,
gcl_alv_grid TYPE REF TO cl_gui_alv_grid.

DATA:gt_fcat_100 TYPE lvc_t_fcat, "
gs_fcat TYPE lvc_s_fcat.
FIELD-SYMBOLS: <gfs_fcat> TYPE lvc_s_fcat.

DATA:gs_layout_100 TYPE lvc_s_layo.

DATA:gt_exclude_100 TYPE ui_functions, "
gs_exclude TYPE ui_func.

DATA:gs_variant_100 TYPE disvariant. "
DATA:gs_stable TYPE lvc_s_stbl VALUE ‘XX’.

CALL SCREEN ‘0100’.
&---------------------------------------------------------------------
*& Module STATUS_0100 OUTPUT
&---------------------------------------------------------------------
*&
&---------------------------------------------------------------------
MODULE status_0100 OUTPUT.
SET PF-STATUS ‘0100’.
SET TITLEBAR ‘xxx’.
ENDMODULE.
&---------------------------------------------------------------------
*& Module USER_COMMAND_0100 INPUT
&---------------------------------------------------------------------
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN ‘&F03’.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
&---------------------------------------------------------------------
*& Module MOD_LOAD_DATA_100 OUTPUT
&---------------------------------------------------------------------
*&
&---------------------------------------------------------------------
MODULE mod_load_data_100 OUTPUT.

PERFORM frm_load_data_100.

ENDMODULE.

&---------------------------------------------------------------------
*& Form FRM_LOAD_DATA_100
&---------------------------------------------------------------------
*& text
&---------------------------------------------------------------------
FORM frm_load_data_100 .

DATA: lt_t001 TYPE STANDARD TABLE OF t001.

gs_variant_100-report = sy-repid.
gs_variant_100-handle = ‘100’.

SELECT * FROM t001 INTO TABLE lt_t001 UP TO 5 ROWS.

IF gcl_custom_container IS INITIAL.
CREATE OBJECT gcl_custom_container
EXPORTING
container_name = ‘CC_0100’.

CALL FUNCTION ‘LVC_FIELDCATALOG_MERGE’
EXPORTING
i_structure_name = ‘T001’
CHANGING
ct_fieldcat = gt_fcat_100.

ENDIF.

IF gcl_alv_grid IS INITIAL.

CREATE OBJECT gcl_alv_grid
EXPORTING
i_parent = gcl_custom_container.

CALL METHOD gcl_alv_grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout_100
is_variant = gs_variant_100
** IT_TOOLBAR_EXCLUDING = GT_EXCLUDE_100
i_save = ‘A’
i_default = abap_true
** i_buffer_active = ‘X’
** i_structure_name = ‘T001’
CHANGING
it_fieldcatalog = gt_fcat_100
it_outtab = lt_t001.

ELSE.
gcl_alv_grid->refresh_table_display( EXPORTING is_stable = gs_stable ).
ENDIF.

ENDFORM.
ABAP的两种OOALV实现方法第一种画屏幕