REPORT  zlm_test_004.

TABLES:hrpy_rgdir,t001,pa0001 .
TYPE-POOLS: slis.
DATA:BEGIN OF itab OCCURS 0,
     bukrs(10),                       "公司
     sachp(20),                       "部门
     pernr(20),                       "人员编号
     name(20),                        "姓名
     month(4),                        "月份
     bet01 LIKE pa0008-bet01,         "岗位工资
     bet02 LIKE pa0008-bet01,         "岗位津贴
     bet03 LIKE pa0008-bet01,         "灰色收入
   END OF itab .
DATA: BEGIN OF itab2 OCCURS 0 ,
        bukrs(16),                    "公司
        sachp(10),                    "部门
        pernr(10),                    "人员编号
        name(10),                     "姓名
        month(4),                     "月份
        trfgr(20),                    "工资等级
        bet01(20),                    "岗位工资
        bet02(20),                    "岗位津贴
        bet03(20),                    "灰色收入
        color(4) ,
      END OF itab2.
*****************
DATA : myrepid LIKE sy-repid.         "REPORT NAME
DATA : allfields TYPE slis_t_fieldcat_alv.
DATA : wa_allfields TYPE LINE OF slis_t_fieldcat_alv.
DATA : layout   TYPE slis_layout_alv .
DATA : ls_event TYPE slis_alv_event.
DATA : gt_events TYPE slis_t_event.
*****************
CONSTANTS: gc_grid_title(30) TYPE c VALUE '工资个人明细清单'.

START-OF-SELECTION.
  PERFORM getdata.
  PERFORM fixdata.
*&---------------------------------------------------------------------*
*&      Form getdata
*&---------------------------------------------------------------------*
FORM getdata.
  itab-bukrs = '忽悠公司'.
  itab-sachp = 'A部门'.
  itab-pernr = '111111'.
  itab-name = '张三'.
  itab-month = '11'.
  itab-bet01 = '100'.
  itab-bet02 = '120'.
  itab-bet03 = '140'.
  APPEND itab.
  itab-bukrs = '炒作公司'.
  itab-pernr = '222222'.
  itab-name = '李四'.
  itab-bet01 = '200'.
  itab-bet02 = '210'.
  itab-bet03 = '140'.
  APPEND itab.
  itab-bukrs = '忽悠公司'.
  itab-sachp = 'B部门'.
  itab-pernr = '333333'.
  itab-name = '王麻子'.
  itab-bet01 = '160'.
  itab-bet02 = '120'.
  itab-bet03 = '140'.
  APPEND itab.
  itab-pernr = '444444'.
  itab-name = '狗剩'.
  itab-bet01 = '500'.
  itab-bet02 = '120'.
  itab-bet03 = '260'.
  APPEND itab.
  itab-sachp = 'C部门'.
  itab-pernr = '555555'.
  itab-name = '铁蛋'.
  itab-bet01 = '400'.
  itab-bet02 = '220'.
  itab-bet03 = '140'.
  APPEND itab.
ENDFORM.                    "getdata
*&---------------------------------------------------------------------*
*&      Form fixdata
*&---------------------------------------------------------------------*
FORM fixdata.
  SORT itab BY bukrs sachp pernr .
  LOOP AT itab .

MOVE-CORRESPONDING itab TO itab2 .
    APPEND itab2.
    CLEAR itab2 .
*    APPEND itab2 .                        "可以填加空行
    AT END OF sachp.
      SUM..
      MOVE-CORRESPONDING itab TO itab2.
      itab2-color = 'C300'.
      CONCATENATE itab-sachp '合计' INTO itab2-sachp .
      APPEND itab2 .
      CLEAR itab2 .
*      APPEND itab2 .
    ENDAT.
    AT END OF bukrs.
      SUM.

MOVE-CORRESPONDING itab TO itab2.
      itab2-color = 'C310'.
      CONCATENATE itab-bukrs '小计' INTO itab2-bukrs .
      APPEND itab2 .
      CLEAR itab2 .
*      APPEND itab2 .
    ENDAT.
    AT LAST .
      SUM.
      MOVE-CORRESPONDING itab TO itab2.
      itab2-color = 'C710'.
      itab2-bukrs = '总计' .
      APPEND itab2 .
    ENDAT.
  ENDLOOP .
  CLEAR wa_allfields.
  PERFORM build_layout USING layout.
  PERFORM display_data .
ENDFORM.                    "fixdata
*&---------------------------------------------------------------------*
*&      Form display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_data .
  wa_allfields-fieldname = 'BUKRS'.
  wa_allfields-seltext_l = '公司'.
  APPEND wa_allfields TO allfields.
  CLEAR wa_allfields.
  wa_allfields-fieldname = 'SACHP'.
  wa_allfields-seltext_l = '部门'.
  APPEND wa_allfields TO allfields.
  CLEAR wa_allfields.
  wa_allfields-fieldname = 'PERNR'.
  wa_allfields-seltext_l = '人员编号'.
  APPEND wa_allfields TO allfields.
  CLEAR wa_allfields.
  wa_allfields-fieldname = 'NAME'.
  wa_allfields-seltext_l = '姓名'.
  APPEND wa_allfields TO allfields.
  CLEAR wa_allfields.
  wa_allfields-fieldname = 'MONTH'.
  wa_allfields-seltext_l = '月份'.
  APPEND wa_allfields TO allfields.
  CLEAR wa_allfields.
