手工给alv添加合计_SAP刘梦_新浪博客


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


欢迎关注订阅号:SAP学习记录 (SAPlearning )

PO <wbr><wbr>text <wbr><wbr>copy <wbr><wbr>rules <wbr><wbr>:copy <wbr><wbr>PR <wbr><wbr>item <wbr><wbr>text <wbr><wbr>to <wbr><wbr>PO  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值