ABAP - SALV教程16 合计、小计

2024-03-04 08:12
文章标签 16 教程 abap 合计 小计 salv

本文主要是介绍ABAP - SALV教程16 合计、小计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 虽然ALV的标准状态栏功能就能实现合计、小计、平均值、最大值等这些功能,但用户更希望一进去ALV就希望ALV已经对数量,金额的字段进行合计,小计。
  • SALV实现合计,调用CL_SALV_AGGREGATIONS的ADD_AGGREGATION即可
        DATA(lo_aggrs) = co_alv->get_aggregations( ).TRY."给NETWR字段添加合计lo_aggrs->add_aggregation( EXPORTINGcolumnname  = 'NETWR'aggregation = if_salv_c_aggregation=>total).CATCH cx_salv_data_error .CATCH cx_salv_not_found .CATCH cx_salv_existing .ENDTRY."将合计放置到NETWR字段的顶端"lo_aggrs->set_aggregation_before_items(NETWR )."将合计跟随在NETWR字段的底部lo_aggrs->set_aggregation_allowed( 'NETWR' ).
    

  • SALV在合计前提下排序时会自动小计,实调用类CL_SALV_SORTS的GET_SORT方法即可
        DATA(lo_sorts) = co_alv->get_sorts( ).TRY."对销售订单号进行排序,由于有总计,所以每个销售订单也会有小计lo_sorts->add_sort( EXPORTINGcolumnname = 'VBELN'subtotal   = if_salv_c_bool_sap=>true).CATCH cx_salv_not_found .                         "#EC NO_HANDLERCATCH cx_salv_existing .                          "#EC NO_HANDLERCATCH cx_salv_data_error .                        "#EC NO_HANDLERENDTRY.

  • 显示效果如下图所示 


  • 完整代码
    CLASS lcl_model DEFINITION.PUBLIC SECTION.TYPES:BEGIN OF TY_dATA,vbeln TYPE vbak-vbeln,erdat TYPE erdat,erzet TYPE erzet,ernam TYPE ernam,auart TYPE auart,netwr TYPE netwr.TYPES:END  OF ty_data.DATA mt_data TYPE TABLE OF ty_data.DATA mo_salv TYPE REF TO cl_salv_table."获取数据的方法METHODS get_data."展示SALV的方法METHODS alv_show.PRIVATE SECTION.METHODS:set_stats CHANGING co_alv TYPE REF TO cl_salv_table.METHODS:set_sorts CHANGING co_alv TYPE REF TO cl_salv_table.METHODS:set_aggrs CHANGING co_alv TYPE REF TO cl_salv_table.
    ENDCLASS.CLASS lcl_model IMPLEMENTATION.METHOD get_data.SELECT vbeln erdat erzet ernam auart netwrINTO TABLE mt_dataFROM vbakUP TO 10 ROWS.ENDMETHOD.METHOD alv_show.DATA: lx_msg TYPE REF TO cx_salv_msg.TRY.cl_salv_table=>factory(IMPORTINGr_salv_table = mo_salvCHANGINGt_table      = mt_data ).CATCH cx_salv_msg INTO lx_msg.ENDTRY.me->set_stats( CHANGING co_alv = mo_salv ).me->set_aggrs( CHANGING co_alv = mo_salv ).me->set_sorts( CHANGING co_alv = mo_salv ).mo_salv->display( ).ENDMETHOD.METHOD set_stats.DATA(lo_functions) = co_alv->get_functions( )."cl_salv_functions_list类型的实例对象的添加状态方法lo_functions->set_all( abap_true )."lo_functions->set_default( abap_true ).ENDMETHOD.METHOD set_sorts.DATA(lo_sorts) = co_alv->get_sorts( ).TRY."对销售订单号进行排序,由于有总计,所以每个销售订单也会有小计lo_sorts->add_sort( EXPORTINGcolumnname = 'VBELN'subtotal   = if_salv_c_bool_sap=>true).CATCH cx_salv_not_found .                         "#EC NO_HANDLERCATCH cx_salv_existing .                          "#EC NO_HANDLERCATCH cx_salv_data_error .                        "#EC NO_HANDLERENDTRY.ENDMETHOD.METHOD set_aggrs.DATA(lo_aggrs) = co_alv->get_aggregations( ).TRY."给NETWR字段添加合计lo_aggrs->add_aggregation( EXPORTINGcolumnname  = 'NETWR'aggregation = if_salv_c_aggregation=>total).CATCH cx_salv_data_error .CATCH cx_salv_not_found .CATCH cx_salv_existing .ENDTRY."将合计放置到NETWR字段的顶端"lo_aggrs->set_aggregation_before_items(NETWR )."将合计跟随在NETWR字段的底部lo_aggrs->set_aggregation_allowed( 'NETWR' ).ENDMETHOD.ENDCLASS.START-OF-SELECTION.DATA(lo_model) = NEW lcl_model( ).lo_model->get_data( ).lo_model->alv_show( )
     

这篇关于ABAP - SALV教程16 合计、小计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772569

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.