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
  • 相关阅读:
    SQLDataSet中执行DDL语句
    在SQL语句中使用参数
    delphi排序算法
    ClientDataSet中的PacketRecords属性,减轻网络负载,提升服务器与客户端性能
    ClientDataSet中修改,删除,添加数据和Delta属性
    SQLMonitor观察DBE的执行行为
    this的指向(慢慢添加)
    如何在Html的CSS中去除<li>标签前面小黑点,和ul、LI部分属性方法
    AJAX的工作原理及其优缺点
    IE浏览器和Firefox浏览器兼容性问题及解决办法
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802168.html
Copyright © 2011-2022 走看看