SAPфорум.RU
https://sapboard.ru/forum/

Два ALV на экране
https://sapboard.ru/forum/viewtopic.php?f=13&t=96464
Страница 1 из 1

Автор:  exotik [ Пт, июн 01 2018, 11:38 ]
Заголовок сообщения:  Два ALV на экране

Добрый день!
Необходимо чтоб при двойном клике, снизу появлялась доп. информация. Второй экран выводится новым окном, пробовал создать экран, он так же выводился не поверх, а новым окном. Необходимо чтоб вызывался экран с закладкамию
Code:
*обработка двойного клика*
METHOD on_double_click.
    clear ls_result_tab.
    read table lt_result_tab index row into ls_result_tab.
    perform display_alv_detail.
  ENDMETHOD.   

clear ls_lna_reqempl.
clear lt_lna_details.

loop at lt_lna_reqempl_res into ls_lna_reqempl_res
  where reqid = ls_result_tab-reqid.
append ls_lna_reqempl_res to lt_lna_details.
endloop.

DATA:
    lo_table      TYPE REF TO cl_salv_table,
    lo_events     TYPE REF TO cl_salv_events_table,
    lo_columns    TYPE REF TO cl_salv_columns_table,
    lo_column     TYPE REF TO cl_salv_column_list.
TRY.
      CALL METHOD cl_salv_table=>factory
        IMPORTING
          r_salv_table = lo_table
        CHANGING
          t_table      = lt_lna_details.
      lo_table->display( ).
endtry.
  endform.

Автор:  Kuranov.Dmitry [ Пт, июн 01 2018, 12:27 ]
Заголовок сообщения:  Re: Два ALV на экране

Вариант 1: второй экран создать как подэкран
Вариант 2: оставить всего 1 экран, и сделать два контейнера алв на одном экране.

я бы пошел по варианту 2.

создал два алв на одном экране, и первый алв управляет наполнением и параметром видимости второго алв

Автор:  exotik [ Пт, июн 01 2018, 13:20 ]
Заголовок сообщения:  Re: Два ALV на экране

Kuranov.Dmitry написал(а):
Вариант 1: второй экран создать как подэкран
Вариант 2: оставить всего 1 экран, и сделать два контейнера алв на одном экране.

я бы пошел по варианту 2.

создал два алв на одном экране, и первый алв управляет наполнением и параметром видимости второго алв


Необходима чтоб первая таблица была видна в полный экран. А второй появлялся только по клику и закрывался по кнопке, со множеством подэкранов на нем. С двумя контейнерами такое же не будет реализовано?

Автор:  Kuranov.Dmitry [ Пт, июн 01 2018, 13:47 ]
Заголовок сообщения:  Re: Два ALV на экране

Ну можно тогда вроде как модальное окно замутить. Не очень понятно как вы видите интерфейс, если таблица на весь экран, то как вы снизу подрисуете еще одну?
Или вы хотите, чтоб при дабл клике она поджималасбь оставляя место?

как вариант, сделать второй экран, и делать CALL SCREEN 0200 STARTING AT 10 10.

Автор:  Besa [ Пт, июн 01 2018, 13:54 ]
Заголовок сообщения:  Re: Два ALV на экране

exotik написал(а):
Kuranov.Dmitry написал(а):
Вариант 1: второй экран создать как подэкран
Вариант 2: оставить всего 1 экран, и сделать два контейнера алв на одном экране.

я бы пошел по варианту 2.

создал два алв на одном экране, и первый алв управляет наполнением и параметром видимости второго алв


Необходима чтоб первая таблица была видна в полный экран. А второй появлялся только по клику и закрывался по кнопке, со множеством подэкранов на нем. С двумя контейнерами такое же не будет реализовано?

Воспользуйтесь поиском, это решаемо ALV + SPLITTER CONTROL

Автор:  exotik [ Пт, июн 01 2018, 14:07 ]
Заголовок сообщения:  Re: Два ALV на экране

Kuranov.Dmitry написал(а):
Ну можно тогда вроде как модальное окно замутить. Не очень понятно как вы видите интерфейс, если таблица на весь экран, то как вы снизу подрисуете еще одну?
Или вы хотите, чтоб при дабл клике она поджималасбь оставляя место?

как вариант, сделать второй экран, и делать CALL SCREEN 0200 STARTING AT 10 10.



чтобы при дабл клике поджималсь, именно так

Автор:  Rizor [ Пт, июн 01 2018, 14:38 ]
Заголовок сообщения:  Re: Два ALV на экране

Если надо просто 2 alv и разделитель. То делим исходный контейнер на 2 с помощью cl_gui_splitter_container и в дочерних контейнерах создаём нужные ALV, управляем разделителем с помощью cl_gui_splitter_container->set_row_high( ).
Если надо именно 2 экрана и разделитель. То добавляем на основной экран "Элемент управления Разделитель", в него добавляем подэкраны. Далее управляем разделителем с помощью cl_dynpro_splitter->set_sash( )

Автор:  Malych [ Пт, июн 01 2018, 15:39 ]
Заголовок сообщения:  Re: Два ALV на экране

вывод ФМ

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
....
i_screen_start_column = 10
i_screen_start_line = 4
i_screen_end_column = 90
i_screen_end_line = 30
TABLES
t_outtab = table
EXCEPTIONS
program_error = 1
OTHERS = 2.

и размер указывайте какой надо и поверх всех окон... ))))

Автор:  AFH [ Пн, июн 04 2018, 09:43 ]
Заголовок сообщения:  Re: Два ALV на экране

Есть еще CL_GUI_DOCKING_CONTAINER - можно программно цеплять и отцеплять к краям экрана плавающий контейнер. Если вам надо чтобы во втором окне был именно стандартный экран абап - то выводите грид в докинг контейнер полностью перекрывающий экран и когда надо - сжимайте докинг контейнер чтобы под ним проявился стандартный экран.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/