Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: themax от Сентябрь 04, 2019, 05:07:23 pm

Название: ФМ REUSE_ALV_GRID_DISPLAY
Отправлено: themax от Сентябрь 04, 2019, 05:07:23 pm
Доброго времени суток уважаемые Abaper-ы.

Возник такой вопрос с ФМ REUSE_ALV_GRID_DISPLAY. До этого момента ничего похожего не доводилось делать, поэтому как сделать ума не приложу. В общем данный ФМ выдаёт на экран ALV_GRID внутреннюю табличку. На этом Alv_Grid есть возможность убирать с экрана не нужные поля путём использования обычной кнопки редактирования форматов GUI-статуса. В общем мне нужно поймать ту табличку, что на данный момент отображается на экране с учётом убранных не нужных полей в отображаемом Alv_grid-е. Мне нужна эта обновлённая табличка чтобы передать её в Excel через другой ФМ, а там уже макросами я подправляю некоторые хотелки пользователей. Вот как бы мне поймать уже эту обновлённую табличку alv_grida? Стандартный вариант SAP через кнопку Excel GUI-статуса не подходит, не устраивает пользователей, хотя в стандартном случае он выгружает табличку уже без убранных полей. Я понимаю, что этих ФМ и различных классов для вывода на экран alv_grida уйма, но я попытался сделать то что мне нужно с помощью ФМ REUSE_ALV_GRID_DISPLAY. Может кто делал что то похожее? Буду весьма признателен за совет.
Название: Re: ФМ REUSE_ALV_GRID_DISPLAY
Отправлено: themax от Сентябрь 13, 2019, 07:53:03 am
В общем если кому понадобится, то вот код, который может в режиме реального времени вытащить содержимое полей
Код: You are not allowed to view links. Register or Login
data: gt_fieldcat_local  type  lvc_t_fcat,
go_grid type ref to cl_gui_alv_grid.

form pf_stat_set using rt_extab type slis_t_extab.
  set pf-status 'LISTE_AL'.
  call function 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    importing
      e_grid = go_grid.
endform.
call method go_grid->get_frontend_fieldcatalog
        importing
          et_fieldcatalog = gt_fieldcat_local.
В итоге в gt_fieldcat_local лежит список полей, если поле no_out содержит значение Х, то поле скрыто.