John Doe написал:
эта маленькая книжка просто восхитительна, но к сожалению у меня возникла ошибка в Event Handlers - Event ADDED_FUNCTION
ругается что gc_table null ...
Code:
FORM LIST_MATNR.
select * from zuznospis_log into corresponding fields of table it_zuznospis_log_second
where MATNR_IZD = p_matnr and charg = p_charg and node = ''.
if lt_zuznospis_log_second is not initial.
data: gc_table type ref to cl_salv_table.
data: gc_selections type ref to cl_salv_selections.
data: gc_events TYPE REF TO cl_salv_events_table.
data: event_handler type ref to lcl_handle_events.
cl_salv_table=>factory(
importing
r_salv_table = gc_alv_table
changing
t_table = it_zuznospis_log_second[] ).
gc_alv_table->SET_SCREEN_STATUS(
PFSTATUS = 'SALV_STANDARD'
REPORT = SY-REPID
SET_FUNCTIONS = gc_alv_table->C_FUNCTIONS_ALL ).
тут идет именование столбцов всех
ругается на нее ->>>>> gc_events = gc_table->get_event( ).
create object event_handler.
set handler event_handler->on_user_command for gc_events.
gc_selections = gc_alv_table->get_selections( ).
gc_selections->set_selection_mode( 1 ).
CALL METHOD gc_alv_table->display.
endif.
ENDFORM.
Code:
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS:
on_user_command FOR EVENT added_function OF cl_salv_events
IMPORTING e_salv_function.
ENDCLASS. "lcl_handle_events DEFINITION
Code:
CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_user_command.
DATA: lr_selections TYPE REF TO cl_salv_selections.
DATA: lt_rows TYPE salv_t_row.
DATA: ls_rows TYPE i.
DATA: message TYPE string.
CASE e_salv_function.
WHEN 'MYFUNCTION'.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT_LO'
EXPORTING
titel = 'Внимание!'
textline1 = 'Сообщение!'
start_column = 15
start_row = 6.
ENDCASE.
ENDMETHOD. "on_user_command
ENDCLASS.
не совсем понимаю. где я мог ошибиться, если как "обезъянка" передирал код к себе
и этот кусок
Code:
gc_events = gc_table->get_event( ).
create object event_handler.
set handler event_handler->on_user_command for gc_events.
у меня вызывает вопросы
грубо говоря мы gc_events - передает gc_table со всеми событиями
но как и говорится в ошибке, gc_table пуста же, мы же нигде не перемещаем данные
создаем новый объект - событие ?
и отправляем событие к реализации - а там мы уже забираем функцию myfunction.
но стопорится на gc_events = gc_table->get_event( ).
Подтолкните к решению пожалуйста.