Текущее время: Чт, мар 28 2024, 11:29

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: ФМ REUSE_ALV_GRID_DISPLAY
СообщениеДобавлено: Ср, сен 04 2019, 17:03 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Добрый день уважаемые Abaper-ы.

Возник такой вопрос с ФМ REUSE_ALV_GRID_DISPLAY. До этого момента ничего похожего не доводилось делать, поэтому как сделать ума не приложу. В общем данный ФМ выдаёт на экран ALV_GRID внутреннюю табличку. На этом Alv_Grid есть возможность убирать с экрана не нужные поля путём использования обычной кнопки редактирования форматов GUI-статуса. В общем мне нужно поймать ту табличку, что на данный момент отображается на экране с учётом убранных не нужных полей в отображаемом Alv_grid-е. Мне нужна эта обновлённая табличка чтобы передать её в Excel через другой ФМ, а там уже макросами я подправляю некоторые хотелки пользователей. Вот как бы мне поймать уже эту обновлённую табличку alv_grida? Стандартный вариант SAP через кнопку Excel GUI-статуса не подходит, не устраивает пользователей, хотя в стандартном случае он выгружает табличку уже без убранных полей. Я понимаю, что этих ФМ и различных классов для вывода на экран alv_grida уйма, но я попытался сделать то что мне нужно с помощью ФМ REUSE_ALV_GRID_DISPLAY. Может кто делал что то похожее? Буду весьма признателен за совет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ REUSE_ALV_GRID_DISPLAY
СообщениеДобавлено: Чт, сен 05 2019, 08:09 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
так настраиваете предварительно кнопкой "кубик-рубик" в ALVхе необходимый Формат вывода, с нужными полями, фильтрами, сортировкой, субитогами и проч.
Потом в инструкцию пользователя прописываете чтото вроде "перед выгрузкой в эксель выберите формат такойто". Либо явно наименование этого формата передаёте в вызов ФМа REUSE, он тогда сразу применится.

Там одна беда с теми Форматами - нет штатного механизма защиты Формата от изменений другими пользователями (как например галочка "Защитить вариант" у Вариантов селекционного экрана). А то пользователи-рукож*пы любят ставить галку "по умолчанию", и рано или поздно перезатирают Формат какимто другим.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ REUSE_ALV_GRID_DISPLAY
СообщениеДобавлено: Чт, сен 05 2019, 08:13 
Специалист
Специалист

Зарегистрирован:
Пт, июл 27 2007, 13:06
Сообщения: 137
Надо смотреть поле no_out в каталоге полей.
Если работать напрямую с cl_gui_alv_grid, то его можно дергать через get_frontend_fieldcatalog(). Его можно дернуть через ФМ GET_GLOBALS_FROM_SLVC_FULLSCR. Оттуда и сам фиелдкаталог можно забрать.

А дальше - дело кода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ REUSE_ALV_GRID_DISPLAY
СообщениеДобавлено: Чт, сен 05 2019, 09:36 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
pberezin написал:
так настраиваете предварительно кнопкой "кубик-рубик" в ALVхе необходимый Формат вывода, с нужными полями, фильтрами, сортировкой, субитогами и проч.
Потом в инструкцию пользователя прописываете чтото вроде "перед выгрузкой в эксель выберите формат такойто". Либо явно наименование этого формата передаёте в вызов ФМа REUSE, он тогда сразу применится.

Там одна беда с теми Форматами - нет штатного механизма защиты Формата от изменений другими пользователями (как например галочка "Защитить вариант" у Вариантов селекционного экрана). А то пользователи-рукож*пы любят ставить галку "по умолчанию", и рано или поздно перезатирают Формат какимто другим.

Кубик рубик конечно вещь хорошая, через него выводится в Excel именно то что на данный момент на экране, но в моём случае есть не большая проблеммка связанная с длинными сроками, в отчёте есть очень длинные сроки, которые я при выводе в Excel с помощью ФМ ZBC_DOI_EXPORT_DATA_TO_EXCEL потом в самом файле Excel макросами делаю нужные мне размеры этих длинных срок и также делаю перенос текста по словам в этих длинных сроках. А вот через кубик рубик я сделать этого не могу, потому как оное просто выводит в Excel то что видит на экране.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ REUSE_ALV_GRID_DISPLAY
СообщениеДобавлено: Чт, сен 05 2019, 10:05 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
ну у ALV есть ограничение на вывод на экран в 128 емнип символов, но в эксель при этом выгружается и более длинный текст поля.
Хотя, если текст превышает разумные размеры (ну например полное наименование материала), там лучше отдельную специализированную выгружалку написать. А то бывает попадаются спецсимволы в таких текстах, что при выгрузке в эксель больших массивов колонки потом разъезжаются.

Просто, если вы хотите выгружать "по отфильтрованному на экране", нужно тогда учитывать не только видимость колонок, но и фильтр (там есть КУГЫУ-ФМ получения et_filtered_erntires[] из АЛВхи). А так же наличие строк субитогов (системное поле row в строках АЛВхи анализировать тоже).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ REUSE_ALV_GRID_DISPLAY
СообщениеДобавлено: Чт, сен 05 2019, 15:00 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
pberezin написал:
Просто, если вы хотите выгружать "по отфильтрованному на экране", нужно тогда учитывать не только видимость колонок, но и фильтр (там есть КУГЫУ-ФМ получения et_filtered_erntires[] из АЛВхи). А так же наличие строк субитогов (системное поле row в строках АЛВхи анализировать тоже).

Меня не сильно интересует отфильтрованный список, именно видимость колонок мне и нужна. Что за функциональный модуль то я так и не понял?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ REUSE_ALV_GRID_DISPLAY
СообщениеДобавлено: Чт, сен 05 2019, 16:04 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Sam Stone написал(а):
Надо смотреть поле no_out в каталоге полей.
Если работать напрямую с cl_gui_alv_grid, то его можно дергать через get_frontend_fieldcatalog(). Его можно дернуть через ФМ GET_GLOBALS_FROM_SLVC_FULLSCR. Оттуда и сам фиелдкаталог можно забрать.

А дальше - дело кода.


Из ФМ надо получить E_GRID, а из него, методом GET_FRONTEND_FIELDCATALOG - каталого полей.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ REUSE_ALV_GRID_DISPLAY
СообщениеДобавлено: Пт, сен 13 2019, 07:18 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
В общем если кому понадобится такая штука, вот реализация кода:
Code:
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.

form user_command using v_ucomm   like sy-ucomm
wa_selrow type slis_selfield.
case v_ucomm.
when 'EXCEL'.
call method go_grid->get_frontend_fieldcatalog
        importing
          et_fieldcatalog = gt_fieldcat_local.

В итоге в gt_fieldcat_local собирается список полей что отображаются на экране.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB