手工给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.        

posted @ 2014-01-22 09:22  胡来  阅读(437)  评论(0编辑  收藏  举报