Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => SE37 - Построитель функций => Тема начата: Паганель от Март 10, 2009, 02:43:00 pm
-
Сегодня полчаса потратил, что бы понять чего если с одного грида вызывается другой, то варианты у них общие, и если меняеш и сохраняеш один, то во втором гриде отображаются только колонки с сохраненного варианта :(.
Оказалось дело в параметре 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
-
А именно в параметрах disvarian-REPORT и disvarian-HANDLE. Кажется про это было в районе SLIS отчеты BCALV_GRID_*, как пример использования.