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.