Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: Uukrul от Июнь 24, 2010, 01:35:38 pm

Название: CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET' - вопрос по параметрам...
Отправлено: Uukrul от Июнь 24, 2010, 01:35:38 pm
Использую тут по случаю '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: Переписывать отчет используя вызов таблицы через класс, как-то не хотелось бы  ???
Название: Re: CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET' - вопрос по параметрам...
Отправлено: Dmitriy от Июнь 24, 2010, 01:50:52 pm
Не использовал этот ФМ, а делал так: выставлял gs_layout-box_fieldname = 'SELFIELD', а далее в п/п USER_COMMAND цикл по своей внутренней WHERE selfield = 'X'. Тип CHAR длиной 1. Правда я поле MANDT под эти нужды обычно использовал, чтобы не объявлять SELFIELD.
Название: Re: CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET' - вопрос по параметрам...
Отправлено: mangetik от Июнь 24, 2010, 03:32:03 pm
Можно попробовать использовать GET_GLOBALS_FROM_SLVC_FULLSCR
получить ссылку на объектный грид а там уже get_selected_rows
http://help-abap.blogspot.com/2008/09/classical-alv-change-subtotal.html (http://help-abap.blogspot.com/2008/09/classical-alv-change-subtotal.html)
Название: Re: CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET' - вопрос по параметрам...
Отправлено: Uukrul от Июнь 24, 2010, 05:18:48 pm
You are not allowed to view links. Register or Login
Можно попробовать использовать GET_GLOBALS_FROM_SLVC_FULLSCR
О, именно этот ФМ я и мучительно пытался вспомнить :-) Спасибо!
Название: Re: CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET' - вопрос по параметрам...
Отправлено: Uukrul от Июнь 24, 2010, 05:22:55 pm
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, который очень полезная штука...
Название: Re: CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET' - вопрос по параметрам...
Отправлено: Dmitriy от Июнь 24, 2010, 06:46:07 pm
Цитата: 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!
Название: Re: CALL FUNCTION 'REUSE_ALV_LIST_SELECTIONS_GET' - вопрос по параметрам...
Отправлено: Dmitriy от Июнь 24, 2010, 06:53:08 pm
Цитата: Uukrul  link=topic=1194.msg7223#msg7223 date=1277389375
Мда, как-то я совсем плохой стал.. и ведь у меня так все и определено :-) а я тут как идиот... хотя нет, вот не надо будет потом вспоминать ФМ GET_GLOBALS_FROM_SLVC_FULLSCR, который очень полезная штука...
В каталоге полей не забудь поставить (если нет) в атрибутах поля, отведенного под индикатор выбрано/нет tech = 'X' (а не no_out, как некоторые иногда делают), чтобы в списке полей не болталось зря (в настройках формата, после вывода).