SAP ALV 合并单元格

        系统标准ALV写多了,格式觉得单一,不生动,怎样让ALV像EXCEL一样生动呢,网上也有很多案例了,我这里参考借鉴一下,给ABAP小白们提供个思路吧。

本篇基于OOALV   CL_GUI_ALV_GRID

首先,按网上说的扩展ALV类,继承原属性,新增新方法,生成1个新类,这个可以自行百度。

下面是要用到的方法:

SAP ALV 合并单元格_第1张图片

每次在ALV首次生成刷新以后,都要调用这些方法,可以理解成在EXCEL先把数据部署上去,然后合并单元格和格式优化。

下面是2个案例,用的多了可以循环在整个报表用

1、第一列 1~3行合并单元格:

wa_col_merge-col_id = 1
wa_col_merge-outputlen = 3 .
APPEND wa_col_merge TO lt_col_merge.

CALL METHOD lo_grid->z_set_merge_vert2
     EXPORTING
        col           = 1
     CHANGING
       tab_col_merge = lt_col_merge.

2、第一列居中+加粗+颜色

wa_style-style    = alv_style_align_center_center
                          + alv_style_font_bold
                          + alv_style_color_int_key.

CALL METHOD lo_grid->z_set_cell_style
     EXPORTING
          row   = wa_col_merge-col_id
          col   = 1
          style = wa_style-style.

调用完记得用z_display( )这个方法哦.

格式有很多可选:SAP ALV 合并单元格_第2张图片

ALV_STYLE_COLOR*指背景填充色

ALV_STYLE_FONT_BOLD加粗

ALV_STYLE_FONT_ITALIC斜体

ALV_STYLE_FONT_UNDERLINED下划线

ALV_STYLE_ALIGN_RIGHT_BOTTOM右下对齐

ALV_STYLE2_NO_BORDER_LEFT去除左边框

等等

最终案例样式:

看的出来我合并哪些单元格了吗

不合并单元格但是把边框线隐去,看上去是同一格里显示多行数据,以假乱真

SAP ALV 合并单元格_第3张图片

也支持双击,hotspot等事件

你可能感兴趣的:(前端,abap)