Hello everbody:
I have the next excecption when I run my code : cx_salv_objetc_not_found
This is my code:
REPORT ZABRE005.
*----------------------------------------------------------------------*
* INCLUDES *
*----------------------------------------------------------------------*
INCLUDE ZABRE005A. "Datos y Parametros Globales
INCLUDE ZABRE005B. "Subrutinas
*----------------------------------------------------------------------*
* Proceso Principal
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM f_get_data.
END-OF-SELECTION.
IF NOT gt_data[] IS INITIAL. "is initial = vacia, if not tab[] is inital = sino esta vacia ejecuta perform
PERFORM f_procesar.
PERFORM f_alv_grid_display.
ENDIF.
**************************************************************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZABRE005A
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Includes
*----------------------------------------------------------------------*
INCLUDE <icon>.
*----------------------------------------------------------------------*
* TABLES / NODES
*----------------------------------------------------------------------*
TABLES: sflight.
*----------------------------------------------------------------------*
* Tipos
*----------------------------------------------------------------------*
TYPES: BEGIN OF ty_data.
INCLUDE STRUCTURE sflight.
TYPES:
carrname TYPE s_carrname,
cityfrom TYPE s_from_cit,
cityto TYPE s_to_city.
TYPES: END OF ty_data.
*----------------------------------------------------------------------*
* Tablas / Estructuras
*----------------------------------------------------------------------*
DATA: gt_data TYPE TABLE OF ty_data,
gs_data TYPE ty_data.
*----------------------------------------------------------------------*
* Reporte ALV
*----------------------------------------------------------------------*
DATA:
r_container TYPE REF TO cl_gui_custom_container,
lr_columns TYPE REF TO cl_salv_columns_table,
lr_column TYPE REF TO cl_salv_column,
alv_table TYPE REF TO cl_salv_table. "referencia a la clase table del alv
** Declaration for ALV Grid **
DATA : gr_table TYPE REF TO cl_salv_table.
** Declarations for ALV Functions
DATA : gr_functions TYPE REF TO cl_salv_functions_list.
** Declarations for ALV Events
DATA: gr_events TYPE REF TO cl_salv_events_table.
** declaration for ALV Columns
DATA : gr_columns TYPE REF TO cl_salv_columns_table,
gr_column_table TYPE REF TO cl_salv_column_table,
gr_column TYPE REF TO cl_salv_column,
lt_column_ref TYPE salv_t_column_ref,
ls_column_ref TYPE salv_s_column_ref.
** declaration for Layout Settings
DATA : gr_layout TYPE REF TO cl_salv_layout,
gr_layout_key TYPE salv_s_layout_key,
ls_layout TYPE salv_s_layout,
lt_layout_info TYPE salv_t_layout_info.
** Declaration for Global Display Settings
DATA : gr_display TYPE REF TO cl_salv_display_settings,
lv_title TYPE lvc_title.
** Declaration for Aggregate Function Settings
DATA : gr_aggr TYPE REF TO cl_salv_aggregations.
** Declaration for Sort Function Settings
DATA : gr_sort TYPE REF TO cl_salv_sorts.
** Declaration for Table Selection settings
DATA : gr_select TYPE REF TO cl_salv_selections.
** Declaration for Top of List settings
DATA : gr_content TYPE REF TO cl_salv_form_element.
DATA:
*- Individual Column
lt_salv_not_found TYPE REF TO cx_salv_not_found,
*- Exception class
lv_msg TYPE string,
lv_col_l TYPE scrtext_l,
lv_col_m TYPE scrtext_m,
lv_col_s TYPE scrtext_s.
*----------------------------------------------------------------------*
* Parametros
*----------------------------------------------------------------------*
SELECT-OPTIONS:
s_carrid FOR sflight-carrid,
s_connid FOR sflight-connid,
s_fldate FOR sflight-fldate.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS:
on_user_command FOR EVENT added_function OF cl_salv_events IMPORTING e_salv_function,
hotspot_click FOR EVENT link_click OF cl_salv_events_table IMPORTING row column.
ENDCLASS. "lcl_handle_events DEFINITION
DATA:
event_handler TYPE REF TO lcl_handle_events.
***********************************************************************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZABRE005B
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------
CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_user_command.
CASE sy-ucomm.
* WHEN 'SNDTIM'.
* PERFORM f_sndtim_data.
* WHEN 'SNDCAN'.
* PERFORM f_sndcan_data.
* WHEN 'IMPXML'.
* PERFORM f_impxml_data.
* WHEN 'VIEXML'.
* PERFORM f_viexml_data.
WHEN 'REFRESH'.
PERFORM f_refresh_data.
* WHEN 'BDS'.
* PERFORM f_bds_data.
* WHEN 'DELETE'.
* PERFORM f_delete_data.
* WHEN 'MAIL'.
* PERFORM f_mail_data.
* WHEN 'PDF'.
* PERFORM f_pdf_data.
* WHEN 'PRNCFDI'.
* PERFORM f_print_data.
* WHEN OTHERS.
ENDCASE.
ENDMETHOD. "on_user_command
* Method that check the event of double click in the grid *
METHOD hotspot_click.
READ TABLE gt_data INDEX row INTO gs_data.
CHECK sy-subrc = 0.
CASE column.
WHEN 'CARRID'.
CALL FUNCTION 'DR_DISPLAY_CARRID'
EXPORTING
carrid = gs_data-carrid.
* SET PARAMETER ID 'VF' FIELD gs_data-vbeln.
* CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
* WHEN 'KUNRG'.
* SET PARAMETER ID 'KUN' FIELD gs_data-kunrg.
* CALL TRANSACTION 'FD03' AND SKIP FIRST SCREEN.
* WHEN 'BELNR'.
* SET PARAMETER ID 'BLN' FIELD gs_data-belnr.
* SET PARAMETER ID 'BUK' FIELD gs_data-bukrs.
* SET PARAMETER ID 'GJR' FIELD gs_data-gjahr.
* CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDMETHOD. "handle_double_click
ENDCLASS. "lcl_handle_events IMPLEMENTATION
*&---------------------------------------------------------------------*
*& Form F_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_get_data .
REFRESH gt_data.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gt_data
FROM sflight AS a
LEFT OUTER JOIN scarr AS b ON b~carrid = a~carrid
LEFT OUTER JOIN spfli AS c ON c~carrid = a~carrid AND
c~connid = a~connid
WHERE
a~carrid IN s_carrid AND
a~connid IN s_connid AND
a~fldate IN s_fldate.
ENDFORM. " F_GET_DATA
*&---------------------------------------------------------------------*
*& Form F_PROCESAR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_procesar .
FIELD-SYMBOLS: <fs_data> TYPE ty_data.
LOOP AT gt_data ASSIGNING <fs_data>.
ENDLOOP.
ENDFORM. " F_PROCESAR
*&---------------------------------------------------------------------*
*& Form F_ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_alv_grid_display .
CLEAR : gr_table.
TRY.
CALL METHOD cl_salv_table=>factory
EXPORTING
list_display = if_salv_c_bool_sap=>false
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = gt_data.
CATCH cx_salv_msg .
ENDTRY.
IF gr_table IS INITIAL.
MESSAGE 'Error Creando ALV Grid ' TYPE 'I' DISPLAY LIKE 'E'.
STOP.
ENDIF.
** SET PF-STATUS
gr_table->set_screen_status(
pfstatus = 'SALV_TABLE_STANDARD'
report = sy-repid
set_functions = gr_table->c_functions_all ).
** Set Customer Events
gr_events = gr_table->get_event( ).
CREATE OBJECT event_handler.
SET HANDLER event_handler->on_user_command FOR gr_events.
SET HANDLER event_handler->hotspot_click FOR gr_events.
** Get functions details
gr_functions = gr_table->get_functions( ).
** Activate All Buttons in Tool Bar
gr_functions->set_all( if_salv_c_bool_sap=>true ).
******* Layout Settings *******
CLEAR : gr_layout, gr_layout_key.
MOVE sy-repid TO gr_layout_key-report. "Set Report ID as Layout Key"
gr_layout = gr_table->get_layout( ). "Get Layout of Table"
gr_layout->set_key( gr_layout_key ). "Set Report Id to Layout"
gr_layout->set_save_restriction( if_salv_c_layout=>restrict_none ). "No Restriction to Save Layout"
* IF p_var IS INITIAL.
gr_layout->set_default( if_salv_c_bool_sap=>true ). "Set Default Variant"
* ELSE.
* gr_layout->set_initial_layout( p_var ). "Set the Selected Variant as Initial"
* ENDIF.
******* Global Display Settings *******
CLEAR : gr_display.
lv_title = text-t01.
gr_display = gr_table->get_display_settings( ). " Global Display settings"
gr_display->set_striped_pattern( if_salv_c_bool_sap=>true ). "Activate Strip Pattern"
gr_display->set_list_header( lv_title ). "Report Header"
*- Get all the Columns
gr_columns = gr_table->get_columns( ).
*- Set Column optimization
gr_columns->set_optimize( 'X' ).
* CALL METHOD gr_table->set_toolbar_interactive.
*... §7 selections
DATA: lr_selections TYPE REF TO cl_salv_selections.
lr_selections = gr_table->get_selections( ).
*... §7.1 set selection mode
lr_selections->set_selection_mode( if_salv_c_selection_mode=>row_column ).
*----------------------------------------------------------------------*
* Set column names
*----------------------------------------------------------------------*
TRY.
gr_column ?= gr_columns->get_column( 'MANDT' ).
gr_column->set_technical( abap_true ).
gr_column_table ?= gr_columns->get_column( 'CARRID' ).
gr_column_table->set_cell_type( if_salv_c_cell_type=>hotspot ).
*
* gr_column_table ?= gr_columns->get_column( 'KUNRG' ).
* gr_column_table->set_cell_type( if_salv_c_cell_type=>hotspot ).
*
* gr_column_table ?= gr_columns->get_column( 'BELNR' ).
* gr_column_table->set_cell_type( if_salv_c_cell_type=>hotspot ).
*
* gr_column ?= gr_columns->get_column( 'XML_CNT' ).
* gr_column->set_long_text( 'XML' ).
* gr_column->set_medium_text( 'XML' ).
* gr_column->set_short_text( 'XML' ).
*
* gr_column ?= gr_columns->get_column( 'PDF_CNT' ).
* gr_column->set_long_text( 'PDF' ).
* gr_column->set_medium_text( 'PDF' ).
* gr_column->set_short_text( 'PDF' ).
CATCH cx_salv_not_found.
CATCH cx_salv_existing.
CATCH cx_salv_data_error.
ENDTRY.
*----------------------------------------------------------------------*
* Excluir Botones
*----------------------------------------------------------------------*
* TRY.
* CALL METHOD gr_functions->set_function
* EXPORTING
* name = 'SNDTIM'
* boolean = space.
*
* CATCH cx_salv_not_found .
* CATCH cx_salv_wrong_call .
* ENDTRY.
*----------------------------------------------------------------------*
* Mostrar Reporte
*----------------------------------------------------------------------*
CALL METHOD gr_table->display.
ENDFORM. " F_ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
*& Form F_REFRESH_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_refresh_data .
PERFORM f_get_data.
PERFORM f_procesar.
gr_table->refresh( ).
ENDFORM. " F_REFRESH_DATA