0% found this document useful (0 votes)
47 views4 pages

Class ABAP

This document defines a class called LCL_ALV that is used to generate and display an ALV report of flight data. The class contains methods to retrieve flight data based on carrier and connection IDs, populate an internal table, and display the data in an ALV grid. An instance of the class is created on program start which calls the start_report_process method to retrieve the flights and display the report, handling any errors.

Uploaded by

bruno.408118282
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views4 pages

Class ABAP

This document defines a class called LCL_ALV that is used to generate and display an ALV report of flight data. The class contains methods to retrieve flight data based on carrier and connection IDs, populate an internal table, and display the data in an ALV grid. An instance of the class is created on program start which calls the start_report_process method to retrieve the flights and display the report, handling any errors.

Uploaded by

bruno.408118282
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

*&-------------------------------------------------------

-*
*& Report YABAP_750_REPORT
*&-------------------------------------------------------
-*
*&
*&-------------------------------------------------------
-*
REPORT yabap_750_report.

CLASS lcl_alv DEFINITION FINAL.

PUBLIC SECTION.

CONSTANTS :
information TYPE sy-msgty VALUE 'I'.

TYPES :
tt_flights TYPE STANDARD TABLE OF sflight
WITH EMPTY KEY.
"... add more types here

METHODS :
constructor IMPORTING i_carrier TYPE sflight-
carrid
i_connection TYPE sflight-
connid,
start_report_process RETURNING VALUE(r_error)
TYPE char1.

"... add more public methods here

PROTECTED SECTION.
"Add protected data/methods if needed

PRIVATE SECTION.

DATA :
carrier TYPE sflight-carrid,
connection TYPE sflight-connid,
flights TYPE tt_flights.
"... add more data declarations here

METHODS :
get_flights RETURNING VALUE(rt_flights)
TYPE tt_flights,
display_flights RETURNING VALUE(r_error)
TYPE char1.
"... add more private methods here

ENDCLASS.

CLASS lcl_alv IMPLEMENTATION.

METHOD constructor.

"Set variables based on called parameters


carrier = i_carrier.
connection = i_connection.

"Initialize attributes
CLEAR flights.

ENDMETHOD.

METHOD start_report_process.

CLEAR r_error.

flights = get_flights( ).
IF flights IS INITIAL.
MESSAGE e001(00) WITH 'No data found'(002) INTO
DATA(lv_error).
r_error = abap_true.
ELSE.
r_error = display_flights( ).
ENDIF.

ENDMETHOD.

METHOD get_flights.
CLEAR rt_flights.
SELECT * FROM sflight INTO TABLE @rt_flights
WHERE carrid = @carrier
AND connid = @connection.
ENDMETHOD.

METHOD display_flights.
CLEAR r_error.
TRY.
"Create ALV table object for the output data tabl
e
cl_salv_table=>factory(
IMPORTING r_salv_table = DATA(lo_table)
CHANGING t_table = flights ).

lo_table->get_functions( )->set_all( ).
lo_table->get_columns( )->set_optimize( ).
lo_table->display( ).

CATCH cx_root.
MESSAGE e001(00) WITH 'Error in ALV creation'(003
)
INTO DATA(lv_error).
r_error = abap_true.
ENDTRY.
ENDMETHOD.

"... add more methods implementation here


ENDCLASS.

*-----------------------------------------------------*

"... build selection screen here or in another include


SELECTION-SCREEN BEGIN OF BLOCK main_block
WITH FRAME TITLE TEXT-001.
PARAMETERS : carrid TYPE sflight-carrid,
connid TYPE sflight-connid.
SELECTION-SCREEN END OF BLOCK main_block.

*-----------------------------------------------------*

START-OF-SELECTION.
"Create object for the class
DATA(o_alv) = NEW lcl_alv( i_carrier = carrid
i_connection = connid ).
"Start the main process
DATA(lv_error) = o_alv->start_report_process( ).

* Below code issues error & goes back to selection screen


* This is better implemented with exceptions, though
IF lv_error IS NOT INITIAL.
MESSAGE ID sy-msgid
TYPE lcl_alv=>information
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
DISPLAY LIKE sy-msgty.
LEAVE LIST-PROCESSING.
ENDIF.

You might also like