Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NOTE: As part of screen design create two screens with screen numbers 0100 and 0101. Also create a
menu named MYMENU with Functional Keys BACK, CANCEL, and EXIT with respective function
codes.
Steps to code an OOP ALV:
1) Populate an internal table with data to be displayed in the ALV report.
2) SE51 in the screen paint a Custom Container component.
3) In the report program PBO module:
a) Create an object of CL_GUI_CUSTOM_CONTAINER and associate it with the Custom
Contianer component in the screen.
b) Create
an
obejct
of
CL_GUI_ALV_GRID
by
setting
the
object
of
CL_GUI_CUSTOM_CONTAINER as its parent.
c) Populate layout properties using the structure LVC_S_LAYO.
d) Populate fieldcatalog properties using the table type LVC_T_FCAT.
e) Invoke the method SET_TABLE_FOR_FIRST_DISPLAY on the obejct of
CL_GUI_ALV_GRID and pass the layout, fieldcatalog and the internal table with data.
OOP ALV With Custom Container
To the screen 0100:
Add the menu MYMENU and in the PAI section of the screen provide appropriate code to handle the
functionality for BACK, CANCEL, and EXIT. See MODULE user_command_0100 INPUT in the
code below. To the layout of this screen add a customer control and name it CC_KNA1.
Flow logic of screen 0100:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
***********
REPORT yalv_oop1.
TYPES: BEGIN OF ty_kna1,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
ort01 TYPE kna1-ort01,
land1 TYPE kna1-land1,
pstlz TYPE kna1-pstlz,
END OF ty_kna1.
DATA: t_kna1 TYPE TABLE OF ty_kna1,
r_cc_kna1 TYPE REF TO cl_gui_custom_container,
r_grid_kna1 TYPE REF TO cl_gui_alv_grid,
s_layout TYPE lvc_s_layo,
t_fcat TYPE lvc_t_fcat.
DATA: g_kunnr TYPE kna1-kunnr.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
ls_fcat-fieldname = 'ORT01'.
ls_fcat-coltext = 'City'.
APPEND ls_fcat TO t_fcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'LAND1'.
ls_fcat-coltext = 'Country'.
APPEND ls_fcat TO t_fcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'PSTLZ'.
ls_fcat-coltext = 'P Code'.
APPEND ls_fcat TO t_fcat.
CLEAR ls_fcat.
ENDFORM.
"populate_fcat
*&---------------------------------------------------------------------*
*&
Form display_alv
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM display_alv .
CREATE OBJECT r_cc_kna1
EXPORTING
container_name = 'CC_KNA1'.
CREATE OBJECT r_grid_kna1
EXPORTING
i_parent = r_cc_kna1.
CALL METHOD r_grid_kna1->set_table_for_first_display
EXPORTING
is_layout
= s_layout
CHANGING
it_outtab
= t_kna1
it_fieldcatalog = t_fcat.
ENDFORM.
"display_alv