ABAP SALV-合计、小计

01 功能说明

上篇:ABAP SALV-排序、过滤

本系列将通过模拟用户与开发者之间的对话场景,来逐步演示SALV的使用。在本篇中,我们将继续上一篇内容,以解决用户提出的另外两个需求: 合计、小计。让我们来看看是如何实现的吧。

赶快动手试一试,掌握它的用法。

02 功能效果

第8天 用户说:合计

需要对距离进行合计。

 IF p_day08 EQ 'X'.
   DATA lo_aggregations TYPE REF TO cl_salv_aggregations.

   lo_aggregations = go_salv->get_aggregations( ).
   lo_aggregations->add_aggregation(
     EXPORTING
       columnname  = 'DISTANCE'
       aggregation = if_salv_c_aggregation=>total
   ).
   ...

在这里插入图片描述

第9天 用户说:小计

需要在合计基础上,进一步对航线进行小计。

   DATA lo_sort TYPE REF TO cl_salv_sort.

   "小计前需先进行排序
   IF p_day06 EQ 'X'.
     lo_sort = lo_sorts->get_sort( columnname = 'CARRID' ).
     lo_sort->set_subtotal( 'X' ).
   ELSE.
     lo_sorts = go_salv->get_sorts( ).
     lo_sorts->add_sort(
      EXPORTING
        columnname = 'CARRID'
        sequence   = if_salv_c_sort=>sort_down
        subtotal   = 'X'
     ).
   ENDIF.
   ...
 ENDIF.

在这里插入图片描述

03 源码分享

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t1 .
SELECTION-SCREEN BEGIN OF LINE
ABAP SALV(SAP List Viewer)是一个用于在SAP系统中创建和显示报表的工具。要在ABAP SALV报表中添加复选框(checkbox),你可以按照以下步骤进行操作: 1. 定义内表(table):首先,你需要定义一个内表来存储数据和复选框的状态。可以使用`TYPES`关键字定义一个包含所需字段的结构。 2. 填充内表数据:将需要显示的数据填充到内表中。可以使用`APPEND`语句将数据行添加到内表中。 3. 创建SALV对象:使用`CL_SALV_TABLE`类创建一个SALV对象,并将内表作为参数传递给构造方法。 4. 添加复选框列:通过调用`ADD_CHECKBOX_COLUMN`方法,为SALV对象添加一个复选框列。可以指定该列的标题和字段名。 5. 显示报表:使用`DISPLAY`方法显示SALV报表。 下面是一个简单的示例代码: ```abap DATA: lt_data TYPE TABLE OF (your_structure), lo_salv TYPE REF TO cl_salv_table. * 定义内表类型 TYPES: BEGIN OF ty_data, field1 TYPE data_type, field2 TYPE data_type, checkbox TYPE abap_bool, END OF ty_data. * 填充内表数据 APPEND VALUE #( field1 = value1 field2 = value2 ) TO lt_data. * 创建SALV对象 lo_salv = cl_salv_table=>factory( ). * 添加复选框列 lo_salv->add_checkbox_column( title = 'CheckBox' fieldname = 'CHECKBOX' ). * 设置内表数据 lo_salv->set_table_for_first_display( exporting i_structure_name = 'TY_DATA' changing it_outtab = lt_data ). * 显示报表 lo_salv->display( ). ``` 这段代码将在SALV报表中显示一个复选框列,用户可以选择或取消选择复选框。请根据你的实际需求修改字段名称、数据类型和内表数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值