****************************************************************** System : TDG ERP项目
* Module : MM * Program ID : ZFO_DATA_DOWNLOAD* Program : SAP采购订单数据与MES接口下载文件 ZFO_DATA 表。* Author : (TDG) Kean.liu* Date : 2011/02/17* Description : SAP采购订单数据与MES接口下载文件 tcode:ZFODD****************************************************************** Modified Recorder :* Date C#NO Author Content* ----------- ------- ------------------ ----------------------* 2011/02/17 (TDG) Kean.liu Create************************************************************************
REPORT zfo_data_download.
TABLES: mara,ekko,ekpo,mseg,mkpf,lfa1,ZFO_DATA,CDHDR.TYPE-POOLS: slis.
*----------------------------------------------------------------------** Define TYPES*----------------------------------------------------------------------*TYPES:BEGIN OF typ_ekko, LOEKZ TYPE ekpo-LOEKZ, " 标记 matnr TYPE ekpo-matnr, " 部件编号 BISMT TYPE mara-BMATN, "old number ebeln TYPE ekko-ebeln ," 采购订单号 BEDAT TYPE ekko-BEDAT ," 订单签发日期 lifnr TYPE ekko-lifnr ," 供应商代码 waers TYPE ekko-waers ," 结算币种 EKGRP TYPE ekko-EKGRP ," 采购人 ebelp TYPE ekpo-ebelp ," 订单行号 ematn TYPE ekpo-ematn ," 部件编号 menge TYPE ekpo-menge ," 订货数量 meins TYPE ekpo-meins ," 计量单位 netpr TYPE ekpo-netpr ," 采购成本单价 name1 TYPE lfa1-name1, " supply name END OF typ_ekko.
DATA:BEGIN OF t_title OCCURS 0 , title(20) TYPE c, END OF t_title.
TYPES: BEGIN OF typ_mara, matnr TYPE mara-matnr, " 部件编号
wrkst TYPE mara-wrkst ," 客户部件编号 mfrpn TYPE mara-mfrpn ," 制造商物料代码 BISMT TYPE mara-BISMT, "部件内部编码 MFRNR TYPE mara-MFRNR, "制造商代码 NAME1 TYPE LFA1-NAME1, "manufactrul name LAND1 TYPE lfa1-LAND1, "Contry END OF typ_mara.
TYPES: BEGIN OF typ_mseg, ebeln TYPE mseg-ebeln , " 采购订单号 ebelp TYPE mseg-ebelp , " 订单行号 mblnr TYPE mseg-mblnr, "物料凭证编号 zeile TYPE mseg-zeile, mjahr TYPE mseg-mjahr, bwart TYPE mseg-bwart, menge TYPE mseg-menge ," 已收数量 END OF typ_mseg.
TYPES:begin of typ_CDHDR, OBJECTID TYPE ekko-ebeln,"OBJECT VALUES end of typ_CDHDR.
TYPES:begin of typ_DRUNR, DRUNR(4) TYPE C, "OBJECT VALUES end of typ_DRUNR.
TYPES: BEGIN OF typ_DATA, MANDT TYPE ZFO_DATA-MANDT, EBELN TYPE ZFO_DATA-EBELN, "purchasing id EBELP TYPE ZFO_DATA-EBELP, "purchasing number LOEKZ TYPE ZFO_DATA-LOEKZ, "flag AEDAT TYPE ZFO_DATA-AEDAT, "date CPUTM TYPE ZFO_DATA-CPUTM, " time DRUNR TYPE ZFO_DATA-DRUNR, " timesEND OF typ_DATA.
TYPES: BEGIN OF typ_display,
LOEKZ TYPE ekpo-LOEKZ, " 标记 ebeln TYPE ekko-ebeln, " 采购订单号 ebelp TYPE ekpo-ebelp, " 订单行号 BEDAT TYPE ekko-BEDAT, " 订单签发日期 matnr TYPE mara-matnr, " SAP 部件编号 BISMT TYPE mara-BISMT, " old number* wrkst TYPE mara-wrkst, " 客户部件编号 mfrpn TYPE mara-mfrpn, " 制造商部件编号 lifnr TYPE ekko-lifnr, " 供应商代码 mfrnr TYPE mara-mfrnr, " 制造商代码 LAND1 TYPE lfa1-LAND1, " 原产国代码 menge(13) TYPE C, " 订货数量 menge02(13) TYPE C, " 已收数量 street(20) TYPE c, " 送货地点 meins TYPE ekpo-meins, " 计量单位 waers TYPE ekko-waers, " 结算币种 netpr(11) TYPE C, " 采购成本单价 eindt TYPE eket-eindt, " 计划供货日期 EKGRP TYPE ekko-EKGRP, " 采购人 name1 TYPE lfa1-name1, " supply name name2 TYPE lfa1-name1, " 制造商名称 END OF typ_display.
*----------------------------------------------------------------------** Define GLOBAL DATA*----------------------------------------------------------------------*DATA: gth_ekko TYPE typ_ekko, gtd_ekko TYPE TABLE OF typ_ekko, gtd_ekko_CDHDR TYPE TABLE OF typ_ekko, gtd_ekko_CF TYPE typ_ekko, gtd_CDHDR TYPE TABLE OF typ_CDHDR, gtd_CDHDR_DRUNR TYPE TABLE OF typ_DRUNR, gth_CDHDR_DRUNR TYPE typ_DRUNR, gth_mara TYPE typ_mara, gtd_mara TYPE TABLE OF typ_mara, gth_mseg TYPE typ_mseg, gtd_mseg TYPE TABLE OF typ_mseg, gth_data type typ_data.
data:C_DRUNR(2) type C.
DATA: gtd_display TYPE TABLE OF typ_display, gth_display TYPE typ_display.
DATA: gtd_fieldcat TYPE slis_t_fieldcat_alv, gth_fieldcat TYPE slis_fieldcat_alv.
DATA: gth_layout TYPE slis_layout_alv.DATA: dname TYPE string.*----------------------------------------------------------------------** SCREEN DEFINE*----------------------------------------------------------------------**PARAMETERS: p_ebeln LIKE ekko-ebeln , "采购订单号* p_aedat LIKE ekko-aedat. "订单签发日期,SELECTION-SCREEN BEGIN OF BLOCK conn WITH FRAME TITLE text-001.SELECT-OPTIONS: s_ebeln FOR ekko-ebeln , "采购订单号 s_aedat FOR ekko-aedat NO INTERVALS OBLIGATORY , "订单签发日期, s_times FOR ZFO_DATA-CPUTM. "时间区域SELECTION-SCREEN END OF BLOCK conn.
SELECTION-SCREEN BEGIN OF BLOCK conn2 WITH FRAME TITLE text-002.
PARAMETERS : p1 RADIOBUTTON GROUP rg, p2 RADIOBUTTON GROUP rg, p3 RADIOBUTTON GROUP rg.SELECTION-SCREEN END OF BLOCK conn2.
SELECTION-SCREEN SKIP 1.PARAMETERS : remotenm LIKE rlgrap-filename OBLIGATORY,"服务器地址 localnm LIKE rlgrap-filename OBLIGATORY. "本地地址
*----------------------------------------------------------------------** AT SELECTION-SCREEN*----------------------------------------------------------------------*
INITIALIZATION. remotenm = '/usr/sap/tmp/export-data/'. localnm = 'D:/SAPDOWN/'. p3 = 'X'.
*----------------------------------------------------------------------** START-OF-SELECTION*----------------------------------------------------------------------*START-OF-SELECTION. PERFORM check_authority. PERFORM sub_get_data. PERFORM download_data.
FORM check_authority.
***查找当日的最大次数 select DRUNR INTO CORRESPONDING FIELDS OF TABLE gtd_CDHDR_DRUNR from ZFO_DATA where AEDAT = SY-DATUM and LOEKZ = 'R' . sort gtd_CDHDR_DRUNR by DRUNR descending.
READ TABLE gtd_CDHDR_DRUNR index 1 INTO gth_CDHDR_DRUNR.
IF sy-subrc = 0. C_DRUNR = gth_CDHDR_DRUNR-DRUNR + 1 . else . C_DRUNR = 1. ENDIF.*append 0 before object call function 'CONVERSION_EXIT_ALPHA_INPUT' exporting input = C_DRUNR importing output = C_DRUNR.
IF p1 = 'X'."如果是下载到服务器,取数前进行服务器地址的合法性检查* IF s_cpudt-high = '00000000'. CONCATENATE remotenm 'CPO_CCCCC_' sy-DATUM C_DRUNR '.txt' INTO dname.
OPEN DATASET dname FOR OUTPUT IN BINARY MODE. IF sy-subrc <> 0. MESSAGE '服务器地址非法' TYPE 'E'. ELSE. CLOSE DATASET dname. ENDIF.ENDIF.
IF p2 = 'X'."如果是下载到本机* IF s_cpudt-high = '00000000'. CONCATENATE localnm 'CPO_CCCCC_' sy-DATUM C_DRUNR '.txt' INTO dname.
ENDIF.
ENDFORM. "CHECK_authority
FORM SUB_IN_DATA_LOG. "INSERT INTO TABLE ZFO_DATA. insert log
gth_data-MANDT = SY-MANDT. gth_data-EBELN = SY-UNAME. "USER name gth_data-EBELP = C_DRUNR. "Run times
gth_data-AEDAT = SY-DATUM. "date gth_data-CPUTM = SY-UZEIT. "time gth_data-DRUNR = C_DRUNR. "Run times INSERT ZFO_DATA from gth_data. IF sy-subrc <> 0. update ZFO_DATA from gth_data. "数据存在,标志为删除的记录。
ENDIF. clear gth_data. ENDFORM.
FORM download_data.
IF p1 = 'X'."如果是下载到服务器, gth_data-LOEKZ = 'R'. "flag of run times PERFORM SUB_IN_DATA_LOG. DATA NUM TYPE string. OPEN DATASET dname FOR OUTPUT IN TEXT MODE encoding DEFAULT. LOOP AT gtd_display INTO gth_display . CONCATENATE gth_display-LOEKZ gth_display-ebeln gth_display-ebelp gth_display-BEDAT gth_display-matnr " SAP 部件编号 gth_display-BISMT " old number* gth_display-wrkst " 客户部件编号 gth_display-mfrpn " 制造商部件编号 gth_display-lifnr " 供应商代码 gth_display-mfrnr " 制造商代码 gth_display-LAND1 " 原产国代码 gth_display-menge " 订货数量 gth_display-menge02 " 已收数量 gth_display-street " 送货地点 gth_display-meins " 计量单位 gth_display-waers " 结算币种 gth_display-netpr " 采购成本单价 gth_display-eindt " 计划供货日期 gth_display-EKGRP " 采购人 gth_display-name1 " supply name gth_display-name2 " 制造商名称 INTO NUM SEPARATED BY '|' RESPECTING BLANKS. CONCATENATE NUM '|' INTO NUM . TRANSFER NUM TO dname. ENDLOOP. CLOSE DATASET dname. "close fileendif.
IF p2 = 'X'. "如果是下载到本地, gth_data-LOEKZ = 'T'. "flag of run times PERFORM SUB_IN_DATA_LOG.TYPES:begin of typ_NUM, NUM TYPE string, "OBJECT VALUESend of typ_NUM.DATA: gth_NUM TYPE typ_NUM, gtd_NUM TYPE TABLE OF typ_NUM. LOOP AT gtd_display INTO gth_display . CONCATENATE gth_display-LOEKZ gth_display-ebeln gth_display-ebelp gth_display-BEDAT gth_display-matnr " SAP 部件编号 gth_display-BISMT " old number* gth_display-wrkst " 客户部件编号 gth_display-mfrpn " 制造商部件编号 gth_display-lifnr " 供应商代码 gth_display-mfrnr " 制造商代码 gth_display-LAND1 " 原产国代码 gth_display-menge " 订货数量 gth_display-menge02 " 已收数量 gth_display-street " 送货地点 gth_display-meins " 计量单位 gth_display-waers " 结算币种 gth_display-netpr " 采购成本单价 gth_display-eindt " 计划供货日期 gth_display-EKGRP " 采购Group gth_display-name1 " supply name gth_display-name2 " 制造商名称 INTO gth_NUM-NUM SEPARATED BY '|' RESPECTING BLANKS. CONCATENATE gth_NUM-NUM '|' INTO gth_NUM-NUM . APPEND gth_NUM TO gtd_NUM. endloop.
CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING FILENAME = dname "file name TABLES DATA_TAB = gtd_NUM "inner table EXCEPTIONS FILE_WRITE_ERROR = 1 FILE_NOT_FOUND = 2.endif.
IF p3 = 'X'. PERFORM sub_display.ENDIF.
ENDFORM. "download_data
*&---------------------------------------------------------------------**& FORM SUB_GET_DATA*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*
FORM sub_get_data.
*** 查找修改的凭证号 select CDHDR~OBJECTID FROM CDHDR JOIN ekko ON CDHDR~OBJECTID = ekko~ebeln INTO table gtd_CDHDR where UDATE in s_aedat
and UTIME in s_times and CHANGE_IND = 'U'.*** 查找修改采购的凭证号
*** 查找数量变更的凭证号 MKPF-BUDAT MKPF- MBLNR MSEG-MBLNR mseg~ebeln EBELPIF gtd_ekko_CDHDR IS INITIAL . select MSEG~ebeln FROM MKPF JOIN MSEG ON MKPF~MBLNR = MSEG~MBLNR into table gtd_CDHDR where MKPF~BUDAT in s_aedat.else. select MSEG~ebeln FROM MKPF JOIN MSEG ON MKPF~MBLNR = MSEG~MBLNR APPENDING table gtd_CDHDR where MKPF~BUDAT in s_aedat.
endif.
IF gtd_CDHDR IS not INITIAL .
SELECT ekko~ebeln " 采购订单号 ekko~BEDAT " 订单签发日期 ekko~lifnr " 供应商代码 ekko~waers " 结算币种 ekko~EKGRP " 采购人 ekpo~ebelp " 订单行号 ekpo~matnr " 部件编号 ekpo~ematn " 下单号 ekpo~menge " 订货数量 ekpo~meins " 计量单位 ekpo~netpr " 采购成本单价 lfa1-name1 lfa1~name1 "supply name ekpo~LOEKZ "flag mara~BISMT FROM ekpo JOIN ekko ON ekko~ebeln = ekpo~ebeln JOIN lfa1 ON ekko~lifnr = lfa1~lifnr left join mara on ekpo~matnr = mara~matnr INTO CORRESPONDING FIELDS OF TABLE gtd_ekko_CDHDR FOR ALL ENTRIES IN gtd_CDHDR WHERE ekpo~ebeln = gtd_CDHDR-OBJECTID " 采购订单号 and BSART in ('ZNB1','ZNB2','ZNB6','ZNB7','ZNB8','ZNB9') "凭证类型
and EKORG = '2110'. "采购组织endif.
*** 根据选择界面筛选采购凭证信息 SELECT ekko~ebeln " 采购订单号 ekko~BEDAT " 订单签发日期 ekko~lifnr " 供应商代码 ekko~waers " 结算币种 ekko~EKGRP " 采购人 ekpo~ebelp " 订单行号 ekpo~matnr " 部件编号 ekpo~ematn " 下单号 ekpo~menge " 订货数量 ekpo~meins " 计量单位 ekpo~netpr " 采购成本单价 lfa1-name1 lfa1~name1 "supply name ekpo~LOEKZ "flag mara~BISMT FROM ekpo JOIN ekko ON ekko~ebeln = ekpo~ebeln JOIN lfa1 ON ekko~lifnr = lfa1~lifnr left join mara on ekpo~matnr = mara~matnr INTO CORRESPONDING FIELDS OF TABLE gtd_ekko WHERE ekko~ebeln IN s_ebeln " 采购订单号 AND ekko~BEDAT IN s_aedat and BSART in ('ZNB1','ZNB2','ZNB6','ZNB7','ZNB8','ZNB9') and EKORG = '2110' . " 订单签发日期
gth_ekko-LOEKZ = 'D'. "更改 flag :D。 MODIFY gtd_ekko FROM gth_ekko TRANSPORTING LOEKZ WHERE LOEKZ = 'L'.
IF gtd_ekko_CDHDR IS INITIAL and gtd_ekko IS INITIAL. MESSAGE 'There is no data found! Pls check your selection screen.' TYPE 'I'. STOP. ENDIF.
LOOP AT gtd_ekko_CDHDR INTO gth_ekko. if gth_ekko-LOEKZ = 'L'. gth_ekko-LOEKZ = 'D'. ELSE . gth_ekko-LOEKZ = 'U'. endif.
***删除经过修改,新生成的重复采购单 READ TABLE gtd_ekko INTO gtd_ekko_CF WITH KEY ebeln = gth_ekko-ebeln ebelp = gth_ekko-ebelp. IF sy-subrc = 0.* DELETE gtd_ekko FROM 3 TO 38 WHERE COL2 > 20. DELETE gtd_ekko WHERE ebeln = gth_ekko-ebeln and ebelp = gth_ekko-ebelp. ENDIF. APPEND gth_ekko TO gtd_ekko.endloop.
*** 部件号 客户部件编号 制造商部件代码 原产国代码 old code 制造商代码 NAME1 TYPE LFA1-NAME1, "manufactrul name LAND1 TYPE lfa1-LAND1, "Contry
* SELECT matnr mfrnr mfrpn SELECT MARA~MATNR mara~wrkst mara~mfrpn mara~BISMT mara~MFRNR LFA1~NAME1 LFA1~LAND1 INTO CORRESPONDING FIELDS OF TABLE gtd_mara FROM MARA left JOIN LFA1 ON MARA~MFRNR = LFA1~LIFNR FOR ALL ENTRIES IN gtd_ekko WHERE MARA~MATNR = gtd_ekko-ematn.
*** 101 入库物料凭证信息 SELECT mseg~ebeln mseg~ebelp mseg~mblnr mseg~zeile mseg~mjahr mseg~bwart mseg~menge FROM mseg INTO CORRESPONDING FIELDS OF TABLE gtd_mseg FOR ALL ENTRIES IN gtd_ekko WHERE mseg~ebeln = gtd_ekko-ebeln AND mseg~ebelp = gtd_ekko-ebelp AND bwart = '101'. PERFORM sub_process.
ENDFORM. "SUB_GET_DATA
FORM sub_InData.
ENDFORM.
*&---------------------------------------------------------------------**& FORM SUB_PROCESS.*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*
FORM sub_process. DATA: lwk_date1 TYPE d, lwk_date2 TYPE d. DATA: lwk_qty LIKE mseg-menge.
LOOP AT gtd_ekko INTO gth_ekko. if gth_ekko-LOEKZ = ''. gth_ekko-LOEKZ = 'A'. "flag new 。 endif.
** insert into table gth_data-MANDT = SY-MANDT. gth_data-EBELN = gth_ekko-EBELN. gth_data-EBELP = gth_ekko-EBELP. gth_data-LOEKZ = gth_ekko-LOEKZ. gth_data-AEDAT = SY-DATUM. gth_data-CPUTM = SY-UZEIT. gth_data-DRUNR = C_DRUNR.
CLEAR gth_CDHDR_DRUNR.
SELECT DRUNR FROM ZFO_DATA INTO gth_CDHDR_DRUNR WHERE EBELN = gth_ekko-EBELN AND EBELP = gth_ekko-EBELP AND LOEKZ = gth_ekko-LOEKZ . ENDSELECT. IF sy-subrc = 0. "have one more data
if gth_data-LOEKZ = 'U' . "OR gth_data-LOEKZ = 'D' if P1 = 'X'. update ZFO_DATA from gth_data. "删除,更改的,确实要下载到服务器的,更改数据记录。 endif. else. gth_ekko-LOEKZ = 'C'. "数据存在,标志为C endif.
ENDIF.
IF P1 = 'X'. INSERT ZFO_DATA from gth_data. "can insert if something is new ENDIF.
* IF sy-subrc <> 0.** ENDIF.
MOVE-CORRESPONDING gth_ekko TO gth_display.*** 部件号 制造商部件编号 制造商名称 旧物料号 制造商代码 原产国代码
READ TABLE gtd_mara INTO gth_mara WITH KEY matnr = gth_ekko-ematn. IF sy-subrc = 0.* gth_display-wrkst = gth_mara-wrkst. gth_display-mfrpn = gth_mara-mfrpn. gth_display-name2 = gth_mara-name1.
gth_display-MFRNR = gth_mara-MFRNR. "Manufacturer code gth_display-LAND1 = gth_mara-LAND1. "country
ENDIF.
***统计已入库数量 LOOP AT gtd_mseg INTO gth_mseg WHERE ebeln = gth_ekko-ebeln AND ebelp = gth_ekko-ebelp . SELECT SINGLE * FROM mseg WHERE smbln = gth_mseg-mblnr AND sjahr = gth_mseg-mjahr AND smblp = gth_mseg-zeile AND bwart = '102'. IF sy-subrc <> 0. lwk_qty = lwk_qty + gth_mseg-menge. ENDIF. ENDLOOP. gth_display-menge02 = lwk_qty . CLEAR: lwk_qty.*** 未交货数量* gth_display-menge03 = gth_display-menge - gth_display-menge02 .*** 确认交货时间 SELECT SINGLE eindt INTO gth_display-eindt FROM eket WHERE ebeln = gth_ekko-ebeln AND ebelp = gth_ekko-ebelp. gth_display-street = '浙江省嘉兴市亚太路1号'.
APPEND gth_display TO gtd_display.
ENDLOOP.
ENDFORM. "SUB_PROCESS.
*&---------------------------------------------------------------------**& FORM SUB_DISPLAY.*&---------------------------------------------------------------------** text*----------------------------------------------------------------------**----------------------------------------------------------------------*.
FORM sub_display.
*** FIELD CATEGORY PERFORM sub_fieldcat.*** LAYOUT SETTING gth_layout-colwidth_optimize = 'X'.
*** CALL FUNCTION CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = 'ZFI021' i_default = 'X' i_save = 'X'* I_CALLBACK_PF_STATUS_SET = 'STATUS_SET'* I_CALLBACK_USER_COMMAND = 'SUB_USERCOMMAND' it_fieldcat = gtd_fieldcat is_layout = gth_layout TABLES t_outtab = gtd_display EXCEPTIONS program_error = 1 other = 2.
ENDFORM. "SUB_DISPLAY
*&---------------------------------------------------------------------**& FORM SUB_FIELDCAT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*
FORM sub_fieldcat.
gth_fieldcat-fieldname = 'LOEKZ' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '标志'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'EBELN' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '采购订单号'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'EBELP' . gth_fieldcat-tabname = 'GTD_DISPLAY'. gth_fieldcat-seltext_m = '订单行号'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'BEDAT' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '订单签发日期'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'MATNR' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '部件编号'. gth_fieldcat-ref_fieldname = 'MATNR'. gth_fieldcat-ref_tabname = 'MARA'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'BISMT' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '客户部件编号'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'MFRPN'. gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '制造商部件编号'. gth_fieldcat-ref_fieldname = 'IDNLF'. gth_fieldcat-ref_tabname = 'MARA'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'LIFNR' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '供应商代码'. GTH_FIELDCAT-REF_FIELDNAME = 'LIFNR'. GTH_FIELDCAT-REF_TABNAME = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'EINDT' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '计划供货日期'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'WAERS' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '结算币种'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'EKGRP' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '采购组'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'MENGE' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '订货数量'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'MEINS' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '计量单位'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'NETPR' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '采购成本单价'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'NAME1' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '供应商名称'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'MFRNR' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '制造商代码'. gth_fieldcat-ref_fieldname = 'MFRNR'. gth_fieldcat-ref_tabname = 'MARA'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'NAME2' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '制造商名称'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'LAND1' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '原产国代码'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'MENGE02' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '已收数量'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
gth_fieldcat-fieldname = 'STREET' . gth_fieldcat-tabname = 'GTD_DISPLAY' . gth_fieldcat-seltext_m = '送货地点'.* gth_fieldcat-ref_fieldname = 'EBELN'.* gth_fieldcat-ref_tabname = 'EKKO'. APPEND gth_fieldcat TO gtd_fieldcat. CLEAR gth_fieldcat.
ENDFORM . "SUB_FIELDCAT