合并列单元格alv-使用cl_gui_alv_grid

2020-08-13 19:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 我想在突出显示的列下合并,...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我想在突出显示的下合并,并且需要在合并列中添加文字。 请提出。

谢谢。

此致

阿比拉米

(10.7 kB)
14条回答
Nir深蓝
2020-08-13 19:57

Mahfud din 这是最简单的代码 合并单元格,但不要忘了这不是受支持的功能,SAP并没有使用它(尽管小计文本间接使用了它。)

它的原始思想来自于 Enno Wulff https://tricktresor .de/blog/zellen-verbinden/

使用以下代码,获得的结果如下:

代码:

包含。

 CLASS lcl_alv_cell_merging定义。
    公共部分。
    界面IF_ALV_RM_GRID_FRIEND。
    方法构造函数
         输入
           alv_grid类型参考cl_gui_alv_grid。
    方法add_command
         输入
           TYPE I列
           TYPE I行
           colspan TYPE i DEFAULT 1
           rowpan TYPE I DEFAULT 1
           对齐TYPE lvc_style默认ALV_STYLE_ALIGN_CENTER_CENTER
           颜色TYPE lvc_style可选
           粗体TYPE lvc_style可选。
    方法execute_commands。
    数据alv_grid类型参考cl_gui_alv_grid。
    带有非唯一键col_pos row_pos的lvc_s_data的数据命令类型排序表。
 ENDCLASS。

 类别lcl_alv_cell_merging实施。
   方法的构造者。
     我-> alv_grid = alv_grid。
   终结法。
   方法add_command。
     数据样式类型LVC_style。
     数据命令类型为lvc_s_data。
     command-col_pos =列。
     command-row_pos =行。
     command-mergehoriz = colspan-1。
     command-mergevert =行跨-1。
     样式=颜色BIT-OR对齐BIT-OR粗体。
     命令样式=样式。
     INSERT命令INTO TABLE命令。
   终结法。
   方法execute_commands。
     FIELD-SYMBOLS 类型lvc_s_data。
     FIELD-SYMBOLS <命令>类型lvc_s_data。
     循环至alv_grid-> mt_data ASSIGNING 。
       使用表键读取表命令col_pos =  -col_pos row_pos =  -row_pos ASSIGNING <命令>。
       如果sy-subrc = 0。
          -mergehoriz = <命令> -mergehoriz。
          -mergevert = <命令> -mergevert。
         -样式= -样式+ -样式。
       万一。
     结局。
   调用方法alv_grid-> set_data_table
      改变
        data_table = alv_grid-> mt_data []。
   终结法。
 ENDCLASS。

 数据go_alv类型参考cl_gui_alv_grid。
 数据go_alv_cell_merging类型参考lcl_alv_cell_merging。
 数据gt_sflight sflight的类型表。
 参数哑元。

 选择屏幕输出时。
   如果go_alv是INITIAL。
     创建对象go_alv
         出口
           i_parent = cl_gui_container => screen0。
     选择* FROM sflight进入表gt_sflight。
     go_alv-> set_table_for_first_display(
         导出i_structure_name ='SFLIGHT'
         更改it_outtab = gt_sflight)。
     创建对象go_alv_cell_merging导出alv_grid = go_alv。
     go_alv_cell_merging-> add_command(
         列= 1行= 1
         colspan = 4行跨度= 4
         COLOR = ALV_STYLE_COLOR_int_total)。
     go_alv_cell_merging-> add_command(
         列= 3行= 7
         colspan = 4行跨度= 4
         COLOR = ALV_STYLE_COLOR_total)。
     go_alv_cell_merging-> execute_commands()。
   万一。
 在退出命令的选择屏幕上。
   go_alv-> free()。
   免费go_alv。

一周热门 更多>