收藏 分销(赏)

ABAP ALV列头合并.docx

上传人:xrp****65 文档编号:6865271 上传时间:2024-12-22 格式:DOCX 页数:9 大小:42.44KB 下载积分:10 金币
下载 相关 举报
ABAP ALV列头合并.docx_第1页
第1页 / 共9页
ABAP ALV列头合并.docx_第2页
第2页 / 共9页


点击查看更多>>
资源描述
源码: *&---------------------------------------------------------------------* *& Report  ZDEMO_ALV_MERGERHEADER                                      * *&                                                                     * *&---------------------------------------------------------------------* *&                                                        * *&                                                                     * *&---------------------------------------------------------------------* REPORT  z_alv_manual_set_header                               . TABLES:afko,afru,afpo,pbim,pbed,makt,mard . *************ALV  TYPE-POOLS slis. DATA:l_events TYPE slis_t_event,      gs_layout TYPE slis_layout_alv,      fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,      eventcat TYPE slis_t_event WITH HEADER LINE. DATA:l_variant TYPE TABLE OF disvariant WITH HEADER LINE,      prg LIKE sy-repid. ************** DATA:bedat LIKE pbed-pdatu,"当月月初      eddat LIKE pbed-pdatu."当月月末 DATA yesterday LIKE sy-datum. DATA:   lcm LIKE makt-matnr, " 冷藏门         ldm LIKE makt-matnr, " 冷冻门         bwm LIKE makt-matnr, "变温门         czhxt LIKE makt-matnr," 初装后箱体         zzhxt LIKE makt-matnr." 总装后箱体 DATA:gmnga_buf LIKE afru-gmnga. "计算当月计划 DATA:BEGIN OF itb_list_fert OCCURS 0, "当天有生产的整机清单         stlbez LIKE afko-stlbez,      "物料号         stlal LIKE afko-stlal,        "可选BOM         stlan LIKE afko-stlan,        "BOM 用途      END OF itb_list_fert. DATA: maktx LIKE makt-maktx ,       maktx1 LIKE makt-maktx ,       f1 LIKE makt-maktx ,       f2 LIKE makt-maktx ,       f3 LIKE makt-maktx ,       dot VALUE '.',       dot1 VALUE ','. DATA:BEGIN OF itb_output OCCURS 0,"输出表格         maktx LIKE makt-maktx,    "产品型号         plnmg_f_m LIKE pbed-plnmg, "当月计划         czhxt LIKE makt-matnr," 初装后箱体         gmnga_lcm LIKE afru-gmnga,   "冷藏门 当日完成         gmnga_lcm_lj LIKE afru-gmnga,"冷藏门 累计完成         labst_lcm LIKE mard-labst,   "冷藏门 结存         gmnga_ldm LIKE afru-gmnga,   "冷冻门 当日完成         gmnga_ldm_lj LIKE afru-gmnga,"冷冻门 累计完成         labst_ldm LIKE mard-labst,   "冷冻门 结存         gmnga_bwm LIKE afru-gmnga,   "变温门 当日完成         gmnga_bwm_lj LIKE afru-gmnga,"变温门 累计完成         labst_bwm LIKE mard-labst,   "变温门 结存         gmnga_czhxt LIKE afru-gmnga,   "初装上楼 当日完成         gmnga_czhxt_lj LIKE afru-gmnga,"初装上楼 累计完成         labst_czhxt LIKE mard-labst,   "初装上楼 结存         gmnga_zzhxt LIKE afru-gmnga,   "总装完成 当日完成         gmnga_zzhxt_lj LIKE afru-gmnga,"总装完成 累计完成         labst_zzhxt LIKE mard-labst,   "总装完成 结存         gmnga_zj LIKE afru-gmnga,   "成品入库 当日完成 "生产计划已完成数         gmnga_zj_lj LIKE afru-gmnga,"成品入库 累计完成         labst_zj LIKE mard-labst,   "成品入库 结存         sljhc LIKE afru-gmnga ,      "上楼冰箱与计划差         bzjhc LIKE afru-gmnga ,      "包装入库冰箱与计划差         gmnga_zj1 LIKE afru-gmnga,    "生产计划已完成数         END OF itb_output. DATA itb_stpox LIKE STANDARD TABLE OF  stpox WITH HEADER LINE. DATA:BEGIN OF itb_bom_maktx OCCURS 0,"BOM展开后的物料描述      idnrk LIKE stpox-idnrk,      maktx LIKE makt-maktx,      END OF itb_bom_maktx. INITIALIZATION.   l_variant-report = sy-repid. *******************************************START-OF-SelectION START-OF-SelectION.   PERFORM  eventtab_build CHANGING l_events.   PERFORM input_data.   PERFORM write_data. *&---------------------------------------------------------------------* *&      Form  write_data *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* *  -->  p1        text *  <--  p2        text *----------------------------------------------------------------------* FORM write_data .   PERFORM get_fieldcat.      gs_layout-zebra = 'X' .   prg = sy-repid.   CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'     EXPORTING       i_callback_program = prg       is_layout          = gs_layout       is_variant         = l_variant       it_fieldcat        = fieldcat[]       it_events          = eventcat[]     TABLES       t_outtab           = itb_output[]     EXCEPTIONS       program_error      = 1       OTHERS             = 2. ENDFORM.                    " write_data *&---------------------------------------------------------------------* *&      Form  GET_FIELDCAT *&---------------------------------------------------------------------* *    因为ALV表头是手工调整输出的,所以必须在这里输入每个列的宽度 *    fieldcat-outputlen . *----------------------------------------------------------------------* *  -->  p1        text *  <--  p2        text *----------------------------------------------------------------------* FORM get_fieldcat.   CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'MAKTX'.   fieldcat-col_pos   = 1.               " Position on screen   fieldcat-seltext_l = '产品型号'.   fieldcat-key = 'X'.   fieldcat-outputlen = 11.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'PLNMG_F_M'.   fieldcat-col_pos   = 2.               " Position on screen   fieldcat-seltext_l = '月计划合计'.   fieldcat-key = 'X'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_LCM'.   fieldcat-col_pos   = 3.               " Position on screen   fieldcat-seltext_l = '冷藏门当日完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_LCM_LJ'.   fieldcat-col_pos   = 4.               " Position on screen   fieldcat-seltext_l = '冷藏门累计完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'LABST_LCM'.   fieldcat-col_pos   = 5.               " Position on screen   fieldcat-seltext_l = '冷藏门结存'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_LDM'.   fieldcat-col_pos   = 6.               " Position on screen   fieldcat-seltext_l = '冷冻门当日完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_LDM_LJ'.   fieldcat-col_pos   = 7.               " Position on screen   fieldcat-seltext_l = '冷冻门累计完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'LABST_LDM'.   fieldcat-col_pos   = 8.               " Position on screen   fieldcat-seltext_l = '冷冻门结存'.   fieldcat-outputlen = 10.   APPEND fieldcat.   CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_BWM'.   fieldcat-col_pos   = 9.               " Position on screen   fieldcat-seltext_l = '变温室当日完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.   CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_BWM_LJ'.   fieldcat-col_pos   = 10.               " Position on screen   fieldcat-seltext_l = '变温室累计完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'LABST_BWM'.   fieldcat-col_pos   = 11.               " Position on screen   fieldcat-seltext_l = '变温室结存'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_CZHXT'.   fieldcat-col_pos   = 12.               " Position on screen   fieldcat-seltext_l = '初装上楼当日完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_CZHXT_LJ'.   fieldcat-col_pos   = 13.               " Position on screen   fieldcat-seltext_l = '初装上楼累计完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'LABST_CZHXT'.   fieldcat-col_pos   = 14.               " Position on screen   fieldcat-seltext_l = '初装上楼结存'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_ZZHXT'.   fieldcat-col_pos   = 15.               " Position on screen   fieldcat-seltext_l = '总装当日完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_ZZHXT_LJ'.   fieldcat-col_pos   = 16.               " Position on screen   fieldcat-seltext_l = '总装累计完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'LABST_ZZHXT'.   fieldcat-col_pos   = 17.               " Position on screen   fieldcat-seltext_l = '总装结存'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_ZJ'.   fieldcat-col_pos   = 18.               " Position on screen   fieldcat-seltext_l = '成品入库当日完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'GMNGA_ZJ_LJ'.   fieldcat-col_pos   = 19.               " Position on screen   fieldcat-seltext_l = '成品入库累计完成'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'LABST_ZJ'.   fieldcat-col_pos   = 20.               " Position on screen   fieldcat-seltext_l = '成品入库结存'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'SLJHC'.   fieldcat-col_pos   = 21.               " Position on screen   fieldcat-seltext_l = '上楼冰箱与计划差'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-fieldname = 'BZJHC'.   fieldcat-col_pos   = 22.               " Position on screen   fieldcat-seltext_l = '包装入库冰箱与计划差'.   fieldcat-outputlen = 10.   APPEND fieldcat.      CLEAR fieldcat.   fieldcat-tabname = 'ITAB_OUTPUT'.   fieldcat-col_pos   = 23.               " Position on screen   fieldcat-fieldname = 'GMNGA_ZJ1'.   fieldcat-seltext_l = '生产计划已完成数'.   fieldcat-outputlen = 10.   APPEND fieldcat.   ENDFORM.                    " GET_FIELDCAT    *&---------------------------------------------------------------------* *&      Form  EVENTTAB_BUILD *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* *      <--P_GT_EVENTS  text *----------------------------------------------------------------------* FORM eventtab_build CHANGING p_events TYPE slis_t_event.   DATA l_event TYPE LINE OF  slis_t_event.   CALL FUNCTION 'REUSE_ALV_EVENTS_GET'     EXPORTING       i_list_type     = 0     IMPORTING       et_events       = p_events     EXCEPTIONS       list_type_wrong = 1       OTHERS          = 2.   IF sy-subrc <> 0. *    message id sy-msgid type sy-msgty number sy-msgno *            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.   ENDIF.   READ TABLE p_events INTO l_event WITH KEY name = 'AFTER_LINE_OUTPUT'.   eventcat-name  = l_event-name.   eventcat-form = 'AFTER_LINE_OUTPUT'.   APPEND eventcat.   READ TABLE p_events INTO l_event WITH KEY name = 'TOP_OF_PAGE'.   eventcat-name  = l_event-name.   eventcat-form = 'F_TOP_OF_PAGE'.   APPEND eventcat. ENDFORM.                    " EVENTTAB_BUILD *&--------------------------------------------------------------------* *&      Form  AFTER_LINE_OUTPUT *&--------------------------------------------------------------------* *   输出ALV的表头,手动配置这些 *---------------------------------------------------------------------* FORM after_line_output USING gs_lineinfo TYPE slis_lineinfo.   DATA i TYPE i.   DATA: d(394) TYPE c .   DATA: l_line(398) TYPE c.   DATA: tmp_size TYPE i.   DESCRIBE FIELD d OUTPUT-LENGTH i.   IF  gs_lineinfo-tabindex = 1.     MODIFY LINE 1 LINE VALUE FROM  sy-uline(gs_lineinfo-linsz).     CLEAR l_line.     WRITE sy-vline TO l_line+0.     WRITE sy-vline TO l_line+12.     WRITE sy-vline  TO l_line+23.     WRITE '门体发泡完成' TO l_line+33.     WRITE sy-vline  TO l_line+122.     WRITE '初装上楼完成'  TO l_line+123.     WRITE sy-vline  TO l_line+155.     WRITE '总装完成'  TO l_line+156.     WRITE sy-vline TO l_line+188.     WRITE '成品入库'  TO l_line+189.     WRITE sy-vline TO l_line+221.     WRITE sy-vline TO l_line+232.     WRITE sy-vline TO l_line+243.     WRITE sy-vline TO l_line+254.     MODIFY LINE 2 LINE VALUE FROM l_line(gs_lineinfo-linsz).     CLEAR l_line.     WRITE sy-vline     TO l_line+0.     WRITE sy-vline TO l_line+12.     WRITE sy-vline  TO l_line+23.     tmp_size = gs_lineinfo-linsz - 24.     WRITE sy-uline TO l_line+24(tmp_size).     WRITE '上楼冰箱'  TO l_line+222.     WRITE sy-vline TO l_line+232.     WRITE '包装入库'  TO l_line+233.     WRITE sy-vline TO l_line+243.     WRITE '生产计划'  TO l_line+244.     WRITE sy-vline TO l_line+254.     MODIFY LINE 3 LINE VALUE FROM l_line(gs_lineinfo-linsz).     CLEAR l_line.     WRITE sy-vline TO l_line+0.     WRITE '产品型号' TO l_line+1.     WRITE sy-vline TO l_line+12.     WRITE '月计划合计' TO l_line+13.     WRITE sy-vline  TO l_line+23.     WRITE '冷藏门' TO l_line+24.     WRITE sy-vline TO l_line+56.     WRITE '冷冻门' TO l_line+57.     WRITE sy-vline  TO l_line+89.     WRITE '变温室'  TO l_line+90.     WRITE sy-vline  TO l_line+122.     WRITE sy-vline  TO l_line+133.     WRITE sy-vline  TO l_line+144.     WRITE sy-vline  TO l_line+155.     WRITE sy-vline  TO l_line+166.     WRITE sy-vline  TO l_line+177.     WRITE sy-vline TO l_line+188.     WRITE sy-vline TO l_line+199.     WRITE sy-vline TO l_line+210.     WRITE sy-vline TO l_line+221.     WRITE '与计划差'  TO l_line+222.     WRITE sy-vline TO l_line+232.     WRITE '冰箱与'  TO l_line+233.     WRITE sy-vline TO l_line+243.     WRITE '已完成数'  TO l_line+244.     WRITE sy-vline TO l_line+254.     MODIFY LINE 4 LINE VALUE FROM l_line(gs_lineinfo-linsz).     CLEAR l_line.     WRITE sy-vline     TO l_line+0.     WRITE sy-vline TO l_line+12.     WRITE sy-vline  TO l_line+23.     tmp_size = gs_lineinfo-linsz - 24.     WRITE sy-uline TO l_line+24(tmp_size).     WRITE '当日完成'  TO l_line+123.     WRITE sy-vline  TO l_line+133.     WRITE  '累计完成' TO l_line+134.     WRITE sy-vline  TO l_line+144.     WRITE  '结存' TO l_line+145.     WRITE sy-vline  TO l_line+155.     WRITE  '当日完成' TO l_line+156.     WRITE sy-vline  TO l_line+166.     WRITE  '累计完成' TO l_line+167.     WRITE sy-vline  TO l_line+177.     WRITE  '结存' TO l_line+178.     WRITE sy-vline TO l_line+188.     WRITE  '当日完成' TO l_line+189.     WRITE sy-vline TO l_line+199.     WRITE  '累计完成' TO l_line+200.     WRITE sy-vline TO l_line+210.     WRITE  '结存' TO l_line+211.     WRITE sy-vline TO l_line+221.     WRITE sy-vline TO l_line+232.     WRITE '计划差'  TO l_li
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服