SAP 取出销售订单的Object Reason的相关信息
2016-10-26 14:39
537 查看
REPORT zsdrp301. ******************************** * INNITIALIZATION ******************************** TABLES : vbak,vbap,kna1,mara,tvagt,cdhdr,cdpos. TYPES : BEGIN OF ltype_vbkp, vbeln TYPE vbak-vbeln, erdat TYPE vbak-erdat, ernam TYPE vbak-ernam, vbtyp TYPE vbak-vbtyp, auart TYPE vbak-auart, vkorg TYPE vbak-vkorg, vtweg TYPE vbak-vtweg, spart TYPE vbak-spart, vkgrp TYPE vbak-vkgrp, vkbur TYPE vbak-vkbur, ihrez TYPE vbak-ihrez, bname TYPE vbak-bname, kunnr TYPE vbak-kunnr, zzoter TYPE vbak-zzoter, posnr TYPE vbap-posnr, matnr TYPE vbap-matnr, matkl TYPE vbap-matkl, arktx TYPE vbap-arktx, pstyv TYPE vbap-pstyv, posar TYPE vbap-posar, abgru TYPE vbap-abgru, netwr TYPE vbap-netwr, waerk TYPE vbap-waerk, kwmeng TYPE vbap-kwmeng, vrkme TYPE vbap-vrkme, END OF ltype_vbkp. TYPES : BEGIN OF ltype_kna1, kunnr TYPE kna1-kunnr, name1 TYPE kna1-name1, END OF ltype_kna1. TYPES : BEGIN OF ltype_mara, matnr TYPE mara-matnr, normt TYPE mara-normt, END OF ltype_mara. TYPES : BEGIN OF ltype_tvagt, abgru TYPE tvagt-abgru, bezei TYPE tvagt-bezei, END OF ltype_tvagt. TYPES : BEGIN OF ltype_cdpos, objectid TYPE cdpos-objectid, changenr TYPE cdpos-changenr, END OF ltype_cdpos. TYPES : BEGIN OF ltype_cdhdr, objectid TYPE cdhdr-objectid, udate TYPE cdhdr-udate, END OF ltype_cdhdr. TYPES : BEGIN OF ltype_middle, objectid TYPE cdpos-objectid, END OF ltype_middle. DATA : lt 4000 _middle TYPE TABLE OF ltype_middle, ls_middle LIKE LINE OF lt_middle. DATA : lt_vbkp TYPE TABLE OF ltype_vbkp, ls_vbkp LIKE LINE OF lt_vbkp. DATA : lt_kna1 TYPE TABLE OF ltype_kna1, ls_kna1 LIKE LINE OF lt_kna1. DATA : lt_mara TYPE TABLE OF ltype_mara, ls_mara LIKE LINE OF lt_mara. DATA : lt_tvagt TYPE TABLE OF ltype_tvagt, ls_tvagt LIKE LINE OF lt_tvagt. DATA : lt_cdpos TYPE TABLE OF ltype_cdpos, ls_cdpos LIKE LINE OF lt_cdpos. DATA : lt_cdhdr TYPE TABLE OF ltype_cdhdr, ls_cdhdr LIKE LINE OF lt_cdhdr. DATA : lt_display TYPE TABLE OF zssdrp301_struc_list, ls_display LIKE LINE OF lt_display. ******************************** * SELECTION-SCREEN ******************************** SELECTION-SCREEN BEGIN OF BLOCK blk01 WITH FRAME. SELECT-OPTIONS : m_vbeln FOR vbap-vbeln, m_posnr FOR vbap-posnr, m_erdat FOR vbak-erdat, m_vkorg FOR vbak-vkorg, m_abgru FOR vbap-abgru. SELECTION-SCREEN END OF BLOCK blk01. IF m_vbeln IS INITIAL AND m_abgru IS INITIAL. MESSAGE 'Please input selection option' TYPE 'E'. ELSE. PERFORM frm_get_data. PERFORM frm_alv_display. ENDIF. ******************************** * START OF SELECTION ******************************** FORM frm_get_data. CLEAR lt_display[]. SELECT t1~vbeln t1~erdat t1~ernam t1~vbtyp t1~auart t1~vkorg t1~vtweg t1~spart t1~vkgrp t1~vkbur t1~ihrez t1~bname t1~kunnr t1~zzoter t2~posnr t2~matnr t2~matkl t2~arktx t2~pstyv t2~posar t2~abgru t2~netwr t2~waerk t2~kwmeng t2~vrkme FROM vbak AS t1 INNER JOIN vbap AS t2 ON t1~vbeln = t2~vbeln INTO CORRESPONDING FIELDS OF TABLE lt_display WHERE t1~vbeln IN m_vbeln AND t1~erdat IN m_erdat AND t1~vkorg IN m_vkorg AND t2~posnr IN m_posnr AND t2~abgru IN m_abgru. IF lt_display IS NOT INITIAL. CLEAR lt_kna1[]. SELECT kunnr name1 FROM kna1 INTO CORRESPONDING FIELDS OF TABLE lt_kna1 FOR ALL ENTRIES IN lt_display WHERE kunnr = lt_display-kunnr. CLEAR lt_mara[]. SELECT matnr normt FROM mara INTO CORRESPONDING FIELDS OF TABLE lt_mara FOR ALL ENTRIES IN lt_display WHERE matnr = lt_display-matnr. CLEAR lt_tvagt[]. SELECT abgru bezei FROM tvagt INTO CORRESPONDING FIELDS OF TABLE lt_tvagt FOR ALL ENTRIES IN lt_display WHERE abgru = lt_display-abgru AND spras = sy-langu. LOOP AT lt_display INTO ls_display. ls_middle-objectid = ls_display-vbeln. APPEND ls_middle TO lt_middle. ENDLOOP. IF lt_middle IS NOT INITIAL . CLEAR lt_cdpos. SELECT objectid changenr FROM cdpos INTO CORRESPONDING FIELDS OF TABLE lt_cdpos FOR ALL ENTRIES IN lt_middle WHERE objectid = lt_middle-objectid AND fname = 'ABGRU'. ENDIF. IF lt_cdpos IS NOT INITIAL. SELECT objectid udate FROM cdhdr INTO CORRESPONDING FIELDS OF TABLE lt_cdhdr FOR ALL ENTRIES IN lt_cdpos WHERE objectid = lt_cdpos-objectid. ENDIF. ENDIF. CLEAR ls_display. LOOP AT lt_display INTO ls_display. CLEAR ls_kna1. READ TABLE lt_kna1 INTO ls_kna1 WITH KEY kunnr = ls_display-kunnr. ls_display-name1 = ls_kna1-name1. CLEAR ls_mara. READ TABLE lt_mara INTO ls_mara WITH KEY matnr = ls_display-matnr. ls_display-normt = ls_mara-normt. CLEAR ls_tvagt. READ TABLE lt_tvagt INTO ls_tvagt WITH KEY abgru = ls_display-abgru. ls_display-bezei = ls_tvagt-bezei. CLEAR ls_cdhdr. CLEAR ls_middle. * ls_middle-objectid = ls_display-vbeln. READ TABLE lt_cdhdr INTO ls_cdhdr WITH KEY objectid = ls_display-vbeln. IF ls_display-abgru IS NOT INITIAL. ls_display-udate = ls_cdhdr-udate. ENDIF. MODIFY lt_display FROM ls_display. ENDLOOP. ENDFORM. "frm_get_data *&---------------------------------------------------------------------* *& Form frm_alv_display *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM frm_alv_display . DATA : ls_layout TYPE slis_layout_alv. DATA : lt_fieldcat TYPE slis_t_fieldcat_alv. DATA : l_repid TYPE sy-repid. PERFORM frm_build_fieldcat CHANGING lt_fieldcat. PERFORM frm_build_layout CHANGING ls_layout. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid it_fieldcat = lt_fieldcat is_layout = ls_layout * i_callback_user_command = 'FRM_USER_COMMAND' * i_callback_pf_status_set = 'FRM_PF_STATUS_SET' TABLES t_outtab = lt_display. ENDFORM. " FRM_ALV_DISPLAY *&---------------------------------------------------------------------* *& Form frm_build_fieldcat *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->CT_FIELDCAT text *----------------------------------------------------------------------* FORM frm_build_fieldcat CHANGING ct_fieldcat TYPE slis_t_fieldcat_alv. DATA : ls_fieldcat LIKE LINE OF ct_fieldcat. REFRESH ct_fieldcat. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'ZSSDRP301_STRUC_LIST' CHANGING ct_fieldcat = ct_fieldcat. * DELETE ct_fieldcat WHERE fieldname = 'PLANR'. * LOOP AT ct_fieldcat INTO ls_fieldcat. * * CASE ls_fieldcat-fieldname. * WHEN 'MNG01'. * IF sy-langu = '1'. * ls_fieldcat-seltext_l = '工单数量'. * ELSE. * ls_fieldcat-seltext_l = 'Order quantity'. * ls_fieldcat-seltext_m = 'Order quantity'. * ls_fieldcat-seltext_s = 'Order quantity'. * ENDIF. * ENDCASE. * * MODIFY ct_fieldcat FROM ls_fieldcat TRANSPORTING seltext_l seltext_m seltext_s. * * ENDLOOP. ENDFORM. "frm_build_fieldcat *&---------------------------------------------------------------------* *& Form frm_build_layout *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->CS_LAYOUT text *----------------------------------------------------------------------* FORM frm_build_layout CHANGING cs_layout TYPE slis_layout_alv. CLEAR cs_layout. MOVE 'X' TO cs_layout-detail_popup. MOVE 'X' TO cs_layout-colwidth_optimize. MOVE 'COLOR' TO cs_layout-info_fieldname. * MOVE 'SELECTED' TO cs_layout-box_fieldname. ENDFORM. " FRM_BUILD_LAYOUT
相关文章推荐
- sap 如何查找销售订单合作伙伴的地址(名字)等的相关信息
- SAP PP生产订单相关信息的获取
- 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据
- 报表练习题:销售订单打印的相关说明
- sap 中怎样把非限制库存转为销售订单库存?
- 生产订单相关信息
- 如何创建一个SAP的销售订单
- SAP 销售订单查看合同引用
- SAP销售订单关联的生产成本核算
- SAP无法创建销售订单 装运点没有数据 装运条件有误
- SAP 销售订单 TEXT 内容获取
- SAP之销售订单
- SD客户主数据、销售订单、销售价格、销售条件相关、交货单、销售凭证流、凭证状态常用表
- SAP销售订单状态修改(审核) 计划行自动产生需求,产生MD04需求
- Oracle EBS更新销售订单行信息API
- sap 中怎样把非限制库存转为销售订单库存?
- 如何在生产订单增强中查看AFPO相关信息?
- [性能] SAP销售订单取数逻辑优化---索引表
- SAP生产订单预留相关的备忘录
- 删除商品时,如何不影响订单里该商品相关的信息显示