**
  wa_allfields-fieldname = 'BET01'.
  wa_allfields-seltext_l = '岗位工资'.
  APPEND wa_allfields TO allfields.
  CLEAR wa_allfields.
**
  wa_allfields-fieldname = 'BET02'.
  wa_allfields-seltext_l = '岗位津贴'.
  APPEND wa_allfields TO allfields.
  CLEAR wa_allfields.
  wa_allfields-fieldname = 'BET03'.
  wa_allfields-seltext_l = '灰色收入'.
  APPEND wa_allfields TO allfields.
  CLEAR wa_allfields.
  myrepid = sy-repid. "REPROT NAME
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = myrepid
      i_grid_title       = '月工资个人明细清单' "TITLE
      is_layout          = layout
      it_events          = gt_events
      i_save             = 'X'
      it_fieldcat        = allfields
    TABLES
      t_outtab           = itab2
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
ENDFORM .                    "display_data
*&---------------------------------------------------------------------*
*&      Form build_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LAYOUT   text
*----------------------------------------------------------------------*
FORM build_layout USING p_layout TYPE slis_layout_alv.
  p_layout-colwidth_optimize = 'X'.
  p_layout-info_fieldname = 'COLOR'.
ENDFORM.

转载于:https://www.cnblogs.com/senlinmu110/p/3802168.html

手工给alv添加合计相关推荐

  1. antd中如何给Table表格添加合计行

    最近项目需求:在表格底部添加一行为金额的合计行,然后分页每页都显示,金额字段是后端返回的数据,前端不进行计算. 因为项目的UI框架使用的是Ant Design 3.x版本,找了一下Table的使用方法 ...

  2. mysql 增加合计行_如何给SQL查询添加合计行

    SQL查询是SQL数据库的核心功能,下面为您介绍给SQL查询添加合计行的方法示例,供您参考,希望对您学习SQL查询能有所帮助. .数据表t_test id      销售人员id         商品 ...

  3. bootstrap table添加合计行

    添加合计行 首先为表格添加showFooter: true属性 然后为列添加footerFormatter属性 var templateTableParams = {classes: "ta ...

  4. ALV添加文字输入框

    一.业务场景 在合同打印中,需要临时添加其他约定事项,在打印程序的ALV中添加其他事项字段,点击之后弹出文字输入窗口,点击确定,文字内容存表,并在ALV中展示,点击打印后,文字内容加载到smartfo ...

  5. ALV分类合计功能实现

    鉴于网上有用的资料实在太少,只能自己学用心学点ABAP及SAP知识. 对于ABAP ALV的ALV_S_SORT排序大家一定不陌生 其字段如下 SPOS               SLIS_SPOS ...

  6. react:antd 中 table 添加合计行

    用的Antd 的 UI 框架. 场景:table 中后面想添加一行合计.合计的值由后端计算提供.目前想到两种方法. 第一种:比较好维护. 第二种:可以实现功能效果,但是感觉不太优雅. 方法一:把合计行 ...

  7. antd 表格添加合计行

    ps:好坑,antd竟然没有表格合计行的功能,只好自己研究一下,总结了一个还不错的方案,下面看代码 1.添加pageSizeOptions 2.查询分页数据的时候判断pagesize 在这里,我们希望 ...

  8. antd的table遍历之后添加合计行_付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具...

    专注Python.AI.大数据 @七步编程 ​PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以 ...

  9. 面向对象OO ALV添加按钮实现过程

    1.定义类lcl_event_handler.定义方法用于实现类CL_GUI_ALV_GRID的事件TOOLBAR.实现类.实现方法: 2.创建类对象实例CREATE GR_EVENT_HANDLER ...

最新文章

  1. 太久没来了,好尴尬呀
  2. pyhanlp 文本聚类
  3. 求圆面积的python代码_《求》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  4. java并发condition_Java并发之Condition的实现分析
  5. tos重装mysql_云服务器(腾讯云)从零开始部署记录(3)之mysql5.7安装
  6. Objective-C 2.0 with Cocoa Foundation --- 3,类的声明和定义
  7. 【java基础知识】java打包运行时显示控制台内容
  8. oracle删除还原点,【赵强老师】删除表和Oracle的回收站
  9. pe修改rpc服务器不可用,电脑rpc服务器不可用,教你电脑rpc服务器不可用怎么解决...
  10. 东方通php支持,应用服务器TongWeb
  11. SSD目标检测算法——通俗易懂解析
  12. 列宽一字符等于多少厘米_Excel中行高多少等于1厘米?列宽多少等...
  13. Windows 2016 出現 0xc0000135 ServerManager.exe 无法启用
  14. 单片机:红外遥控实验(内含红外遥控介绍+硬件原理+软件编程+配置环境)
  15. Tic Tac Toe
  16. offset 和 零点的一点解释
  17. circos 可视化手册-line plot 篇
  18. 全闪存存储、混合闪存存储
  19. 微信小程序开发数据缓存基础知识辨析以及运用实例
  20. 2020年396分上岸湖南大学计算机专硕考研经验分享

热门文章

  1. Tomcat与JDK版本对应关系
  2. Vue 项目创建并发布
  3. 第一篇:centos7下svn的安装与卸载
  4. CUDA学习(三)之使用GPU进行两个数相加
  5. 《图解HTTP》学习笔记
  6. C# 数据库连接字符串拼接
  7. 评论:我们该如何应对科技发展带来的失业
  8. centOS6.4下Percona-XtraBackup的安装
  9. android通话流程浅析RIL层
  10. 带你一起一步步推理出RocketMQ的架构