Простой пример использования cl_salv_table.
" Контейнер для ALV, чтобы сработало добавление кнопки " В противном случае можно обойтись без контейнера DATA(lo_container) = NEW cl_gui_custom_container( container_name = 'CONTAINER_9001' ). TRY. cl_salv_table=>factory( EXPORTING r_container = lo_container IMPORTING r_salv_table = DATA(lo_salv) CHANGING t_table = mt_data ). CATCH cx_salv_msg. RETURN. ENDTRY. DATA(lo_settings) = lo_salv->get_display_settings( ). " Установка заголовка lo_settings->set_list_header( 'Data' ). lo_settings->set_list_header_size( cl_salv_display_settings=>c_header_size_medium ). DATA(lo_functions) = lo_salv->get_functions( ). " Добавить стандартные кнопки lo_functions->set_all( 'X' ). TRY . " Добавление кнопки " Чтобы сработало, надо создавать ALV в контейнере lo_functions->add_function( EXPORTING name = 'ZBUT01' * icon = text = |{ 'Button 1' }| tooltip = |{ 'Button 1' }| position = if_salv_c_function_position=>right_of_salv_functions ). CATCH cx_salv_existing cx_salv_wrong_call. " ToDo ENDTRY. TRY . " Сделать кнопку неактивной lo_functions->enable_function( EXPORTING name = 'ZBUT01' boolean = abap_false ). CATCH cx_salv_wrong_call cx_salv_not_found. " ToDo ENDTRY. DATA(lo_columns) = lo_salv->get_columns( ). TRY . " Задать свойства столбцу DATA(lo_column) = lo_columns->get_column( columnname = 'MANDT' ). lo_column->set_visible( if_salv_c_bool_sap=>false ). CATCH cx_salv_not_found. " ToDo ENDTRY. DATA(lo_events) = lo_salv->get_event( ). " Добавить обработчики событий SET HANDLER lcl_report=>added_function FOR lo_events. SET HANDLER lcl_report=>double_click FOR lo_events. lo_salv->display( ).
Комментариев нет:
Отправить комментарий