Académique Documents
Professionnel Documents
Culture Documents
0
Exercises: ABAP List Viewer
Chapter 1
Exercise 1.1
Create a program that uses REUSE_ALV_LIST_DISPLAY function module to show Airline and
Flight Schedule from SCARR (Airline) and SPFLI (Flight schedule).
1. Populate the Field Catalog before calling the AVL List display function module.
2. Display the following columns in the output.
* Initialization fieldcatalog
INITIALIZATION.
g_repid = sy-repid.
PERFORM fieldcat_init CHANGING gt_fieldcat[].
* Data selection
Dec-2008
Page 1
ECC 6.0
Exercises: ABAP List Viewer
START-OF-SELECTION.
PERFORM select_data CHANGING gt_outtab.
* Display list
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM
IT_FIELDCAT
TABLES
t_outtab
= g_repid
= gt_fieldcat[]
= gt_outtab.
*---------------------------------------------------------------------*
Forms
*---------------------------------------------------------------------* Initialization fieldcatalog
FORM fieldcat_init
CHANGING rt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: pos TYPE i VALUE 1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos
ls_fieldcat-fieldname
ls_fieldcat-key
APPEND ls_fieldcat TO
= pos.
= 'CARRID'.
= 'X'.
rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'CARRNAME'.
ls_fieldcat-ref_fieldname = 'CARRNAME'.
ls_fieldcat-ref_tabname
= 'SCARR'.
APPEND ls_fieldcat TO rt_fieldcat.
Dec-2008
Page 2
ECC 6.0
Exercises: ABAP List Viewer
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'CONNID'.
ls_fieldcat-ref_fieldname = 'CONNID'.
ls_fieldcat-ref_tabname
= 'SPFLI'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'CITYFROM'.
ls_fieldcat-ref_fieldname = 'CITYFROM'.
ls_fieldcat-ref_tabname
= 'SPFLI'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'AIRPFROM'.
ls_fieldcat-ref_fieldname = 'AIRPFROM'.
ls_fieldcat-ref_tabname
= 'SPFLI'.
ls_fieldcat-no_out
= 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'CITYTO'.
ls_fieldcat-ref_fieldname = 'CITYTO'.
ls_fieldcat-ref_tabname
= 'SPFLI'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'AIRPTO'.
ls_fieldcat-ref_fieldname = 'AIRPTO'.
ls_fieldcat-ref_tabname
= 'SPFLI'.
ls_fieldcat-no_out
= 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
Dec-2008
Page 3
ECC 6.0
Exercises: ABAP List Viewer
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'ARRTIME'.
ls_fieldcat-ref_fieldname = 'ARRTIME'.
ls_fieldcat-ref_tabname
= 'SPFLI'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'DISTANCE'.
ls_fieldcat-ref_fieldname = 'DISTANCE'.
ls_fieldcat-ref_tabname
= 'SPFLI'.
ls_fieldcat-no_out
= 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos
= pos.
ls_fieldcat-fieldname
= 'DISTID'.
ls_fieldcat-ref_fieldname = 'DISTID'.
ls_fieldcat-ref_tabname
= 'SPFLI'.
ls_fieldcat-no_out
= 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
ENDFORM.
"fieldcat_init
* Data selection
FORM select_data
CHANGING rt_outtab LIKE gt_outtab[].
SELECT DISTINCT scarr~carrid scarr~carrname
spfli~connid spfli~cityfrom
spfli~airpfrom spfli~cityto
spfli~airpto
spfli~arrtime spfli~distance
spfli~distid
INTO CORRESPONDING FIELDS OF TABLE rt_outtab
FROM scarr INNER JOIN spfli
ON scarr~carrid = spfli~carrid
WHERE scarr~carrid BETWEEN 'AA' AND 'LH'.
ENDFORM.
" select_data
Dec-2008
Page 4
ECC 6.0
Exercises: ABAP List Viewer
Exercise 1.2
Create a program that uses REUSE_ALV_GRID_DISPLAY function module to show the content
of YCONCERT table.
1. Modify the program so that the report displays a title Concert Information as report title.
2. Change the display position of CDATE as column 1 and ARTIST as column 2.
3. Do not show the column MAXSEATS in the output.
4. Optimize width of the output columns.
Solution:
*&---------------------------------------------------------------------*
*& Report YALVXX01_2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YALVXX01_2.
* Data declaration
TYPE-POOLS: slis.
TYPES : BEGIN OF
artist
cdate
occupied
maxseats
location
price
t_outtab ,
TYPE char30,
" Artist Name
TYPE datum,
" Concert Date
TYPE numc2, " Occupied Seats
TYPE numc2, " Maximum Seats
TYPE char10, " Concert Location
TYPE zprice,
" Price of Concert Ticket
Dec-2008
Page 5
ECC 6.0
Exercises: ABAP List Viewer
END OF t_outtab.
TYPES : ty_outtab TYPE STANDARD TABLE OF t_outtab.
DATA:
gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA:
gt_outtab TYPE STANDARD TABLE OF t_outtab.
DATA:
g_repid LIKE sy-repid.
DATA:
wa_layout TYPE slis_layout_alv, "ALV Layout
* Initialization fieldcatalog
initialization.
g_repid = sy-repid.
* Preapare the Field Catalog
PERFORM fieldcat_init CHANGING gt_fieldcat[].
* Customize the Layout
wa_layout-colwidth_optimize = 'X'.
* Data selection
START-OF-SELECTION.
PERFORM select_data CHANGING gt_outtab.
* Display Grid output
END-OF-SELECTION.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
'
'
'
g_repid
'
'
'
'
'
'
wa_layout
gt_fieldcat[]
Dec-2008
Page 6
ECC 6.0
Exercises: ABAP List Viewer
*
IT_FILTER
=
*
IS_SEL_HIDE
=
*
I_DEFAULT
= 'X'
*
I_SAVE
= ' '
*
IS_VARIANT
=
*
IT_EVENTS
=
*
IT_EVENT_EXIT
=
*
IS_PRINT
=
*
IS_REPREP_ID
=
*
I_SCREEN_START_COLUMN
= 0
*
I_SCREEN_START_LINE
= 0
*
I_SCREEN_END_COLUMN
= 0
*
I_SCREEN_END_LINE
= 0
*
I_HTML_HEIGHT_TOP
= 0
*
I_HTML_HEIGHT_END
= 0
*
IT_ALV_GRAPHICS
=
*
IT_HYPERLINK
=
*
IT_ADD_FIELDCAT
=
*
IT_EXCEPT_QINFO
=
*
IR_SALV_FULLSCREEN_ADAPTER
=
* IMPORTING
*
E_EXIT_CAUSED_BY_CALLER
=
*
ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= gt_outtab
EXCEPTIONS
program_error
= 1
OTHERS
= 2
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*---------------------------------------------------------------------*
Forms
*---------------------------------------------------------------------* Initialization fieldcatalog
FORM fieldcat_init
USING rt_fieldcat TYPE slis_t_fieldcat_alv.
Dec-2008
Page 7
ECC 6.0
Exercises: ABAP List Viewer
*
*
*
*
Output
= 'X'.
FROM ls_fieldcat TRANSPORTING no_out
'MAXSEATS'.
ELSE.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
"FIELDCAT_INIT
*&--------------------------------------------------------------------*
*&
Form SELECT_DATA
Dec-2008
Page 8
ECC 6.0
Exercises: ABAP List Viewer
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
*
-->RT_OUTTAB text
*---------------------------------------------------------------------*
FORM select_data CHANGING rt_outtab TYPE ty_outtab.
SELECT artist
" Artist Name
cdate
" Concert Date
occupied " Occupied Seats
maxseats " Maximum Seats
location " Concert Location
price
" Price of Concert Ticket
FROM
yconcert " Concert Table
INTO TABLE gt_outtab.
ENDFORM.
"SELECT_DATA
Dec-2008
Page 9