zoukankan      html  css  js  c++  java
  • 手工给alv添加合计


    手工给alv添加合计

    REPORT  zlm_test_004.

    TABLES:hrpy_rgdir,t001,pa0001 .
    TYPE-POOLSslis.
    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 .
    DATABEGIN OF itab2 OCCURS ,
            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.
    *****************
    CONSTANTSgc_grid_title(30TYPE 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.        

    http://blog.sina.com.cn/sapliumeng
  • 相关阅读:
    用Canvas绘制一个钟表
    用css3做一个3D立方体
    函数调用的不同方式,以及this的指向
    Javascript 严格模式use strict详解
    前端开发页面的性能优化方案总结
    Promise对象解读
    Vue爬坑之vuex初识
    WEB前端性能优化小结
    navicat 注册码
    docker
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802168.html
Copyright © 2011-2022 走看看