понедельник, 24 марта 2014 г.

Быстрый способ вывода ALV

Реализовано все на том же классе CL_SALV_TABLE. 
Что нужно:
Создаем экран.
Помещаем на него «спец. упр. элемент» и называем его, например 'CONT'.
В PBO экрана создаем модуль, внутрь которого копируем код указанный внизу, подставляем свою внутреннюю таблицу и вызываем экран.

data:
  gr_container 
type ref to cl_gui_custom_container,
      gr_table 
type ref to cl_salv_table,
  gr_functions 
type ref to cl_salv_functions_list.


  
if gr_container is not bound.

    
create object gr_container
      
exporting
        container_name 
'CONT'.


    
try.
        cl_salv_table
=>factory(
          
exporting
            r_container    
gr_container
            container_name 
'CONT'
          
importing
            r_salv_table   
gr_table
          
changing
            t_table        
gt_outtab ). "это наша табл. с данными
      catch cx_salv_msg.
    endtry.

"это функциональные кнопки для ALV (выводить по желанию)
   
 gr_functions gr_table->get_functions( ).
    gr_functions
->set_default( ).
"вывод alv
    gr_table
->display( ).
  
endif.
Я пользуюсь этим способом для вывода каких-либо журналов работы, справочной информации и т.п. Очень удобно и быстро.

2 комментария:

  1. Здравствуйте, Николай. Спасибо за ваш блог, нашел для себя полезную информацию.
    По данному примеру вывода ALV возник небольшой вопрос: Где задается привязка контейнера к экрану программы?

    ОтветитьУдалить
    Ответы
    1. Здравствуйте.
      Контейнер помещается непосредственно на экран программы, в редакторе экранов, это и будет привязка контейнера к экрану. Запускается редакторе экранов (screen painter), по кнопке формат (layout). Наберите в поисковике screen painter sap и посмотрите как он выглядит.

      Удалить