Двухуровневые заголовки столбцов в списке ALV - PullRequest
2 голосов
/ 15 июня 2010

Я хочу добавить строку заголовка, группирующую заголовки столбцов.

        Departure                   Arrival        <-- This row is what I want to add
Airport    Gate    Date    Airport    Gate    Date
--------   -----   -----   --------   -----   -------
O'Hare     A10     10Mar   Atlanta    G19     10Mar
DFW        K98     11Mar   Denver     Z76     11Mar

Обратите внимание, что я использую ALV List , а не ALV Grid.Я посмотрел на пример программы BALVBT01, которая имеет двухуровневый заголовок, но оказалось, что это потому, что они отображают родительские / дочерние данные.Мои данные имеют только один уровень, я просто хочу сгруппировать столбцы.

1 Ответ

3 голосов
/ 15 июня 2010

Нашел мое решение здесь .Используйте событие top_of_list для добавления пользовательской информации заголовка перед печатью стандартного заголовка.Если вы хотите заменить стандартный заголовок своим, вы можете отключить стандартный заголовок, передав is_layout-no_colhead = 'X' в таблицу макетов.

* Get Event table
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
et_events = it_evt.

* Add pointer to custom top_of_list event handler
READ TABLE it_evt INTO wa_evt
WITH KEY name = slis_ev_top_of_list .
wa_evt-form = 'MY_TOP_OF_LIST' .
MODIFY it_evt FROM wa_evt INDEX sy-tabix .

* Pass event table when printing ALV list
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
  EXPORTING
    i_callback_program = w_prog
    is_layout          = fs_layout
    it_fieldcat        = t_fieldcat
    it_events          = it_evt
  TABLES
    t_outtab           = t_spfli.

************************************
* Custom event handler to write group-level header
FORM MY_TOP_OF_LIST .
ULINE AT 1(43) .
FORMAT COLOR COL_HEADING .
WRITE: / sy-vline ,
       10 'SAP' ,
       22 sy-vline ,
       31 'VPPA' ,
       43 sy-vline .
ENDFORM.
...