Professional Documents
Culture Documents
-*
*& Report YABAP_750_REPORT
*&-------------------------------------------------------
-*
*&
*&-------------------------------------------------------
-*
REPORT yabap_750_report.
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.
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.
METHOD constructor.
"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.
*-----------------------------------------------------*
*-----------------------------------------------------*
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( ).