Dynamic 如何创建基于月份的动态ALV?

Dynamic 如何创建基于月份的动态ALV?,dynamic,abap,alv,Dynamic,Abap,Alv,​我需要在ALV网格中显示基于月份的数量,但只显示至少有一个非零值的月份列 现在,ALV显示如下: matnr 0101 0102 0103 ... 0110 0111 0112 ----- ---- ---- ---- ---- ---- ---- 0123 0 0 0 0 234 345 0124 0 0

​我需要在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

如何隐藏只有零值的月份列?

在定义列呈现方式的ALV字段目录中,可以通过设置以下两个属性或方法之一来隐藏列:

  • 如果使用
    CL\u GUI\u ALV\u GRID
    REUSE\u ALV\u GRID\u DISPLAY
    REUSE\u ALV\u LIST\u DISPLAY
    ,请将
    NO\u OUT
    设置为“X”或
    TECH
    设置为“X”
  • 如果使用SALV,则类
    CL\u SALV\u列
    或其子类通过相应的方法
    SET\u VISIBLE
    SET\u TECHNICAL
    更改这些属性
这两个属性或方法都隐藏列,但第一个(NO_OUT,SET_VISIBLE)允许用户通过布局选项显示列,而第二个(TECH,SET_TECHNICAL)则明确隐藏列


当然,首先必须循环内部表并检查每列的内容。因为你说你有一个“动态ALV”,我想你必须使用它来访问每一行的值。

发布前请小心预览你的文章,“表格”是在一行中呈现的,而不是在几行和几列中呈现的,这使你的问题变得不清楚。我已经为你们更新了。问题也在上被问到,目前只有一个答案。