Как создать динамический ALV на основе месяцев? - PullRequest
0 голосов
/ 02 июня 2019

У меня есть требование отображать в таблице ALV количества, основанные на месячных значениях, но отображать только столбцы месяца, в которых есть хотя бы одно ненулевое значение.

Теперь ALV отображается следующим образом.:

matnr     0101    0102    0103  ...  0110    0111    0112
-----     ----    ----    ----       ----    ----    ----
0123         0       0       0          0     234     345
0124         0       0       0        458     234     345

но должно отображаться только:

matnr     0110    0111    0112
-----     ----    ----    ----
0123         0     234     345
0124       458     234     345

Как скрыть столбцы месяца, которые имеют только нулевые значения?

1 Ответ

2 голосов
/ 03 июня 2019

В каталоге полей ALV, который определяет способ визуализации столбцов, вы можете скрыть столбец, установив одно из двух свойств или методов:

  • если вы используете CL_GUI_ALV_GRID, REUSE_ALV_GRID_DISPLAY REUSE_ALV_LIST_DISPLAY, установите NO_OUT на 'X' или TECH на 'X'.
  • если вы используете SALV, у вас есть класс CL_SALV_COLUMN или его подклассы, которые изменяют эти свойства с помощью соответствующих методов SET_VISIBLE или SET_TECHNICAL.

Оба свойства или методы скрывают столбец, но первое (NO_OUT, SET_VISIBLE) дает пользователю возможность отображать столбец с помощью параметров макета, а второе (TECH, SET_TECHNICAL) однозначно скрывает столбец.

Конечно, сначала вы должны будете просмотреть внутреннюю таблицу и проверить содержимое каждого столбца. Поскольку вы говорите, что у вас есть «динамический ALV», я думаю, вам придется использовать «ASSIGN COMPONENT» для доступа к значениям каждой строки.

...