Вот рабочий код по добавлению новой строки по событию дабл-клик и установке "фокуса" на нее.
Code:
DATA: it_vbap TYPE TABLE OF vbap.
DATA: gr_table TYPE REF TO cl_salv_table.
DATA: gr_selections TYPE REF TO cl_salv_selections.
DATA: gr_events TYPE REF TO cl_salv_events_table.
DATA: it_rows TYPE salv_t_row.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS: on_double_click
FOR EVENT double_click OF cl_salv_events_table
IMPORTING row column.
ENDCLASS. "lcl_handle_events DEFINITION
DATA: event_handler TYPE REF TO lcl_handle_events.
START-OF-SELECTION.
SELECT * INTO TABLE it_vbap FROM vbap UP TO 150 ROWS.
cl_salv_table=>factory( IMPORTING r_salv_table = gr_table CHANGING t_table = it_vbap ).
gr_selections = gr_table->get_selections( ).
gr_selections->set_selection_mode( 1 ).
gr_events = gr_table->get_event( ).
CREATE OBJECT event_handler.
SET HANDLER event_handler->on_double_click FOR gr_events.
gr_table->display( ).
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_double_click.
APPEND '1530000000777000001Fuflo' TO it_vbap.
DESCRIBE TABLE it_vbap LINES sy-tfill.
APPEND sy-tfill TO it_rows.
gr_selections->set_selected_rows( it_rows ).
gr_table->refresh( ).
ENDMETHOD. "on_double_click
ENDCLASS. "lcl_handle_events IMPLEMENTATION
В моей системе отрабатывает корректно.