SAP code:
*&---------------------------------------------------------------------*
*& Report ZIDA_PROGRAM
*&---------------------------------------------------------------------*
REPORT zida_program.
*&... Get the reference of IDA ALV Object
TRY.
DATA(lo_alv_ida_cds) = cl_salv_gui_table_ida=>create_for_cds_view( iv_cds_view_name = 'DEMO_SFLIGHT' ).
CATCH cx_salv_db_connection INTO FINAL(lx_salv_db_connection).
CATCH cx_salv_db_table_not_supported INTO FINAL(lx_salv_not_supported).
CATCH cx_salv_ida_contract_violation INTO DATA(lx_salv_cont_violation).
CATCH cx_salv_function_not_supported INTO FINAL(lx_salv_fun_not_supported).
ENDTRY.
IF lo_alv_ida_cds IS BOUND.
lo_alv_ida_cds->display_options( RECEIVING ro_display_options = DATA(lo_display_options) ).
lo_display_options->enable_double_click( ).
"Register Events
SET HANDLER double_click FOR ALL INSTANCES..
*&... Get the reference of ALV Full Screen mode
TRY.
DATA(lo_fullscreen_cds) = lo_alv_ida_cds->fullscreen( ).
CATCH cx_salv_ida_contract_violation INTO lx_salv_cont_violation. " IDA API contract violated by caller
ENDTRY.
*&... Display data on UI
IF lo_alv_ida_cds IS BOUND.
lo_fullscreen_cds->display( ).
ENDIF.
ENDIF.
ENDMETHOD.
METHOD double_click.
DATA ls_row TYPE demo_sflight. "Define same CDS view name as mansion for Create object
TRY.
eo_row_data->get_row_data( IMPORTING es_row = ls_row ).
CATCH cx_salv_ida_contract_violation INTO DATA(lx_cont_violation).
CATCH cx_salv_ida_sel_row_deleted INTO DATA(lx_row_deleted).
ENDTRY.
CASE ev_field_name.
WHEN 'CARRID'.
MESSAGE 'Airline Code: ' && ls_row-carrid TYPE 'I'.
WHEN 'CONNID'.
MESSAGE 'Flight Number: ' && ls_row-connid TYPE 'I'.
ENDCASE.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA(lo_ida_class) = NEW lcl_ida_program( ).
lo_ida_class->display_cds_data( ).
Output:
Key Concept:
No comments:
Post a Comment