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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Ahrefs [Bot], Yandex [Bot]


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

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