SAP ALV 合并单元格

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

本篇基于OOALV   CL_GUI_ALV_GRID

首先,按网上说的扩展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( )这个方法哦.

格式有很多可选:

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去除左边框

等等

最终案例样式:

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

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

也支持双击,hotspot等事件

24/4/15补充

开发报表时发现会出现以下情况:

会发现报表数据显示不全,且经过断点测试后 超过819 个单元格后的内容都会不显示。

经过调试分析,819 = 256 k / 320

320是cl_gui_alv_grid 内 一个叫MT_DATA内表 的行长度

原来S4版本展示ALV时,并不会一次性展示全,数据较多的时候会仅展示前819个空格,用户通过滚动条需要显示更多数据时,报表再同步刷新数据。

调整:

类:CL_DATAPTABLECACHE

方法:GET_OPT_PACKET_SIZE

将SIZE调整的大一点即可

注意加上条件,否则所有报表打开速度都会有影响

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值