Tuesday, November 16, 2010

Displaying ALV on the Selection Screen

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:

No comments:

Tutorials on SAP-ABAP

Adobe Interactive Forms Tutorials

Business Server Pages (BSP)

Userexits/BADIs

Web Dynpro for ABAP (Step by step procedure for web dynpro,Tutorials on Web Dynpro,)

ALV Tutorials

Blog Archive

goodsites