Sie sind auf Seite 1von 3

Displaying ALV on the Selection Screen

By Srinivas, Satyam Computers


REPORT zalv_sel_screen .
TABLES: mara.
DATA: BEGIN OF i_alv OCCURS 0,
matnr TYPE mara-matnr,
mtart TYPE mara-mtart,
matkl TYPE mara-matkl,
groes TYPE mara-groes,
maktx TYPE makt-maktx,
END OF i_alv.
DATA: alv_container TYPE REF TO cl_gui_docking_container.
DATA: alv_grid
TYPE REF TO cl_gui_alv_grid.
DATA: layout
TYPE lvc_s_layo.
DATA: fieldcat TYPE lvc_t_fcat.
PARAMETERS: p_check.
INITIALIZATION.
PERFORM get_data.
AT SELECTION-SCREEN OUTPUT.
DATA: variant TYPE disvariant.
DATA: repid TYPE sy-repid.
repid = sy-repid.
variant-report = sy-repid.
variant-username = sy-uname.
layout-zebra = 'X'.
layout-edit_mode = 'X'.
CHECK alv_container IS INITIAL.
CREATE OBJECT alv_container
EXPORTING repid
= repid
dynnr
= sy-dynnr
side
= alv_container->dock_at_left
extension = 1500.
CREATE OBJECT alv_grid
EXPORTING
i_parent
= alv_container.
* ALV Specific. Data selection.
* Populate Field Catalog
PERFORM get_fieldcatalog.
CALL METHOD alv_grid->set_table_for_first_display
EXPORTING
is_layout
= layout
is_variant
= variant
i_save
= 'U'
i_structure_name = 'I_ALV'
CHANGING
it_outtab
= i_alv[]
it_fieldcatalog = fieldcat[].
START-OF-SELECTION.
*************************************************************
* FORM GET_DATA
*************************************************************
FORM get_data.
SELECT * INTO CORRESPONDING FIELDS OF TABLE i_alv
FROM mara
INNER JOIN makt
ON mara~matnr = makt~matnr
UP TO 100 ROWS
WHERE makt~spras = sy-langu.
SORT i_alv ASCENDING BY matnr.
ENDFORM.
"get_data
***************************************************************
*
Form Get_Fieldcatalog - Set Up Columns/Headers
****************************************************************
FORM get_fieldcatalog.

DATA: ls_fcat TYPE lvc_s_fcat.


REFRESH: fieldcat.
CLEAR: ls_fcat.
ls_fcat-reptext
= 'Material Number'.
ls_fcat-fieldname = 'MATNR'.
ls_fcat-ref_table = 'I_ALV'.
ls_fcat-outputlen = '18'.
ls_fcat-fix_column = 'X'.
ls_fcat-key
= 'X'.
ls_fcat-col_pos
= '1'.
APPEND ls_fcat TO fieldcat.
CLEAR: ls_fcat.
ls_fcat-reptext
= 'Material Type'.
ls_fcat-fieldname = 'MTART'.
ls_fcat-ref_table = 'I_ALV'.
ls_fcat-outputlen = '10'.
ls_fcat-fix_column = 'X'.
ls_fcat-key
= 'X'.
ls_fcat-col_pos
= '2'.
APPEND ls_fcat TO fieldcat.
CLEAR: ls_fcat.
ls_fcat-reptext
= 'Material Group'.
ls_fcat-fieldname = 'MATKL'.
ls_fcat-ref_table = 'I_ALV'.
ls_fcat-outputlen = '12'.
ls_fcat-col_pos
= '3'.
APPEND ls_fcat TO fieldcat.
CLEAR: ls_fcat.
ls_fcat-reptext
= 'Size'.
ls_fcat-fieldname = 'GROES'.
ls_fcat-ref_table = 'I_ALV'.
ls_fcat-outputlen = '30'.
ls_fcat-col_pos
= '4'.
APPEND ls_fcat TO fieldcat.
CLEAR: ls_fcat.
ls_fcat-reptext
= 'Material Description'.
ls_fcat-fieldname = 'MAKTX'.
ls_fcat-ref_table = 'I_ALV'.
ls_fcat-outputlen = '40'.
ls_fcat-col_pos
= '5'.
APPEND ls_fcat TO fieldcat.
ENDFORM.
"get_fieldcatalog
Output:

Das könnte Ihnen auch gefallen