Автор Тема: CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET' - вопрос по параметрам...  (Прочитано 9593 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Использую тут по случаю 'REUSE_ALV_GRID_DISPLAY', надо получить список выделенных строк, вроде как есть для этих целей специальный ФМ 'REUSE_ALV_LIST_SELECTIONS_GET', но у него есть хитрый параметр ir_salv_adapter, в общем как я понимаю надо как-то получать ссылку на класс который сформировался в ходе вызова REUSE_ALV_GRID_DISPLAY и дальше можно получить уже все необходимые данные, так вот вопрос как получить этот ir_salv_adapter? Или другой заход, вроде как помню что где-то был ФМ который возвращал ссылку созданной ALV-таблицы как объект типа ALV-класс и уже через класс можно было получить выделенные строки... Мировой разум похоже молчит, так как в инете нигде ничего не нашлел по этому поводу.
Код: You are not allowed to view links. Register or Login
DATA: l_ir_salv_adapter TYPE REF TO if_salv_adapter,
        lt_selected_rows TYPE salv_t_slis_row,
        ls_selected_rows TYPE salv_s_slis_row.

  CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET'
    EXPORTING
      ir_salv_adapter          = l_ir_salv_adapter
   IMPORTING
     t_selected_rows          = lt_selected_rows.

PS: Переписывать отчет используя вызов таблицы через класс, как-то не хотелось бы  ???

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Не использовал этот ФМ, а делал так: выставлял gs_layout-box_fieldname = 'SELFIELD', а далее в п/п USER_COMMAND цикл по своей внутренней WHERE selfield = 'X'. Тип CHAR длиной 1. Правда я поле MANDT под эти нужды обычно использовал, чтобы не объявлять SELFIELD.
« Последнее редактирование: Июнь 24, 2010, 05:21:10 pm от Dmitriy »

Оффлайн mangetik

  • Newbie
  • *
  • Сообщений: 11
  • Репутация: +2/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Можно попробовать использовать GET_GLOBALS_FROM_SLVC_FULLSCR
получить ссылку на объектный грид а там уже get_selected_rows
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Можно попробовать использовать GET_GLOBALS_FROM_SLVC_FULLSCR
О, именно этот ФМ я и мучительно пытался вспомнить :-) Спасибо!

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Не использовал этот ФМ, а делал так: выставлял gs_layout-box_fieldname = 'SELFIELD', а далее в п/п USER_COMMAND цикл по своей внутренней WHERE selfield = 'X'. Тип CHAR длиной 1. Правда я поле MANDT под эти нужды обычно использовал, чтобы не объявлять SELFIELD.
Мда, как-то я совсем плохой стал.. и ведь у меня так все и определено :-) а я тут как идиот... хотя нет, вот не надо будет потом вспоминать ФМ GET_GLOBALS_FROM_SLVC_FULLSCR, который очень полезная штука...

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Цитата: Uukrul  link=topic=1194.msg7223#msg7223 date=1277389375
Мда, как-то я совсем плохой стал.. и ведь у меня так все и определено :-) а я тут как идиот... хотя нет, вот не надо будет потом вспоминать ФМ GET_GLOBALS_FROM_SLVC_FULLSCR, который очень полезная штука...
Именно!
Только что набросал небольшой тестовый примерчик, объявляем:
Код: You are not allowed to view links. Register or Login
DATA: g_grid TYPE REF TO cl_gui_alv_grid.
В событии TOP_OF_PAGE делаем вызов:
Код: You are not allowed to view links. Register or Login
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = g_grid.
Затем уже в USER_COMMAND получаем ВСЕ выбранные строки:
Код: You are not allowed to view links. Register or Login
  DATA: lt_rows TYPE lvc_t_row.
  CALL METHOD g_grid->get_selected_rows
    IMPORTING
      et_index_rows = lt_rows.

Спасибо, mangetik!

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Цитата: Uukrul  link=topic=1194.msg7223#msg7223 date=1277389375
Мда, как-то я совсем плохой стал.. и ведь у меня так все и определено :-) а я тут как идиот... хотя нет, вот не надо будет потом вспоминать ФМ GET_GLOBALS_FROM_SLVC_FULLSCR, который очень полезная штука...
В каталоге полей не забудь поставить (если нет) в атрибутах поля, отведенного под индикатор выбрано/нет tech = 'X' (а не no_out, как некоторые иногда делают), чтобы в списке полей не болталось зря (в настройках формата, после вывода).

Sapforum.Biz