我需要在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
如何隐藏只有零值的月份列?
答案 0 :(得分:2)
在ALV的字段目录中,它定义了列的呈现方式,您可以通过设置以下两个属性或方法之一来隐藏列:
CL_GUI_ALV_GRID
,REUSE_ALV_GRID_DISPLAY
REUSE_ALV_LIST_DISPLAY
,请将NO_OUT
设置为'X'或将TECH
设置为'X'。CL_SALV_COLUMN
或其子类,它们通过相应的方法SET_VISIBLE
或SET_TECHNICAL
来更改这些属性。这两个属性或方法都隐藏该列,但是第一个(NO_OUT,SET_VISIBLE)使用户可以通过布局选项显示该列,而第二个(TECH,SET_TECHNICAL)则绝对隐藏该列。
当然,首先,您必须在内部表上循环并检查每一列的内容。因为您说您有一个“动态ALV”,所以我想您必须使用'ASSIGN COMPONENT'来访问每一行的值。