Добрый день уважаемые ABAPer-ы. Я начинающий абапер, пытаюсь изучать код по книжкам, поэтому не судите строго, мне понадобилось сделать даблклик в выводимой табличке, чтобы при даблклике вызывалась транзакция и я не много не допонимаю как мне сделать это. Вот код
Code:
DATA: gc_alv_table TYPE REF TO cl_salv_table,
gc_columns TYPE REF TO cl_salv_columns_table,
gc_colwork TYPE REF TO cl_salv_column_table,
gc_functions TYPE REF TO cl_salv_functions,
gc_display TYPE REF TO cl_salv_display_settings,
gr_table type ref to cl_salv_table.
class lcl_handle_events definition deferred.
data: gr_events type ref to lcl_handle_events.
Ну вот я здесь объвляю свои классы.Объявление внутренних таблиц, типов данных расположены на самом верху, я их не стал вкладывать. Затем пишу следующее:
Code:
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
*---------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
class lcl_handle_events implementation.
method on_double_click.
perform double_click using row column.
endmethod. "on_single_click
endclass.
Затем у меня идёт START-OF-SELECTION., затем я использую вывод таблички на экран с помощью классов, объявленных выше. и с этим вроде бы проблем не наблюдается, но вот чота догонялки чтоли моей не хватает, как сделать вызов транзакции даблклика на выводимой таблички. Затем после вывода таблички на экран пишу
Code:
FORM double_click using i_row type i
i_column type lvc_fname.
data: lr_selections type ref to cl_salv_selections,
ls_cell type salv_s_cell.
CASE i_column.
WHEN 'IM_LIFNR' " Подробно, документы
OR 'IM_BUKRS'.
lr_selections = gr_table->get_selections( ).
ls_cell = lr_selections->get_current_cell( ).
read table im_tab index ls_cell-row.
CLEAR wa.
wa-program = 'SAPMF02K'.
wa-dynpro = '0106'.
wa-dynbegin = 'X'.
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'BDC_OKCODE'.
wa-fval = '/00'.
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'RF02K-LIFNR'.
wa-fval = im_tab-im_lifnr. "Vendor
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'RF02K-BUKRS'.
wa-fval = im_tab-im_bukrs. "Company code
APPEND wa TO bdcdata.
*General data
CLEAR wa.
wa-fnam = 'RF02K-D0110'. "Address
wa-fval = 'X'.
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'RF02K-D0120'. "Control
wa-fval = 'X'.
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'RF02K-D0130'. "Payment transactions
wa-fval = 'X'.
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'WRF02K-D0380'. "contact person
wa-fval = 'X'.
APPEND wa TO bdcdata.
*Company code data
CLEAR wa.
wa-fnam = 'RF02K-D0210'. "account info
wa-fval = 'X'.
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'RF02K-D0215'. "Payment transactions
wa-fval = 'X'.
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'RF02K-D0220'. "correspondence
wa-fval = 'X'.
APPEND wa TO bdcdata.
CLEAR wa.
wa-fnam = 'RF02K-D0610'. "With holding tax
wa-fval = 'X'.
APPEND wa TO bdcdata.
CALL TRANSACTION 'FK03' USING bdcdata MODE 'E'.
ENDCASE.
ENDFORM.
Ошибок ни каких синтаксических но даблклик не работает, пытаюсь щёлкать на поле BUKRS и lifnr ничего не происходит, может кто подскажет что я не так делаю? буду весьма признателен за помощь