REUSE_ALV_GRID_DISPLAY + is_variant

Автор Паганель, Березень 10, 2009, 02:43:00 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Паганель

Сегодня полчаса потратил, что бы понять чего если с одного грида вызывается другой, то варианты у них общие, и если меняеш и сохраняеш один, то во втором гриде отображаются только колонки с сохраненного варианта  :(.

Оказалось дело в параметре is_variant.

Вообщем вызов REUSE_ALV_GRID_DISPLAY  следует делать типа так:


display_grid .
  DATA: gs_layout     TYPE slis_layout_alv.
  DATA: lt_fcat       TYPE slis_t_fieldcat_alv.

  DATA: var           LIKE disvariant.  " <<<----

  CLEAR var.
  var-report = sy-repid.
  var-handle = 'MAIN'. " Для второго грида использовать другую строку

  PERFORM build_layout       USING  gs_layout.
  PERFORM build_fieldcat     USING  lt_fcat.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program       = sy-repid
    i_callback_pf_status_set = 'ALV_MAIN_STATUS_SET'
    i_callback_user_command  = 'USER_COMMAND_MAIN'
    is_layout                = gs_layout
    it_fieldcat              = lt_fcat
    i_default                = 'X'
    i_save                   = 'A'
    is_variant               = var " <<<----
  TABLES
    t_outtab                 = gt_alvtab
  EXCEPTIONS
    program_error            = 1
    OTHERS                   = 2.
ENDFORM.                    " display_grid

Uukrul

#1
А именно в параметрах disvarian-REPORT и disvarian-HANDLE. Кажется про это было в районе SLIS отчеты BCALV_GRID_*, как пример использования.

SMF spam blocked by CleanTalk