ABAP程序的性能优化啊.

来源:互联网 发布:皇图坐骑进阶数据 编辑:程序博客网 时间:2024/05/22 02:21

*===============================基本信息===============================*
* 标题:销售订单评审一览表
* 创建日期:2006-03-15       
* 基本描述:XXX        
*===============================更改日志===============================*
* 申请号       日期         修改人           更改描述
* 2008-04修改新老产品,“新/老产品”--BOM和CQS使用取于物料主数据,CQS评
* 审完后修改物料主数据由新产品更改为老产品。视图更改:CQS评审更改物料定
* 价组,只开通修改销售视图,所以BDC所选的位置是2
* 2008-04-07增加ZAR的订单类型,为益周物流(物控,生管,采购)在"生管评审备注"
* 填写生产异常信息
** 2008-06-24  同一订单下的相同新产品把第二项改成老产品。(取消)
* 2008-09-27   优化
* 2008-11-25 从20081202后的免费订单由GCM评审
* 2008-12-11 放开ZAR订单查看的权限
* 2009-01-19 CQS评审时不仅带出评审帐号且带上电脑名
* 2009-01-21 增加ZMJ收费无料号样品订单评审,只要GCM评审
* 2009-03-05 取消ZMJ样品订单的评审
* 2009-03-18 销售人员姓名改为取自订单版本号 YLT
*CQS权限说明  WTCQS帐号只能评审不为A,B,C,Y的料号;YJCQS不能评审80R的料号
* 2009-07-10 增加送达方
*===============================定    义===============================*

************************************************************************
* 基本代码
************************************************************************
REPORT ZR_SD_043
NO STANDARD PAGE HEADING
LINE-COUNT 65
LINE-SIZE  150
MESSAGE-ID ZSD1.

************************************************************************
* INCLUDE:包含文件
************************************************************************
INCLUDE OLE2INCL.

************************************************************************
* TABLE: 定义内表和TABLE
************************************************************************
TABLES: MARC,MARA, T001W, MAKT, VBAK,VBEP,VBAP,JEST,JCDS,ONRVB,MAST,STKO,MVKE,ZJCDS.
************************************************************************
* TYPE : 定义数据类型
************************************************************************
TYPE-POOLS: SLIS.
*报表最后输出时使用的数据
DATA:  T_VBAK1 LIKE VBAK OCCURS 0 WITH HEADER LINE.         "销售订单
DATA:  T_TEMP  LIKE VBAP OCCURS 0 WITH HEADER LINE.        "YILT 销售订单项目数据
DATA: FLAG.
DATA: BEGIN OF T_VBAK OCCURS 0.
        INCLUDE STRUCTURE T_VBAK1.
DATA NAME1 LIKE KNA1-NAME1.
DATA BZ(80).
DATA FLAG.
DATA: END OF T_VBAK.
DATA: BEGIN OF T_VBAP1 OCCURS 0,
         POSNR LIKE VBAP-POSNR,
         MATNR LIKE VBAP-MATNR,
         MAKTX LIKE MAKT-MAKTX,
         ZMENG LIKE VBAP-ZMENG,
         MEINS LIKE VBAP-MEINS,
         NETWR_D LIKE VBAP-NETWR,
         KWMENG LIKE VBAP-KWMENG,
         KDMAT LIKE VBAP-KDMAT,
         KONDM LIKE VBAP-KONDM,
         MMKON LIKE MVKE-KONDM,
         ABGRU LIKE VBAP-ABGRU,
         SERNR LIKE VBAP-SERNR,
         VTEXT LIKE T178T-VTEXT,
         SOVTE LIKE T178T-VTEXT,
         VTEXT1 LIKE TSPAT-VTEXT,
         NAME1 LIKE KNA1-NAME1,
         DISPO LIKE MARC-DISPO,
         BISMT LIKE MARA-BISMT,

      END OF T_VBAP1.


DATA: BEGIN  OF  IT_PRINT_001  OCCURS  0.
DATA FLAG.
DATA: COLOR1 TYPE SLIS_T_SPECIALCOL_ALV.

        INCLUDE STRUCTURE T_VBAK1.
        INCLUDE STRUCTURE T_VBAP1.
DATA BSTKD_E LIKE VBKD-BSTKD_E.
DATA XL(130).
DATA E1.
DATA ET1(130).
DATA E2.
DATA ET2(40).
DATA E3.
DATA ET3(40).
DATA E4.
DATA ET4(132).
DATA E5.  "免费订单GCM评审状态
DATA ET5(132).
DATA COLOR(4) TYPE C .  "显示颜色-- PPAP订单为黄色 ELIN 09-06-30

*DATA BSTKD_E LIKE VBKD-BSTKD_E.               "谢明志 05-08-18
DATA STRGR LIKE MARC-STRGR.
DATA ZKUNNR LIKE VBAK-KUNNR.     "送达方客户号
DATA NAME2 LIKE KNA1-NAME1.      "送达方名称
DATA SNAME LIKE PA0001-SNAME.    "销售人员姓名
DATA USNAM0 LIKE JCDS-USNAM.
DATA UDATE0 LIKE JCDS-UDATE.
DATA UTIME0 LIKE JCDS-UTIME.
DATA USNAM01(12).

DATA USNAM1 LIKE JCDS-USNAM.
DATA UDATE1 LIKE JCDS-UDATE.
DATA UTIME1 LIKE JCDS-UTIME.
DATA USNAM11(12).

DATA USNAM2 LIKE JCDS-USNAM.
DATA IPDEC2(16) TYPE C.  "取CQS评审人的IP
DATA HOST2(25) TYPE C.  "取CQS评审人的电脑名
DATA ZNAME LIKE ZDT02-ZNAME. "CQS评审人姓名
DATA UDATE2 LIKE JCDS-UDATE.
DATA UTIME2 LIKE JCDS-UTIME.
DATA USNAM21(12).

DATA USNAM3 LIKE JCDS-USNAM.
DATA UDATE3 LIKE JCDS-UDATE.
DATA UTIME3 LIKE JCDS-UTIME.
DATA USNAM31(12).
*免费订单由GCM评审
DATA USNAM4 LIKE JCDS-USNAM.
DATA UDATE4 LIKE JCDS-UDATE.
DATA UTIME4 LIKE JCDS-UTIME.
DATA USNAM41(12).

DATA :OBJNR1 LIKE ONRVB-OBJNR,
      OBJNR2 LIKE ONRVB-OBJNR,
      EDATU LIKE VBEP-EDATU,

      WERKS LIKE VBAP-WERKS,
      STLST LIKE STKO-STLST    "BOM状态
      .

DATA: END  OF  IT_PRINT_001.
DATA Z_AREA LIKE IT_PRINT_001.
DATA L_TEMP LIKE LINE OF IT_PRINT_001.
DATA: IP_UNAME TYPE USR41-TERMINAL.
DATA: P_REPORT,
      P_ALV.
*长文本信息
DATA: IT_LTEXT TYPE STANDARD TABLE OF TLINE
      INITIAL SIZE 1 WITH HEADER LINE.

*BDC使用的参数
DATA:  IT_BDCDATA_001 LIKE STANDARD TABLE OF BDCDATA INITIAL SIZE 6
WITH HEADER LINE,SESSION LIKE APQI-GROUPID.


*读取EXCEL表格后,存放数据
*NEED MODIFY: 根据EXCEL表格字段量的不同做修改。这里只适用不多于5个字
*段的情况,如有更多的字段,则必须进行相应的扩展。扩展后子程序
*F_FILE_READ_DATA的也要做相应的扩展。
DATA: BEGIN OF IT_EXCEL_001 OCCURS 0,
        COLUMN_001(20) ,
        COLUMN_002(20) ,
        COLUMN_003(20) ,
        COLUMN_004(20) ,
        COLUMN_005(20) ,
END OF IT_EXCEL_001.

DATA: BEGIN OF IT_SELECT_CONDITION OCCURS 0,
        SIGN(1) ,
        OPTION(2) ,
        LOW(8) ,
        HIGH(8) ,
END OF IT_SELECT_CONDITION.

************************************************************************
* CONSTANTS : 定义常量
************************************************************************


************************************************************************
* TYPE : 定义数据类型
************************************************************************
TYPE-POOLS: SLIS.

************************************************************************
* DATA : 定义变量
************************************************************************

*用于绘制普通REPORT
DATA G_WRITE_COUNT TYPE I VALUE 0.
DATA G_INIT_COUNT TYPE I VALUE 0.
DATA G_LAST_FILED_WIDTH TYPE I VALUE 0.
TYPES  TYPE_IT_WRITE_POSITION  TYPE  I  OCCURS  0 .
DATA IT_WRITE_POSITION TYPE TYPE_IT_WRITE_POSITION.

*用于ALV控件双击事件
DATA: G_SELECTED_FIELD_VALUE(80).
DATA: G_TABINDEX TYPE I.
DATA: COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.  "用于显示不同颜色
*ALV控件构造时需要的参数
DATA: G_ALV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      G_ALV_FIELDCAT_LINE LIKE LINE OF G_ALV_FIELDCAT,
      G_ALV_EVENT         TYPE SLIS_T_EVENT.

*读取EXCEL文件时需要的对象
DATA EXCEL TYPE OLE2_OBJECT.
DATA WORKBOOK TYPE OLE2_OBJECT.
DATA CELL TYPE OLE2_OBJECT.

*ALV控件输出的表头
DATA: G_ALV_LISTHEADER TYPE SLIS_T_LISTHEADER.

*指定ALV控件触发TOP_OF_PAGE事件时调用的子程序
DATA: G_ALV_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME
                             VALUE 'F_ALV_EVENT_TOP_OF_PAGE'.
*指定ALV控件触发END_OF_LIST事件时调用的子程序
DATA: G_ALV_FORMNAME_END_OF_LIST TYPE SLIS_FORMNAME
                             VALUE 'F_ALV_EVENT_END_OF_LIST'.

*指定ALV控件的显示特征
DATA : G_ALV_LAYOUT                 TYPE SLIS_LAYOUT_ALV.
*BDC
DATA:  MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER
LINE.
************************************************************************
* DEFINE: 定义宏
************************************************************************
*普通报表格式的输出宏
DEFINE MACRO001.
  WRITE: "NEED MODIFY
    /1 &1,
    21 &2,
    41 &3,
    61 &4,
    81 &5,
    100 &6.
END-OF-DEFINITION.

************************************************************************
*  SELECTION SCREEN : 定义报表筛选条件
************************************************************************
*确定过滤参数
SELECTION-SCREEN BEGIN OF BLOCK FLAG WITH FRAME TITLE BLK_001 .
SELECT-OPTIONS : S_VBELN FOR VBAK-VBELN,
                 S_POSNR FOR VBAP-POSNR,
                 S_VKORG FOR VBAK-VKORG OBLIGATORY MEMORY ID VOK ,
                 S_VTWEG FOR VBAK-VTWEG,
                 S_SPART FOR VBAK-SPART,
                 S_VKBUR FOR VBAK-VKBUR,
                 S_VKGRP FOR VBAK-VKGRP,
                 S_KUNNR FOR VBAK-KUNNR,
                 S_ERDAT FOR VBAK-ERDAT,
                 S_VDATU FOR VBAK-VDATU,
                 S_EDATU FOR VBEP-EDATU,   "YLT 增加行项目交期
                 S_MATNR FOR MARC-MATNR,
                 S_DISPO FOR MARC-DISPO,
                 S_AUGRU FOR VBAK-AUGRU,
                 S_ABGRU FOR VBAP-ABGRU,
                 S_KONDM FOR VBAP-KONDM.
*                 S_MMKON FOR MVKE-KONDM.
PARAMETERS: SGD AS CHECKBOX DEFAULT ''."启用生管过滤评审时间
SELECT-OPTIONS :S_UDATE FOR JCDS-UDATE.
SELECT-OPTIONS S_STLST FOR STKO-STLST.
SELECTION-SCREEN END OF BLOCK FLAG.

SELECTION-SCREEN BEGIN OF BLOCK BLK_002 WITH FRAME TITLE BLK_002 .
PARAMETERS:
            S_ALL RADIOBUTTON GROUP R1 ,
            S_PS RADIOBUTTON GROUP R1 DEFAULT 'X',
            EPLAS RADIOBUTTON GROUP R1 ,
            S_AZFD  RADIOBUTTON GROUP R1 ,  "所有免费订单
            S_ZFD RADIOBUTTON GROUP R1 .      "所有未评审的免费订单

SELECTION-SCREEN END OF BLOCK BLK_002.
*选择文件
*NEED MODIFY:当要使用文件功能时,只要将代码“NO-DISPLAY”去掉即可
*代码“NO-DISPLAY”的作用:隐藏参数
SELECTION-SCREEN BEGIN OF BLOCK BLK_003 WITH FRAME TITLE BLK_003 .
PARAMETERS: P_FILE LIKE CFFILE-FILENAME NO-DISPLAY  .
SELECTION-SCREEN END OF BLOCK BLK_003.

*===============================事    件===============================*
************************************************************************
* INITIALIZATION.启动程序开始执行
************************************************************************


************************************************************************
* AT SELECTION SCREEN:
************************************************************************
AT SELECTION-SCREEN.
  PERFORM F_CHECK_INPUT.          "检查用户输入


INITIALIZATION.
  BLK_001 = '检索参数---PPAP订单为黄色背景色!'.
  BLK_002 = '报表类型'.
  BLK_003 = '文件参数'.

 

**用于弹出文件对话框
*NEED MODIFY:当要使用文件功能时,只要将以下代码的注释去掉即可
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*  PERFORM F_FILE_GET.

************************************************************************
* START OF SELECTION:
************************************************************************
START-OF-SELECTION.
*往数据库增加运行日志
  DATA: BEGIN  OF  IT_ZREPORTLOG OCCURS  0.
  INCLUDE TYPE ZREPORTLOG.
  DATA: END  OF IT_ZREPORTLOG .

  IT_ZREPORTLOG-MANDT = SY-MANDT.
  IT_ZREPORTLOG-TCODE = SY-TCODE.
  IT_ZREPORTLOG-DATUM = SY-DATUM.
  IT_ZREPORTLOG-UZEIT = SY-UZEIT.
  IT_ZREPORTLOG-UNAME = SY-UNAME.
  IT_ZREPORTLOG-TITLE = SY-TITLE.
  APPEND IT_ZREPORTLOG.
  INSERT INTO ZREPORTLOG VALUES IT_ZREPORTLOG .
*如果P_FILE有赋值,则进行EXCEL文件读取
  IF P_FILE <> ''.
    PERFORM F_FILE_OPEN.           "文件2.打开文件
    PERFORM F_FILE_READ_DATA.      "文件3.取文件中的数据
    PERFORM F_FILE_CLOSE.          "文件3.关闭文件
  ENDIF.

  PERFORM F_READ_DATA.


************************************************************************
* END OF SELECTION
************************************************************************
END-OF-SELECTION.
*  IF P_REPORT = 'X'.
*    PERFORM F_PRINT_REPORT.
*  ELSEIF P_ALV = 'X'.
  PERFORM F_PRINT_ALV.
*  ELSEIF P_FORM = 'X'.
*    PERFORM F_PRINT_FORM.
*ENDIF.

************************************************************************
* TOP OF PAGE
************************************************************************
TOP-OF-PAGE.

************************************************************************
* END OF PAGE
************************************************************************
END-OF-PAGE.

************************************************************************
* LINE SELECTION
************************************************************************
AT LINE-SELECTION .

************************************************************************
* AT PFXX:
************************************************************************
  AT PFXX.

************************************************************************
* AT USER-COMMAND
************************************************************************
AT USER-COMMAND.


*===============================子 例 程===============================*
************************************************************************
*过滤条件有效性检查
FORM F_CHECK_INPUT.
*增加销售机构权限检查BY PXY AT 08-06-02
  TABLES:T001.
  SELECT T001~BUKRS
  FROM T001
    INTO T001-BUKRS
    WHERE T001~BUKRS IN S_VKORG.
    AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'CO.'
                                     ID 'BUKRS' FIELD T001-BUKRS.
    IF SY-SUBRC <> 0 .
      MESSAGE E026 WITH S_VKORG.
    ENDIF.
  ENDSELECT.

  IF EPLAS = 'X'.
* 权限控制,S43D权限组能修改“生产评审意见”的相关字段
*    AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43D' ID 'BUKRS' FIELD T001-BUKRS..
*    IF SY-SUBRC <> 0 .
*      MESSAGE E015.
*    ENDIF.
  ENDIF.
ENDFORM.                    " F_CHECK_INPUT
************************************************************************
*从数据库中读取数据,填充报表输出时所用的内表
FORM F_READ_DATA .
  DATA: CELLCOLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
  IF EPLAS = 'X'.
    SELECT *
   FROM  VBAP
   INNER JOIN VBAK
       ON VBAK~VBELN = VBAP~VBELN
*   INNER JOIN ONRVB
*       ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
   INNER JOIN VBEP
       ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
*   INNER JOIN JEST
*       ON JEST~OBJNR = ONRVB~OBJNR
*      AND JEST~INACT = ''
*      AND JEST~CHGNR = '001'
   INNER JOIN MARC
       ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
   INNER JOIN MARA
       ON VBAP~MATNR = MARA~MATNR
   INTO CORRESPONDING FIELDS OF TABLE IT_PRINT_001
   WHERE VBAK~VBELN IN S_VBELN
     AND VBAP~POSNR IN S_POSNR
     AND VBAK~VKORG IN S_VKORG
     AND VBAK~VTWEG IN S_VTWEG
     AND VBAK~SPART IN S_SPART
     AND VBAK~VKBUR IN S_VKBUR
     AND VBAK~VKGRP IN S_VKGRP
     AND VBAK~KUNNR IN S_KUNNR
     AND VBAK~ERDAT IN S_ERDAT
     AND VBAK~VDATU IN S_VDATU
     AND VBEP~EDATU IN S_EDATU  "行项目交期
     AND VBAK~AUGRU IN S_AUGRU
     AND VBAP~ABGRU IN S_ABGRU
     AND VBAK~AUART = 'ZAR'  "EPLAS不需要订单评审的生管备注
     AND MARC~DISPO IN S_DISPO
     AND MARC~MATNR IN S_MATNR
     AND VBAP~KONDM IN S_KONDM.
*  ELSEIF S_ALL = ''.
  ELSEIF S_PS = 'X'.
    SELECT *
   FROM  VBAP
   INNER JOIN VBAK
       ON VBAK~VBELN = VBAP~VBELN
   INNER JOIN ONRVB
       ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
   INNER JOIN VBEP
       ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
   INNER JOIN JEST
       ON JEST~OBJNR = ONRVB~OBJNR
      AND JEST~INACT = ''
      AND JEST~CHGNR = '001'
   INNER JOIN MARC
       ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
   INNER JOIN MARA
       ON VBAP~MATNR = MARA~MATNR
   INTO CORRESPONDING FIELDS OF TABLE IT_PRINT_001
   WHERE VBAK~VBELN IN S_VBELN
     AND VBAP~POSNR IN S_POSNR
     AND VBAK~VKORG IN S_VKORG
     AND VBAK~VTWEG IN S_VTWEG
     AND VBAK~SPART IN S_SPART
     AND VBAK~VKBUR IN S_VKBUR
     AND VBAK~VKGRP IN S_VKGRP
     AND VBAK~KUNNR IN S_KUNNR
     AND VBAK~ERDAT IN S_ERDAT
     AND VBAK~VDATU IN S_VDATU
     AND VBEP~EDATU IN S_EDATU  "行项目交期
     AND VBAK~AUGRU IN S_AUGRU
     AND VBAP~ABGRU IN S_ABGRU
     AND ( VBAK~AUART = 'ZOR' OR VBAK~AUART = 'ZSD'
        OR VBAK~AUART = 'ZKB' OR VBAK~AUART = 'ZTJ'  )
*        OR VBAK~AUART = 'ZFD' OR VBAK~AUART = 'ZKB' )  "免费订单用另外的处理方式
     AND MARC~DISPO IN S_DISPO
     AND MARC~MATNR IN S_MATNR
     AND VBAP~KONDM IN S_KONDM
     AND ( JEST~STAT = 'E0001' OR JEST~STAT = 'E0002' OR JEST~STAT = 'E0003' ).

    SELECT *
FROM  VBAP
INNER JOIN VBAK
ON VBAK~VBELN = VBAP~VBELN
INNER JOIN ONRVB
ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
INNER JOIN VBEP
ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
INNER JOIN JEST
ON JEST~OBJNR = ONRVB~OBJNR
AND JEST~INACT = ''
AND JEST~CHGNR = '001'
INNER JOIN MARC
ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
INNER JOIN MARA
ON VBAP~MATNR = MARA~MATNR
APPENDING CORRESPONDING FIELDS OF TABLE IT_PRINT_001
WHERE VBAK~VBELN IN S_VBELN
AND VBAP~POSNR IN S_POSNR
AND VBAK~VKORG IN S_VKORG
AND VBAK~VTWEG IN S_VTWEG
AND VBAK~SPART IN S_SPART
AND VBAK~VKBUR IN S_VKBUR
AND VBAK~VKGRP IN S_VKGRP
AND VBAK~KUNNR IN S_KUNNR
AND VBAK~ERDAT IN S_ERDAT
AND VBAK~VDATU IN S_VDATU
AND VBEP~EDATU IN S_EDATU  "行项目交期
AND VBAK~AUGRU IN S_AUGRU
AND VBAP~ABGRU IN S_ABGRU
AND VBAK~AUART = 'ZFD'     "免费订单用另外的处理方式
AND MARC~DISPO IN S_DISPO
AND MARC~MATNR IN S_MATNR
AND VBAP~KONDM IN S_KONDM
*     AND VBAK~ERDAT <= '20081202' "在此日期前的免费订单为三个状态
AND VBAK~ERDAT <= '20081201' "在此日期前的免费订单为三个状态
AND ( JEST~STAT = 'E0001' OR JEST~STAT = 'E0002' OR JEST~STAT = 'E0003').

    SELECT *
FROM  VBAP
INNER JOIN VBAK
  ON VBAK~VBELN = VBAP~VBELN
INNER JOIN ONRVB
  ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
INNER JOIN VBEP
  ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
INNER JOIN JEST
  ON JEST~OBJNR = ONRVB~OBJNR
 AND JEST~INACT = ''
 AND JEST~CHGNR = '001'
INNER JOIN MARC
  ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
INNER JOIN MARA
  ON VBAP~MATNR = MARA~MATNR
APPENDING CORRESPONDING FIELDS OF TABLE IT_PRINT_001
WHERE VBAK~VBELN IN S_VBELN
AND VBAP~POSNR IN S_POSNR
AND VBAK~VKORG IN S_VKORG
AND VBAK~VTWEG IN S_VTWEG
AND VBAK~SPART IN S_SPART
AND VBAK~VKBUR IN S_VKBUR
AND VBAK~VKGRP IN S_VKGRP
AND VBAK~KUNNR IN S_KUNNR
AND VBAK~ERDAT IN S_ERDAT
AND VBAK~VDATU IN S_VDATU
AND VBEP~EDATU IN S_EDATU  "行项目交期
AND VBAK~AUGRU IN S_AUGRU
AND VBAP~ABGRU IN S_ABGRU
AND VBAK~AUART = 'ZFD'     "免费订单用另外的处理方式
AND MARC~DISPO IN S_DISPO
AND MARC~MATNR IN S_MATNR
AND VBAP~KONDM IN S_KONDM
*     AND VBAK~ERDAT > '20081202'
AND VBAK~ERDAT > '20081201'
AND ( JEST~STAT = 'E0001' OR JEST~STAT = 'E0002' OR JEST~STAT = 'E0003'  OR JEST~STAT = 'E0004').

*    SELECT *
*FROM  VBAP
*INNER JOIN VBAK
*  ON VBAK~VBELN = VBAP~VBELN
*INNER JOIN ONRVB
*  ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
*INNER JOIN VBEP
*  ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
*INNER JOIN JEST
*  ON JEST~OBJNR = ONRVB~OBJNR
* AND JEST~INACT = ''
* AND JEST~CHGNR = '001'
*INNER JOIN MARC
*  ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
*INNER JOIN MARA
*  ON VBAP~MATNR = MARA~MATNR
*APPENDING CORRESPONDING FIELDS OF TABLE IT_PRINT_001
*WHERE VBAK~VBELN IN S_VBELN
*AND VBAP~POSNR IN S_POSNR
*AND VBAK~VKORG IN S_VKORG
*AND VBAK~VTWEG IN S_VTWEG
*AND VBAK~SPART IN S_SPART
*AND VBAK~VKBUR IN S_VKBUR
*AND VBAK~VKGRP IN S_VKGRP
*AND VBAK~KUNNR IN S_KUNNR
*AND VBAK~ERDAT IN S_ERDAT
*AND VBAK~VDATU IN S_VDATU
*AND VBEP~EDATU IN S_EDATU  "行项目交期
*AND VBAK~AUGRU IN S_AUGRU
*AND VBAP~ABGRU IN S_ABGRU
*AND VBAK~AUART = 'ZMJ'
*AND MARC~DISPO IN S_DISPO
*AND MARC~MATNR IN S_MATNR
*AND VBAP~KONDM IN S_KONDM
*AND ( JEST~STAT = 'E0001' ).

  ELSEIF S_ZFD = 'X'.

    SELECT *
FROM  VBAP
INNER JOIN VBAK
ON VBAK~VBELN = VBAP~VBELN
INNER JOIN ONRVB
ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
INNER JOIN VBEP
ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
INNER JOIN JEST
ON JEST~OBJNR = ONRVB~OBJNR
AND JEST~INACT = ''
AND JEST~CHGNR = '001'
INNER JOIN MARC
ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
INNER JOIN MARA
ON VBAP~MATNR = MARA~MATNR
INTO CORRESPONDING FIELDS OF TABLE IT_PRINT_001
WHERE VBAK~VBELN IN S_VBELN
AND VBAP~POSNR IN S_POSNR
AND VBAK~VKORG IN S_VKORG
AND VBAK~VTWEG IN S_VTWEG
AND VBAK~SPART IN S_SPART
AND VBAK~VKBUR IN S_VKBUR
AND VBAK~VKGRP IN S_VKGRP
AND VBAK~KUNNR IN S_KUNNR
AND VBAK~ERDAT IN S_ERDAT
AND VBAK~VDATU IN S_VDATU
AND VBEP~EDATU IN S_EDATU  "行项目交期
AND VBAK~AUGRU IN S_AUGRU
AND VBAP~ABGRU IN S_ABGRU
AND VBAK~AUART = 'ZFD'     "免费订单用另外的处理方式
AND MARC~DISPO IN S_DISPO
AND MARC~MATNR IN S_MATNR
AND VBAP~KONDM IN S_KONDM
*     AND VBAK~ERDAT <= '20081202'  "在此日期前的免费订单为三个状态
AND VBAK~ERDAT <= '20081201'  "在此日期前的免费订单为三个状态
AND ( JEST~STAT = 'E0001' OR JEST~STAT = 'E0002' OR JEST~STAT = 'E0003').

    SELECT *
FROM  VBAP
INNER JOIN VBAK
  ON VBAK~VBELN = VBAP~VBELN
INNER JOIN ONRVB
  ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
INNER JOIN VBEP
  ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
INNER JOIN JEST
  ON JEST~OBJNR = ONRVB~OBJNR
 AND JEST~INACT = ''
 AND JEST~CHGNR = '001'
INNER JOIN MARC
  ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
INNER JOIN MARA
  ON VBAP~MATNR = MARA~MATNR
APPENDING CORRESPONDING FIELDS OF TABLE IT_PRINT_001
WHERE VBAK~VBELN IN S_VBELN
AND VBAP~POSNR IN S_POSNR
AND VBAK~VKORG IN S_VKORG
AND VBAK~VTWEG IN S_VTWEG
AND VBAK~SPART IN S_SPART
AND VBAK~VKBUR IN S_VKBUR
AND VBAK~VKGRP IN S_VKGRP
AND VBAK~KUNNR IN S_KUNNR
AND VBAK~ERDAT IN S_ERDAT
AND VBAK~VDATU IN S_VDATU
AND VBEP~EDATU IN S_EDATU  "行项目交期
AND VBAK~AUGRU IN S_AUGRU
AND VBAP~ABGRU IN S_ABGRU
AND VBAK~AUART = 'ZFD'     "免费订单用另外的处理方式
AND MARC~DISPO IN S_DISPO
AND MARC~MATNR IN S_MATNR
AND VBAP~KONDM IN S_KONDM
*     AND VBAK~ERDAT > '20081202'
AND VBAK~ERDAT > '20081201'
AND ( JEST~STAT = 'E0001' OR JEST~STAT = 'E0002' OR JEST~STAT = 'E0003'  OR JEST~STAT = 'E0004').

*    SELECT *
*FROM  VBAP
*INNER JOIN VBAK
*  ON VBAK~VBELN = VBAP~VBELN
*INNER JOIN ONRVB
*  ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
*INNER JOIN VBEP
*  ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
*INNER JOIN JEST
*  ON JEST~OBJNR = ONRVB~OBJNR
* AND JEST~INACT = ''
* AND JEST~CHGNR = '001'
*INNER JOIN MARC
*  ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
*INNER JOIN MARA
*  ON VBAP~MATNR = MARA~MATNR
*APPENDING CORRESPONDING FIELDS OF TABLE IT_PRINT_001
*WHERE VBAK~VBELN IN S_VBELN
*AND VBAP~POSNR IN S_POSNR
*AND VBAK~VKORG IN S_VKORG
*AND VBAK~VTWEG IN S_VTWEG
*AND VBAK~SPART IN S_SPART
*AND VBAK~VKBUR IN S_VKBUR
*AND VBAK~VKGRP IN S_VKGRP
*AND VBAK~KUNNR IN S_KUNNR
*AND VBAK~ERDAT IN S_ERDAT
*AND VBAK~VDATU IN S_VDATU
*AND VBEP~EDATU IN S_EDATU  "行项目交期
*AND VBAK~AUGRU IN S_AUGRU
*AND VBAP~ABGRU IN S_ABGRU
*AND VBAK~AUART = 'ZMJ'
*AND MARC~DISPO IN S_DISPO
*AND MARC~MATNR IN S_MATNR
*AND VBAP~KONDM IN S_KONDM
*AND ( JEST~STAT = 'E0001').

  ELSE.
    IF SGD = 'X'.
      SELECT *
      FROM  VBAP
      INNER JOIN VBAK
          ON VBAK~VBELN = VBAP~VBELN
      INNER JOIN ONRVB
          ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
      INNER JOIN JCDS
         ON JCDS~OBJNR = ONRVB~OBJNR
        AND JCDS~STAT  = 'E0004'
        AND JCDS~CHIND = 'I'
      INNER JOIN VBEP
          ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
     INNER JOIN MARC
         ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
     INNER JOIN MARA
         ON VBAP~MATNR = MARA~MATNR
      INTO CORRESPONDING FIELDS OF TABLE IT_PRINT_001
      WHERE VBAK~VBELN IN S_VBELN
        AND VBAP~POSNR IN S_POSNR
        AND VBAK~VKORG IN S_VKORG
        AND VBAK~VTWEG IN S_VTWEG
        AND VBAK~SPART IN S_SPART
        AND VBAK~VKBUR IN S_VKBUR
        AND VBAK~VKGRP IN S_VKGRP
        AND VBAK~KUNNR IN S_KUNNR
        AND VBAK~ERDAT IN S_ERDAT
        AND VBAK~VDATU IN S_VDATU
        AND VBEP~EDATU IN S_EDATU  "行项目交期
        AND VBAK~AUGRU IN S_AUGRU
        AND VBAP~ABGRU IN S_ABGRU
        AND MARC~DISPO IN S_DISPO
        AND MARC~MATNR IN S_MATNR
*      AND JCDS~USNAM IN S_
        AND JCDS~UDATE IN S_UDATE
*      AND JCDS~UTIME IN S_
       AND VBAP~KONDM IN S_KONDM
        AND ( VBAK~AUART = 'ZOR' OR VBAK~AUART = 'ZSD'
           OR VBAK~AUART = 'ZFD' OR VBAK~AUART = 'ZKB'
           OR VBAK~AUART = 'ZTJ' )  .

    ELSEIF S_ALL = 'X'.
      SELECT *
      FROM  VBAP
      INNER JOIN VBAK
          ON VBAK~VBELN = VBAP~VBELN
      INNER JOIN ONRVB
          ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
      INNER JOIN VBEP
          ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
     INNER JOIN MARC
         ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
     INNER JOIN MARA
         ON VBAP~MATNR = MARA~MATNR
      INTO CORRESPONDING FIELDS OF TABLE IT_PRINT_001
      WHERE VBAK~VBELN IN S_VBELN
        AND VBAP~POSNR IN S_POSNR
        AND VBAK~VKORG IN S_VKORG
        AND VBAK~VTWEG IN S_VTWEG
        AND VBAK~SPART IN S_SPART
        AND VBAK~VKBUR IN S_VKBUR
        AND VBAK~VKGRP IN S_VKGRP
        AND VBAK~KUNNR IN S_KUNNR
        AND VBAK~ERDAT IN S_ERDAT
        AND VBAK~VDATU IN S_VDATU
        AND VBEP~EDATU IN S_EDATU  "行项目交期
        AND VBAK~AUGRU IN S_AUGRU
        AND VBAP~ABGRU IN S_ABGRU
        AND MARC~DISPO IN S_DISPO
        AND MARC~MATNR IN S_MATNR
        AND ( VBAK~AUART = 'ZOR' OR VBAK~AUART = 'ZSD'
        OR VBAK~AUART = 'ZFD'   OR VBAK~AUART = 'ZKB' OR VBAK~AUART = 'ZTJ'
        OR VBAK~AUART = 'ZMJ' )
           .
    ELSEIF S_AZFD = 'X'.
      SELECT *
       FROM  VBAP
       INNER JOIN VBAK
           ON VBAK~VBELN = VBAP~VBELN
       INNER JOIN ONRVB
           ON ONRVB~VBELN = VBAP~VBELN AND ONRVB~POSNR = VBAP~POSNR
       INNER JOIN VBEP
           ON VBEP~VBELN = VBAP~VBELN AND VBEP~POSNR = VBAP~POSNR AND VBEP~ETENR = '0001'
      INNER JOIN MARC
          ON VBAP~MATNR = MARC~MATNR AND VBAP~WERKS = MARC~WERKS
      INNER JOIN MARA
          ON VBAP~MATNR = MARA~MATNR
       INTO CORRESPONDING FIELDS OF TABLE IT_PRINT_001
       WHERE VBAK~VBELN IN S_VBELN
         AND VBAP~POSNR IN S_POSNR
         AND VBAK~VKORG IN S_VKORG
         AND VBAK~VTWEG IN S_VTWEG
         AND VBAK~SPART IN S_SPART
         AND VBAK~VKBUR IN S_VKBUR
         AND VBAK~VKGRP IN S_VKGRP
         AND VBAK~KUNNR IN S_KUNNR
         AND VBAK~ERDAT IN S_ERDAT
         AND VBAK~VDATU IN S_VDATU
         AND VBEP~EDATU IN S_EDATU  "行项目交期
         AND VBAK~AUGRU IN S_AUGRU
         AND VBAP~ABGRU IN S_ABGRU
         AND MARC~DISPO IN S_DISPO
         AND MARC~MATNR IN S_MATNR
         AND ( VBAK~AUART = 'ZFD'  OR VBAK~AUART = 'ZMJ' ) .

    ENDIF.
  ENDIF.

  DATA: ZSTLTY LIKE STKO-STLTY,
        ZSTLNR LIKE STKO-STLNR,
        ZSTLAL LIKE STKO-STLAL,
        ZSTKOZ LIKE STKO-STKOZ.
  LOOP AT IT_PRINT_001.
    SELECT
      STKO~STLTY STKO~STLNR STKO~STLAL MAX( STKO~STKOZ )
    FROM MAST
    INNER JOIN STKO
       ON MAST~STLNR = STKO~STLNR
      AND MAST~STLAL = STKO~STLAL
     INTO (ZSTLTY,ZSTLNR,ZSTLAL,ZSTKOZ)
    WHERE MAST~MATNR = IT_PRINT_001-MATNR
      AND MAST~WERKS = IT_PRINT_001-WERKS
      AND STKO~STLTY = 'M'
      AND MAST~STLAN = '1'
    GROUP BY
      STKO~STLTY STKO~STLNR STKO~STLAL.

    ENDSELECT.

    SELECT
     SINGLE STKO~STLST
      FROM STKO
      INTO IT_PRINT_001-STLST
      WHERE STKO~STLTY = ZSTLTY
      AND STKO~STLNR = ZSTLNR
      AND STKO~STLAL = ZSTLAL
      AND STKO~STKOZ = ZSTKOZ
      AND STKO~STLST IN S_STLST.

    SELECT SINGLE * FROM JEST INTO JEST
WHERE OBJNR = IT_PRINT_001-OBJNR2
 AND STAT = 'E0004'.

    IF SY-SUBRC = 0 .
      DELETE IT_PRINT_001.
    ELSE.
      IF EPLAS = ''."ZAR订单类型不进入判断
        SELECT SINGLE * FROM JEST INTO JEST
         WHERE OBJNR = IT_PRINT_001-OBJNR
           AND STAT = 'E0001'.
        IF SY-SUBRC = 0.
          IT_PRINT_001-E1 = 'X'.
          IF IT_PRINT_001-STLST IN S_STLST.
            IF IT_PRINT_001-OBJNR <> ''.
              IT_PRINT_001-OBJNR1 = IT_PRINT_001-OBJNR.
              REPLACE 'VB0' WITH '0' INTO IT_PRINT_001-OBJNR1.

              CONCATENATE IT_PRINT_001-OBJNR+0(12) '000000' INTO IT_PRINT_001-OBJNR2.
            ELSE.
              CONCATENATE IT_PRINT_001-VBELN IT_PRINT_001-POSNR INTO IT_PRINT_001-OBJNR1.
            ENDIF.
            MODIFY IT_PRINT_001.
            CLEAR IT_PRINT_001.
          ELSE.
            DELETE IT_PRINT_001.
          ENDIF.
        ELSE.
          DELETE IT_PRINT_001.
        ENDIF.
      ENDIF.
    ENDIF.
    CLEAR IT_PRINT_001.
    CLEAR:ZSTLTY,ZSTLNR,ZSTLAL,ZSTKOZ.
  ENDLOOP.
*  LOOP AT IT_PRINT_001.  "YLT 20090718优化程序将下面的LOOP与上面合并
**YILT 080707 益周ZAR的单出不来的调整
**  IF IT_PRINT_001-AUART = 'ZAR' AND IT_PRINT_001-WERKS = '2000'.
**  ELSE.
*    SELECT SINGLE * FROM JEST INTO JEST
*     WHERE OBJNR = IT_PRINT_001-OBJNR2
*       AND STAT = 'E0004'.
*    IF SY-SUBRC = 0.
*      DELETE IT_PRINT_001.
*    ENDIF.
**  ENDIF.
*  ENDLOOP.
*  IF EPLAS = ''."ZAR订单类型不进入判断
*    LOOP AT IT_PRINT_001 .
*      SELECT SINGLE * FROM JEST INTO JEST
*       WHERE OBJNR = IT_PRINT_001-OBJNR
*         AND STAT = 'E0001'.
*      IF SY-SUBRC = 0.
*        IT_PRINT_001-E1 = 'X'.
*        MODIFY IT_PRINT_001.
*        CLEAR IT_PRINT_001.
*      ELSE.
*        DELETE IT_PRINT_001.
*      ENDIF.
*    ENDLOOP.
*  ENDIF.
  LOOP AT IT_PRINT_001.
*送达方编号
    SELECT SINGLE KUNNR FROM VBPA INTO IT_PRINT_001-ZKUNNR
    WHERE VBELN = IT_PRINT_001-VBELN
         AND PARVW = 'WE'.
*计算单价
    IF IT_PRINT_001-KWMENG > 0.
      IT_PRINT_001-NETWR_D = IT_PRINT_001-NETWR / IT_PRINT_001-KWMENG.
    ENDIF.
*取评审文本
*IF IT_PRINT_001-AUART = 'ZFD' AND IT_PRINT_001-ERDAT > '20081202'.
    IF IT_PRINT_001-AUART = 'ZFD' AND IT_PRINT_001-ERDAT > '20081201' AND IT_PRINT_001-VBELN <> '0000043345'.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0006'
               CHANGING IT_PRINT_001-ET1.                       "取文本数据

      SELECT SINGLE * FROM JEST INTO JEST
       WHERE OBJNR = IT_PRINT_001-OBJNR
         AND STAT = 'E0002'.
      IF SY-SUBRC = 0.
        IT_PRINT_001-E5 = 'X'.
      ENDIF.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0001'
               CHANGING IT_PRINT_001-ET5.                       "取文本数据
      SELECT SINGLE INACT FROM JEST INTO JEST
        WHERE OBJNR = IT_PRINT_001-OBJNR
          AND STAT = 'E0003'.
      IF SY-SUBRC = 0.
        IT_PRINT_001-E2 = 'X'.
      ENDIF.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0007'
               CHANGING IT_PRINT_001-ET2.                       "取文本数据

      SELECT SINGLE INACT FROM JEST INTO JEST
        WHERE OBJNR = IT_PRINT_001-OBJNR
          AND STAT = 'E0004'.
      IF SY-SUBRC = 0.
        IT_PRINT_001-E3 = 'X'.
      ENDIF.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0008'
               CHANGING IT_PRINT_001-ET3.                       "取文本数据

      SELECT SINGLE INACT FROM JEST INTO JEST
        WHERE OBJNR = IT_PRINT_001-OBJNR
          AND STAT = 'E0005'.
      IF SY-SUBRC = 0.
        IT_PRINT_001-E4 = 'X'.
      ENDIF.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0009'
               CHANGING IT_PRINT_001-ET4   .                    "取文本数据
    ELSEIF IT_PRINT_001-AUART = 'ZMJ'. "收费样品订单只有GCM主管评审
      PERFORM F_SUB_GET_TEXT
           USING IT_PRINT_001-OBJNR1 '0006'
           CHANGING IT_PRINT_001-ET1.                       "取文本数据

      SELECT SINGLE * FROM JEST INTO JEST
       WHERE OBJNR = IT_PRINT_001-OBJNR
         AND STAT = 'E0002'.
      IF SY-SUBRC = 0.
        IT_PRINT_001-E5 = 'X'.
      ENDIF.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0001'
               CHANGING IT_PRINT_001-ET5.                       "取文本数据
      SELECT SINGLE INACT FROM JEST INTO JEST
        WHERE OBJNR = IT_PRINT_001-OBJNR
          AND STAT = 'E0003'.
    ELSE.

      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0006'
               CHANGING IT_PRINT_001-ET1.                       "取文本数据

      SELECT SINGLE * FROM JEST INTO JEST
       WHERE OBJNR = IT_PRINT_001-OBJNR
         AND STAT = 'E0002'.
      IF SY-SUBRC = 0.
        IT_PRINT_001-E2 = 'X'.
      ENDIF.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0007'
               CHANGING IT_PRINT_001-ET2.                       "取文本数据
      SELECT SINGLE INACT FROM JEST INTO JEST
        WHERE OBJNR = IT_PRINT_001-OBJNR
          AND STAT = 'E0003'.
      IF SY-SUBRC = 0.
        IT_PRINT_001-E3 = 'X'.
      ENDIF.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0008'
               CHANGING IT_PRINT_001-ET3.                       "取文本数据

      SELECT SINGLE INACT FROM JEST INTO JEST
        WHERE OBJNR = IT_PRINT_001-OBJNR
          AND STAT = 'E0004'.
      IF SY-SUBRC = 0.
        IT_PRINT_001-E4 = 'X'.
      ENDIF.
      PERFORM F_SUB_GET_TEXT
               USING IT_PRINT_001-OBJNR1 '0009'
               CHANGING IT_PRINT_001-ET4.                       "取文本数据

    ENDIF.

*
*物料主数据的物料定价组---BOM和CQS用
    SELECT SINGLE T178T~VTEXT T178T~KONDM AS MMKON
    FROM MVKE JOIN T178T ON T178T~KONDM = MVKE~KONDM AND T178T~SPRAS = '1'
    INTO (IT_PRINT_001-VTEXT,IT_PRINT_001-MMKON)
    WHERE MATNR = IT_PRINT_001-MATNR
    AND VKORG = IT_PRINT_001-VKORG
    AND VTWEG = IT_PRINT_001-VTWEG
    .
*获取其它数据
*如果BOM状态为4/5,字体颜色用红色标识 hxh 090714
    IF IT_PRINT_001-STLST = '4' OR IT_PRINT_001-STLST = '5'.
      CELLCOLOR-FIELDNAME = 'E2'.  "BOM评审字段
      CELLCOLOR-COLOR-COL = 6.
      CELLCOLOR-COLOR-INT = '1'.
      CELLCOLOR-COLOR-INV = '0'.
      APPEND CELLCOLOR.

      CELLCOLOR-FIELDNAME = 'E3'.   "CQS评审字段
      CELLCOLOR-COLOR-COL = 6.
      CELLCOLOR-COLOR-INT = '1'.
      CELLCOLOR-COLOR-INV = '0'.
      APPEND CELLCOLOR.

      CELLCOLOR-FIELDNAME = 'E4'.  "生产评审字段
      CELLCOLOR-COLOR-COL = 6.
      CELLCOLOR-COLOR-INT = '1'.
      CELLCOLOR-COLOR-INV = '0'.
      APPEND CELLCOLOR.
      IT_PRINT_001-COLOR1[] = CELLCOLOR[].
    ENDIF.

*如果是PPAP订单--订单原因201-203的用黄色标识 ELIN 20090630
    IF IT_PRINT_001-AUGRU = '201' OR IT_PRINT_001-AUGRU = '202' OR IT_PRINT_001-AUGRU = '203' .
      IT_PRINT_001-COLOR = 'C310'.
    ENDIF.
*销售订单的物料定价组---生管用
    SELECT SINGLE VTEXT FROM T178T
      INTO IT_PRINT_001-SOVTE
     WHERE KONDM = IT_PRINT_001-KONDM
       AND SPRAS = '1'.

    SELECT SINGLE MAKTX FROM MAKT
      INTO IT_PRINT_001-MAKTX
     WHERE MATNR = IT_PRINT_001-MATNR
       AND SPRAS = '1'.

    SELECT SINGLE SPART FROM MARA
      INTO IT_PRINT_001-SPART
     WHERE MATNR = IT_PRINT_001-MATNR.

    SELECT SINGLE KUNNR VSNMR_V FROM VBAK
       INTO CORRESPONDING FIELDS OF IT_PRINT_001
     WHERE VBELN = IT_PRINT_001-VBELN.

    SELECT SINGLE NAME1 FROM KNA1
      INTO IT_PRINT_001-NAME1
     WHERE KUNNR = IT_PRINT_001-KUNNR.

    SELECT SINGLE NAME1 FROM KNA1
 INTO IT_PRINT_001-NAME2
WHERE KUNNR = IT_PRINT_001-ZKUNNR.

    SELECT  SINGLE VTEXT FROM TSPAT
      INTO IT_PRINT_001-VTEXT1
     WHERE SPART = IT_PRINT_001-SPART
       AND SPRAS = '1'.

*SO号
    SELECT SINGLE VBKD~BSTKD_E
        INTO IT_PRINT_001-BSTKD_E
        FROM VBKD
       WHERE VBKD~POSNR = IT_PRINT_001-POSNR
         AND VBKD~VBELN = IT_PRINT_001-VBELN
          .
    IF SY-SUBRC <> 0.
      SELECT SINGLE VBKD~BSTKD_E
        INTO IT_PRINT_001-BSTKD_E
        FROM VBKD
       WHERE VBKD~POSNR = '0'
         AND VBKD~VBELN = IT_PRINT_001-VBELN.
    ENDIF.

*取销售人员
*销售人员改从订单版本栏位取值 2009-03-18 YLT
    IF IT_PRINT_001-VSNMR_V = ''.
      SELECT SINGLE SNAME
      FROM VBPA
      JOIN PA0001 ON PA0001~PERNR = VBPA~PERNR
       INTO  IT_PRINT_001-SNAME
       WHERE VBPA~VBELN = IT_PRINT_001-VBELN AND VBPA~PARVW = 'AF'.
    ELSE.
      IT_PRINT_001-SNAME = IT_PRINT_001-VSNMR_V.
    ENDIF.

    IF IT_PRINT_001-AUART = 'ZFD'.
*  IF IT_PRINT_001-ERDAT > '20081202'.
      IF IT_PRINT_001-ERDAT > '20081201' AND IT_PRINT_001-VBELN <> '0000043345'.
        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
            INTO (IT_PRINT_001-USNAM0,IT_PRINT_001-UDATE0,IT_PRINT_001-UTIME0)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0001'
               AND JCDS~CHIND = 'I'.

        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
             INTO (IT_PRINT_001-USNAM4,IT_PRINT_001-UDATE4,IT_PRINT_001-UTIME4)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0002'
               AND JCDS~CHIND = 'I'.

        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
             INTO (IT_PRINT_001-USNAM1,IT_PRINT_001-UDATE1,IT_PRINT_001-UTIME1)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0003'
               AND JCDS~CHIND = 'I'.

        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
             INTO (IT_PRINT_001-USNAM2,IT_PRINT_001-UDATE2,IT_PRINT_001-UTIME2)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0004'
               AND JCDS~CHIND = 'I'.

        "CQS评审后的电脑名显示
        SELECT SINGLE CQSNAME FROM ZJCDS INTO IT_PRINT_001-HOST2
              WHERE ZJCDS~VBELN = IT_PRINT_001-VBELN
              AND ZJCDS~POSNR = IT_PRINT_001-POSNR.

        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
             INTO (IT_PRINT_001-USNAM3,IT_PRINT_001-UDATE3,IT_PRINT_001-UTIME3)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0005'
               AND JCDS~CHIND = 'I'.
      ELSE.
*评审时间
        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
             INTO (IT_PRINT_001-USNAM0,IT_PRINT_001-UDATE0,IT_PRINT_001-UTIME0)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0001'
               AND JCDS~CHIND = 'I'.

        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
             INTO (IT_PRINT_001-USNAM1,IT_PRINT_001-UDATE1,IT_PRINT_001-UTIME1)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0002'
               AND JCDS~CHIND = 'I'.

        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
             INTO (IT_PRINT_001-USNAM2,IT_PRINT_001-UDATE2,IT_PRINT_001-UTIME2)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0003'
               AND JCDS~CHIND = 'I'.

        "CQS评审后的电脑名显示
        SELECT SINGLE CQSNAME FROM ZJCDS INTO IT_PRINT_001-HOST2
             WHERE ZJCDS~VBELN = IT_PRINT_001-VBELN
             AND ZJCDS~POSNR = IT_PRINT_001-POSNR.
        IF IT_PRINT_001-HOST2 = ''.
          IT_PRINT_001-HOST2 = IT_PRINT_001-USNAM2.
        ENDIF.

        SELECT SINGLE USNAM UDATE UTIME FROM JCDS
             INTO (IT_PRINT_001-USNAM3,IT_PRINT_001-UDATE3,IT_PRINT_001-UTIME3)
             WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
               AND JCDS~STAT  = 'E0004'
               AND JCDS~CHIND = 'I'.
      ENDIF.    "以上执行ZFD类型订单的评审记录

    ELSEIF IT_PRINT_001-AUART = 'ZMJ'.

      SELECT SINGLE USNAM UDATE UTIME FROM JCDS
    INTO (IT_PRINT_001-USNAM0,IT_PRINT_001-UDATE0,IT_PRINT_001-UTIME0)
     WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
       AND JCDS~STAT  = 'E0001'
       AND JCDS~CHIND = 'I'.

      SELECT SINGLE USNAM UDATE UTIME FROM JCDS
           INTO (IT_PRINT_001-USNAM4,IT_PRINT_001-UDATE4,IT_PRINT_001-UTIME4)
           WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
             AND JCDS~STAT  = 'E0002'
             AND JCDS~CHIND = 'I'.
    ELSE.
*评审时间
      SELECT SINGLE USNAM UDATE UTIME FROM JCDS
           INTO (IT_PRINT_001-USNAM0,IT_PRINT_001-UDATE0,IT_PRINT_001-UTIME0)
           WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
             AND JCDS~STAT  = 'E0001'
             AND JCDS~CHIND = 'I'.

      SELECT SINGLE USNAM UDATE UTIME FROM JCDS
           INTO (IT_PRINT_001-USNAM1,IT_PRINT_001-UDATE1,IT_PRINT_001-UTIME1)
           WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
             AND JCDS~STAT  = 'E0002'
             AND JCDS~CHIND = 'I'.

      SELECT SINGLE USNAM UDATE UTIME FROM JCDS
           INTO (IT_PRINT_001-USNAM2,IT_PRINT_001-UDATE2,IT_PRINT_001-UTIME2)
           WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
             AND JCDS~STAT  = 'E0003'
             AND JCDS~CHIND = 'I'.

      "CQS评审后的电脑名显示
      SELECT SINGLE CQSNAME FROM ZJCDS INTO IT_PRINT_001-HOST2
           WHERE ZJCDS~VBELN = IT_PRINT_001-VBELN
           AND ZJCDS~POSNR = IT_PRINT_001-POSNR.
      IF IT_PRINT_001-HOST2 = ''.
        IT_PRINT_001-HOST2 = IT_PRINT_001-USNAM2.
      ENDIF.

      SELECT SINGLE USNAM UDATE UTIME FROM JCDS
           INTO (IT_PRINT_001-USNAM3,IT_PRINT_001-UDATE3,IT_PRINT_001-UTIME3)
           WHERE JCDS~OBJNR = IT_PRINT_001-OBJNR
             AND JCDS~STAT  = 'E0004'
             AND JCDS~CHIND = 'I'.


    ENDIF.

**YILT 增加新/老产品更正的功能
*IF IT_PRINT_001-KONDM = '02'.
* SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE T_TEMP
* WHERE KONDM = '02'
*      AND MATNR = IT_PRINT_001-MATNR
*      AND VBELN = IT_PRINT_001-VBELN
*      .
*  SORT T_TEMP BY MATNR VBELN POSNR.
*  LOOP AT T_TEMP.
*    IF SY-TABIX <> 1 .
*      T_TEMP-KONDM = '01'.
*      MODIFY VBAP FROM T_TEMP.
*      CLEAR T_TEMP.
*    ENDIF.
*  ENDLOOP.
*ENDIF.

    MODIFY IT_PRINT_001.
    CLEAR IT_PRINT_001.
  ENDLOOP.
ENDFORM.                    " F_READ_DATA
************************************************************************
*普通报表格式的打印
FORM F_PRINT_REPORT.
*绘制表头
  WRITE: AT 50 'XXX表' ,/.
ENDFORM.                     " F_PRINT_REPORT
************************************************************************
*FORM报表格式的打印
FORM F_PRINT_FORM.
  CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      DEVICE   = 'PRINTER'
      FORM     = ''  "NEED MODIFY
      DIALOG   = 'X'
      LANGUAGE = SY-LANGU.
  LOOP AT IT_PRINT_001.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        ELEMENT  = ''  "NEED MODIFY
        FUNCTION = 'SET'
        TYPE     = 'BODY'
        WINDOW   = 'MAIN'.
    CLEAR IT_PRINT_001.
  ENDLOOP.
  CALL FUNCTION 'CLOSE_FORM'
    EXCEPTIONS
      UNOPENED = 1
      OTHERS   = 2.
ENDFORM.                    " F_PRINT_FORM
************************************************************************
*ALV报表格式的打印
FORM F_PRINT_ALV.

  REFRESH G_ALV_LISTHEADER[].
  PERFORM F_ALV_MODIFY_LISTHEADER .
  REFRESH G_ALV_FIELDCAT.
  PERFORM F_ALV_BUILD_FIELDCAT.
  PERFORM F_ALV_BUILD_EVENTCAT.
  PERFORM F_ALV_DISPLAY.
*  STOP.

ENDFORM.                    " F_PRINT_ALV
************************************************************************
*设置ALV报表输出时的抬头信息
FORM F_ALV_MODIFY_LISTHEADER .
  DATA : L_ALV_LISTHEADER_LINE LIKE LINE OF G_ALV_LISTHEADER.
  L_ALV_LISTHEADER_LINE-TYP = 'S'.
  L_ALV_LISTHEADER_LINE-KEY = 'PPAP订单为黄色背景色'.
  L_ALV_LISTHEADER_LINE-INFO = 'BOM不完整(包装或产品未输出),BOM/CQS/生产评审为红色背景色'.
  APPEND L_ALV_LISTHEADER_LINE TO G_ALV_LISTHEADER.
  L_ALV_LISTHEADER_LINE-TYP = 'S'.
  L_ALV_LISTHEADER_LINE-KEY = ''.
  L_ALV_LISTHEADER_LINE-INFO = '双击功能:物料->MM03  累计提前期限 -> ZT07'.
  APPEND L_ALV_LISTHEADER_LINE TO G_ALV_LISTHEADER.
ENDFORM.                    " F_ALV_MODIFY_LISTHEADER
************************************************************************
*设置ALV报表输出时的字段 NEED MODIFY
FORM F_ALV_BUILD_FIELDCAT .
  DATA : COL_POS TYPE I VALUE 0.
  G_ALV_LAYOUT-GET_SELINFOS      = 'X'.
  G_ALV_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
  G_ALV_LAYOUT-DETAIL_POPUP      = 'X'.
*  G_ALV_LAYOUT-EDIT              = 'X'.
  G_ALV_LAYOUT-BOX_FIELDNAME     = 'FLAG'.
  G_ALV_LAYOUT-NO_KEYFIX         = 'X'.
  G_ALV_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

  "增加色彩行
  G_ALV_LAYOUT-COLTAB_FIELDNAME = 'COLOR1'.
  G_ALV_LAYOUT-INFO_FIELDNAME = 'COLOR'.


  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'BSTKD_E'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'BSTKD_E'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'SO 号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'SO 号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'SO 号'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VBELN'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VBELN'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '订单编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '订单编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '订单编号'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAP'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'POSNR'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'POSNR'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '项目号->ZP49'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '项目号->ZP49'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '项目号->ZP49'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAP'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VKAUS'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VKAUS'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '项目用途'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '项目用途'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '项目用途'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'ABRVW'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ABRVW'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '抬头用途'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '抬头用途'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '抬头用途'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.


  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'AUART'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'AUART'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '订单类型'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '订单类型'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '订单类型'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAP'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'ABGRU'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ABGRU'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '拒绝原因'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '拒绝原因'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '拒绝原因'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'ERDAT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ERDAT'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '下单日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '下单日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '下单日期'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'BSTNK'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'BSTNK'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '客户采购单号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '客户采购单号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '客户采购单号'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'KUNNR'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'KUNNR'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '客户编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '客户编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '客户编号'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'KNA1'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'NAME1'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'NAME1'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '客户名称'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '客户名称'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '客户名称'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'KUNNR'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ZKUNNR'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '送达方编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '送达方编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '送达方编号'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'KNA1'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'NAME1'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'NAME2'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '送达方名称'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '送达方名称'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '送达方名称'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VKORG'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VKORG'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '销售机构'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '销售机构'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '销售机构'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VTWEG'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VTWEG'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '分销渠道'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '分销渠道'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '分销渠道'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VKBUR'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VKBUR'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '销售办事处'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '销售办事处'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '销售办事处'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VKGRP'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VKGRP'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '销售组'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '销售组'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '销售组'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VTEXT1'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '生产厂别'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '生产厂别'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '生产厂别'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VTEXT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VTEXT'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '新/老产品'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '新/老产品'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '新/老产品'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'T178T'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VTEXT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'SOVTE'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'SO新/老产品-生管'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'SO新/老产品-生管'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'SO新/老产品-生管'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'VDATU'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'VDATU'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '请求交货日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '请求交货日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '请求交货日期'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBEP'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'EDATU'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'EDATU'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '行项目交期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '行项目交期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '行项目交期'.
*  G_ALV_FIELDCAT_LINE-REPTEXT_DDIC = '内部交期'. "交货日期
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'STKO'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'STLST'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'STLST'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'BOM状态'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'BOM状态'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'BOM状态'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'MARA'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'MATNR'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'MATNR'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '物料编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '物料编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '物料编号'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'MARA'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'BISMT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'BISMT'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '旧物料'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '旧物料'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '旧物料'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'MAKT'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'MAKTX'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'MAKTX'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '物料描述'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '物料描述'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '物料描述'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAP'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'KDMAT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'KDMAT'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '客户物料编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '客户物料编号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '客户物料编号'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAP'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'KWMENG'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'KWMENG'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '数量'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'JEST'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'INACT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'E1'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = 'X'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'COS评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'COS评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'COS评审'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.


  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'KTEXT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ET1'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = ''.
  G_ALV_FIELDCAT_LINE-KEY = ''.
* 权限控制,S43A权限组能修改“COS评审意见”的相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43A'.
  IF SY-SUBRC = 0 .
    G_ALV_FIELDCAT_LINE-EDIT = 'X'.
  ENDIF.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'COS评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'COS评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'COS评审备注'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.


  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'USNAM0'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-EDIT = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'COS评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'COS评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'COS评审人'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'PA0001'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'SNAME'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'SNAME'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-EDIT = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '销售人员'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '销售人员'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '销售人员'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UDATE0'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'COS评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'COS评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'COS评审日期'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UTIME0'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'COS评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'COS评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'COS评审时间'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS .
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'JEST'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'INACT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'E5'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = 'X'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'GCM评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'GCM评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'GCM评审'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS .
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'KTEXT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ET5'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = ''.
  G_ALV_FIELDCAT_LINE-KEY = ''.
* 权限控制,AACC权限组能修改“GCM评审意见”的相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43G'.
  IF SY-SUBRC = 0 .
    G_ALV_FIELDCAT_LINE-EDIT = 'X'.
  ENDIF.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'GCM评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'GCM评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'GCM评审备注'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'USNAM4'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-EDIT = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'GCM评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'GCM评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'GCM评审人'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UDATE4'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'GCM评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'GCM评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'GCM评审日期'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UTIME4'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'GCM评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'GCM评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'GCM评审时间'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS .
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'JEST'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'INACT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'E2'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = 'X'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'BOM评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'BOM评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'BOM评审'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS .
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'KTEXT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ET2'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = ''.
  G_ALV_FIELDCAT_LINE-KEY = ''.
* 权限控制,AACC权限组能修改“BOM评审意见”的相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43B'.
  IF SY-SUBRC = 0 .
    G_ALV_FIELDCAT_LINE-EDIT = 'X'.
  ENDIF.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'BOM评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'BOM评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'BOM评审备注'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'USNAM1'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-EDIT = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'BOM评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'BOM评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'BOM评审人'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UDATE1'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'BOM评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'BOM评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'BOM评审日期'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UTIME1'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'BOM评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'BOM评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'BOM评审时间'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.


  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'E3'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = 'X'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'CQS评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'CQS评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'CQS评审'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'KTEXT'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ET3'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = ''.
  G_ALV_FIELDCAT_LINE-KEY = ''.
* 权限控制,S43C权限组能修改“CQS评审意见”的相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
  IF SY-SUBRC = 0 .
    G_ALV_FIELDCAT_LINE-EDIT = 'X'.
  ENDIF.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'CQS评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'CQS评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'CQS评审备注'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
*  G_ALV_FIELDCAT_LINE-FIELDNAME = 'USNAM2'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'HOST2'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-EDIT = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'CQS评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'CQS评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'CQS评审人'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UDATE2'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'CQS评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'CQS评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'CQS评审日期'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UTIME2'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'CQS评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'CQS评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'CQS评审时间'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'E4'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = 'X'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '生产评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '生产评审'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '生产评审'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'TLINE'."VBAK
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'TDLINE'."KTEXT
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'ET4'.
  G_ALV_FIELDCAT_LINE-CHECKBOX = ''.
  G_ALV_FIELDCAT_LINE-KEY = ''.
* 权限控制,S43D权限组能修改“生产评审意见”的相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43D'.
  IF SY-SUBRC = 0 .
    G_ALV_FIELDCAT_LINE-EDIT = 'X'.
  ENDIF.
  G_ALV_FIELDCAT_LINE-DDICTXT(1)  = 'L'.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '生产评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '生产评审备注'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '生产评审备注'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'USNAM3'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-EDIT = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '生产评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '生产评审人'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '生产评审人'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UDATE3'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '生产评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '生产评审日期'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '生产评审日期'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = ''.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = ''.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'UTIME3'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '生产评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '生产评审时间'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '生产评审时间'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'MARC'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'STRGR'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'STRGR'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '策略组'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '策略组'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '策略组'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAP'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'SERNR'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'SERNR'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = 'BOM展开号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = 'BOM展开号'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = 'BOM展开号'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

  ADD 1 TO COL_POS.
  G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
  G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
  G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'AUGRU'.
  G_ALV_FIELDCAT_LINE-FIELDNAME = 'AUGRU'.
  G_ALV_FIELDCAT_LINE-KEY = ''.
  G_ALV_FIELDCAT_LINE-SELTEXT_S = '订单原因'.
  G_ALV_FIELDCAT_LINE-SELTEXT_L = '订单原因'.
  G_ALV_FIELDCAT_LINE-SELTEXT_M = '订单原因'.
  G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
  APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

* 权限控制,AAAA权限组能显示“标准成本”相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'AAAA'.
  IF SY-SUBRC = 0 .
  ENDIF.
* 权限控制,BBBB权限组能显示“采购价格”相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'BBBB'.
  IF SY-SUBRC = 0 .
  ENDIF.
* 权限控制,CCCC权限组能显示“销售价格”相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'CCCC'.
  IF SY-SUBRC = 0 .
    ADD 1 TO COL_POS.
    G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
    G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
    G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'NETWR'.
    G_ALV_FIELDCAT_LINE-FIELDNAME = 'NETWR_D'.
    G_ALV_FIELDCAT_LINE-KEY = ''.
    G_ALV_FIELDCAT_LINE-SELTEXT_S = '单价'.
    G_ALV_FIELDCAT_LINE-SELTEXT_L = '单价'.
    G_ALV_FIELDCAT_LINE-SELTEXT_M = '单价'.
    G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
    APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

    ADD 1 TO COL_POS.
    G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAK'.
    G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
    G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'NETWR'.
    G_ALV_FIELDCAT_LINE-FIELDNAME = 'NETWR'.
    G_ALV_FIELDCAT_LINE-KEY = ''.
    G_ALV_FIELDCAT_LINE-SELTEXT_S = '总价'.
    G_ALV_FIELDCAT_LINE-SELTEXT_L = '总价'.
    G_ALV_FIELDCAT_LINE-SELTEXT_M = '总价'.
    G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
    APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.

    ADD 1 TO COL_POS.
    G_ALV_FIELDCAT_LINE-REF_TABNAME = 'VBAP'.
    G_ALV_FIELDCAT_LINE-TABNAME = 'IT_PRINT_001'.
    G_ALV_FIELDCAT_LINE-REF_FIELDNAME = 'WAERK'.
    G_ALV_FIELDCAT_LINE-FIELDNAME = 'WAERK'.
    G_ALV_FIELDCAT_LINE-KEY = ''.
    G_ALV_FIELDCAT_LINE-SELTEXT_S = '货币'.
    G_ALV_FIELDCAT_LINE-SELTEXT_L = '货币'.
    G_ALV_FIELDCAT_LINE-SELTEXT_M = '货币'.
    G_ALV_FIELDCAT_LINE-COL_POS = COL_POS.
    APPEND G_ALV_FIELDCAT_LINE TO G_ALV_FIELDCAT.
  ENDIF.
* 权限控制,AABB权限组能显示“标准成本和采购价格”的相关字段
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'AABB'.
  IF SY-SUBRC = 0 .
  ENDIF.
* 权限控制,AACC权限组能显示“标准成本和销售价格”的相关字段,如毛利润等
  AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'AACC'.
  IF SY-SUBRC = 0 .

  ENDIF.
ENDFORM.                    " F_ALV_BUILD_FIELDCAT
************************************************************************
*改变ALV的TOP_OF_PAGE事件处理过程
FORM F_ALV_BUILD_EVENTCAT .
  DATA : LS_EVENT TYPE SLIS_ALV_EVENT.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE = 0
    IMPORTING
      ET_EVENTS   = G_ALV_EVENT.
  READ TABLE G_ALV_EVENT WITH KEY NAME =
        SLIS_EV_TOP_OF_PAGE   INTO LS_EVENT.
  IF SY-SUBRC = 0.
    MOVE G_ALV_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
    APPEND LS_EVENT TO G_ALV_EVENT.
  ENDIF.

*  READ TABLE G_ALV_EVENT WITH KEY NAME =
*        SLIS_EV_END_OF_LIST  INTO LS_EVENT.
*  IF SY-SUBRC = 0.
*    MOVE G_ALV_FORMNAME_END_OF_LIST TO LS_EVENT-FORM.
*    APPEND LS_EVENT TO G_ALV_EVENT.
*  ENDIF.
ENDFORM.                    " F_ALV_BUILD_EVENTCAT
************************************************************************
*调用ALV控件的输出程序
FORM F_ALV_DISPLAY .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM      = 'ZR_SD_043'
      I_CALLBACK_USER_COMMAND = 'F_ALV_USER_COMMAND'
      I_CALLBACK_PF_STATUS_SET    = 'MENU_SET'
      IS_LAYOUT               = G_ALV_LAYOUT    "输出格式
      IT_FIELDCAT             = G_ALV_FIELDCAT
      I_SAVE                  = 'A'
*      I_STRUCTURE_NAME        = 'CAUFVD'
      IT_EVENTS               = G_ALV_EVENT
      I_GRID_TITLE            = ''  "NEED MODIFY
    TABLES
      T_OUTTAB                = IT_PRINT_001
    EXCEPTIONS
      PROGRAM_ERROR           = 1
      OTHERS                  = 2.

ENDFORM.                    " F_ALV_DISPLAY
***********************************************************************
*设置GUI菜单栏
FORM MENU_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'ZS43'.
ENDFORM.                    "menu_set
************************************************************************
*ALV控件双击事件的接口
FORM F_ALV_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                        RS_SELFIELD TYPE SLIS_SELFIELD.
*  DATA L_TEMP LIKE LINE OF IT_PRINT_001.
  DATA S_TEMP(100) TYPE C.
  DATA S_FN(10) TYPE C.
  DATA ZMA LIKE IT_PRINT_001-MATNR.

  G_SELECTED_FIELD_VALUE =  RS_SELFIELD-VALUE.
  G_TABINDEX = RS_SELFIELD-TABINDEX.
  READ TABLE IT_PRINT_001 INTO L_TEMP INDEX G_TABINDEX.
  CASE R_UCOMM.
    WHEN '&IC1' .
      IF RS_SELFIELD-FIELDNAME = 'POSNR'.
        PERFORM F_BDC_EXECUTE_003.
      ELSEIF RS_SELFIELD-FIELDNAME = 'ET1'.  "MODIFY
        IF L_TEMP-ET1 <> ''.
          REFRESH IT_LTEXT.
          PERFORM F_SUB_GET_TEXT
               USING L_TEMP-VBELN '0006'
               CHANGING IT_PRINT_001-ET1.

          CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'  "调用显示框函数死循环,运行不出来
            EXPORTING
              ENDPOS_COL   = '80'
              ENDPOS_ROW   = '10'
              STARTPOS_COL = '3'
              STARTPOS_ROW = '3'
              TITLETEXT    = 'COS评审意见明细'
            TABLES
              VALUETAB     = IT_LTEXT
            EXCEPTIONS
              BREAK_OFF    = 1.
        ENDIF.
      ENDIF.

      CLEAR: S_TEMP,S_FN.

      AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
      ID 'VKORG' FIELD L_TEMP-VKORG.

      IF SY-SUBRC <> 0.
        MESSAGE E015.
      ELSE.
        IF RS_SELFIELD-FIELDNAME = 'E2 '.
          IF RS_SELFIELD-VALUE = '1'.
            MESSAGE E017.
          ELSEIF  L_TEMP-E1 = 'X' .
            S_FN = 'E2 '.
          ELSE.
            MESSAGE E011.
          ENDIF.
        ELSEIF RS_SELFIELD-FIELDNAME = 'E3 '.
          IF RS_SELFIELD-VALUE = '1'.
            MESSAGE E017.
          ELSEIF  L_TEMP-E2 = 'X'.
            S_FN = 'E3 '.
          ELSEIF  L_TEMP-E2 = '' AND L_TEMP-MMKON = '01' .
            S_FN = 'E3B '.
          ELSE.
            MESSAGE E011.
          ENDIF.
        ELSEIF RS_SELFIELD-FIELDNAME = 'E4 '.
          IF RS_SELFIELD-VALUE = '1'.
            MESSAGE E017.
          ELSEIF L_TEMP-E3 = 'X'.
            S_FN = 'E4 '.
          ELSE.
            MESSAGE E011.
          ENDIF.
        ENDIF.

        IF S_FN <> ''.

          S_TEMP = L_TEMP-POSNR.
          CALL FUNCTION 'ZF_CALL_TECODE'
            EXPORTING
              P_TCODE  = 'VA02'
              P_EXTRA1 = L_TEMP-VBELN
              P_EXTRA2 = S_FN
              P_EXTRA3 = S_TEMP.

          IF SY-SUBRC = 0 AND S_FN = 'E3' AND L_TEMP-MMKON <> '01'.
*     权限控制,S43C权限组能修改“CQS评审”的相关字段
            AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
            IF SY-SUBRC = 0 .
              PERFORM F_BDC_EXECUTE_004.
            ENDIF.
          ENDIF.
          "CQS评审加电脑名
          AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
          IF SY-SUBRC = 0 .
            DATA USERN TYPE STRING.
            CALL FUNCTION 'Z_RETURN_USERNAME'
              IMPORTING
                USERNAME = USERN.
            TRANSLATE USERN TO UPPER CASE .
            SELECT SINGLE ZNAME FROM ZDT02 INTO L_TEMP-HOST2 WHERE ZPC = USERN.

*            CALL FUNCTION 'TERMINAL_ID_GET'
*              EXPORTING
*                USERNAME             = SY-UNAME "
*              IMPORTING
*                TERMINAL             = IP_UNAME     "IP + HOSTNAME
*              EXCEPTIONS
*                MULTIPLE_TERMINAL_ID = 1
*                NO_TERMINAL_FOUND    = 2.
*            SPLIT IP_UNAME AT '-' INTO L_TEMP-IPDEC2 L_TEMP-HOST2.
*            CONCATENATE  SY-UNAME  '|' L_TEMP-HOST2 INTO  L_TEMP-HOST2.
            MOVE L_TEMP-VBELN TO ZJCDS-VBELN.
            MOVE L_TEMP-POSNR TO ZJCDS-POSNR.
            MOVE L_TEMP-HOST2 TO ZJCDS-CQSNAME.
            MODIFY ZJCDS.
          ENDIF.
        ENDIF.
      ENDIF.
      CLEAR L_TEMP.
    WHEN '&DATA_SAVE'.
      LOOP AT IT_PRINT_001.
        IF IT_PRINT_001-AUART = 'ZFD'.  "把免费订单与其他订单的评审分开
          PERFORM F_SUB_SAVE_TEST_001.
          PERFORM F_SUB_SAVE_TEST_005.
          PERFORM F_SUB_SAVE_TEST_002.
          PERFORM F_SUB_SAVE_TEST_003.
          PERFORM F_SUB_SAVE_TEST_004.
        ELSEIF IT_PRINT_001-AUART = 'ZMJ'.
          PERFORM F_SUB_SAVE_TEST_001.
          PERFORM F_SUB_SAVE_TEST_005.
        ELSE.
          PERFORM F_SUB_SAVE_TEST_001.
          PERFORM F_SUB_SAVE_TEST_002.
          PERFORM F_SUB_SAVE_TEST_003.
          PERFORM F_SUB_SAVE_TEST_004.
        ENDIF.
      ENDLOOP.
    WHEN 'PSH'.
      SORT IT_PRINT_001 BY FLAG VBELN POSNR."
      PERFORM F_BDC_EXECUTE_002.
*     权限控制,S43C权限组能修改“CQS评审”的相关字段
      AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
      IF SY-SUBRC = 0 .
        LOOP AT IT_PRINT_001 WHERE FLAG = 'X' AND MMKON <> '01' AND E3 = '' AND E2 = 'X'.
          IF IT_PRINT_001-MATNR <> ZMA AND IT_PRINT_001-VKORG <> '3000'.
            L_TEMP = IT_PRINT_001.
            PERFORM F_BDC_EXECUTE_004.
            ZMA = IT_PRINT_001-MATNR.

          ELSEIF IT_PRINT_001-MATNR <> ZMA AND IT_PRINT_001-VKORG = '3000'
*          AND ( IT_PRINT_001-MATNR+0(3) = '80R' OR IT_PRINT_001-MATNR+0(3) = '80T' ) AND SY-UNAME = 'WTCQS'."20090609更改权限
          AND ( IT_PRINT_001-MATNR+2(1) <> 'A' AND IT_PRINT_001-MATNR+2(1) <> 'B' AND IT_PRINT_001-MATNR+2(1) <> 'C' AND IT_PRINT_001-MATNR+2(1) <> 'Y')
           AND SY-UNAME = 'WTCQS'.
            L_TEMP = IT_PRINT_001.
            PERFORM F_BDC_EXECUTE_004.
            ZMA = IT_PRINT_001-MATNR.
          ELSEIF IT_PRINT_001-MATNR <> ZMA AND IT_PRINT_001-VKORG = '3000'
          AND IT_PRINT_001-MATNR+0(3) <> '80R' AND SY-UNAME <> 'WTCQS'.
            L_TEMP = IT_PRINT_001.
            PERFORM F_BDC_EXECUTE_004.
            ZMA = IT_PRINT_001-MATNR.
          ENDIF.
          CLEAR:L_TEMP.

          CLEAR IT_PRINT_001.
        ENDLOOP.
        CLEAR:ZMA.

      ENDIF.
      SET SCREEN 0.
      PERFORM F_READ_DATA.
      PERFORM F_PRINT_ALV.
*      DATA: LR_GRID TYPE REF TO CL_GUI_ALV_GRID.
*      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
*        IMPORTING
*          E_GRID = LR_GRID.
*      CALL METHOD LR_GRID->CHECK_CHANGED_DATA.
*      RS_SELFIELD-REFRESH = 'X'.  "自动刷新

*    PERFORM SUB_PSH.                                  "订单评审BDC执行
    WHEN 'REFR'.
      SET SCREEN 0.
      PERFORM F_READ_DATA.
      PERFORM F_PRINT_ALV.
    WHEN 'EXIT'.
      SET SCREEN 0.
*      LEAVE TO SCREEN 0.
    WHEN OTHERS.
  ENDCASE.
ENDFORM.                    "F_ALV_USER_COMMAND
************************************************************************
*调用ALV控件的抬头输出程序
FORM F_ALV_EVENT_TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = G_ALV_LISTHEADER.
ENDFORM. "F_ALV_EVENT_TOP_OF_PAGE
************************************************************************
*输出ALV的页脚
FORM F_ALV_EVENT_END_OF_LIST.

ENDFORM. "F_ALV_EVENT_END_OF_LIST
************************************************************************
*弹出文件对话框,确定参数P_FILE
FORM F_FILE_GET.
  CLEAR P_FILE.
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      DEF_FILENAME     = P_FILE
      DEF_PATH         = '/'
      MASK             = '*.xls,*.xls.'
      MODE             = 'O'
      TITLE            = 'XXX数据倒入'  "NEED MODIFY
    IMPORTING
      FILENAME         = P_FILE
    EXCEPTIONS
      INV_WINSYS       = 01
      NO_BATCH         = 02
      SELECTION_CANCEL = 03
      SELECTION_ERROR  = 04.
  IF SY-SUBRC EQ 0.
    IF P_FILE = '*.xls'.
      CLEAR P_FILE.
    ENDIF.
  ENDIF.
ENDFORM.                    " F_FILE_GET
************************************************************************
*打开EXCEL文件
FORM F_FILE_OPEN.
  CREATE OBJECT EXCEL 'Excel.Application'.
  CALL METHOD OF EXCEL 'Workbooks' = WORKBOOK.
  CALL METHOD OF WORKBOOK 'Open'
    EXPORTING
    #1 = P_FILE.

  IF SY-SUBRC <> 0 .
    MESSAGE W230 WITH P_FILE.
    EXIT.
  ENDIF.
ENDFORM.                    " F_FILE_OPEN
************************************************************************
*读取EXCEL表格的数据,充填到内表IT_EXCEL_001中
FORM F_FILE_READ_DATA.
  DATA L_ROW TYPE I.
  DATA L_H TYPE I.
  DATA L_STR(40).

  L_H = 2.
  DO.
*NEED MODIFY: 可以根据EXCEL表格字段量的不同做相应的扩展。这里只适用字段
*数量不多于5个的情况,如有更多的字段,则必须进行相应的扩展。扩展后内表
*IT_EXCEL_001的字段也要做相应的增加。
    CALL METHOD OF EXCEL 'CELLS' = CELL
      EXPORTING
      #1 = L_H
      #2 = 1.
    GET PROPERTY OF CELL 'VALUE' = L_STR.
    MOVE L_STR TO IT_EXCEL_001-COLUMN_001.

    CALL METHOD OF EXCEL 'CELLS' = CELL
      EXPORTING
      #1 = L_H
      #2 = 2.
    GET PROPERTY OF CELL 'VALUE' = L_STR.
    MOVE L_STR TO IT_EXCEL_001-COLUMN_002.

    CALL METHOD OF EXCEL 'CELLS' = CELL
      EXPORTING
      #1 = L_H
      #2 = 3.
    GET PROPERTY OF CELL 'VALUE' = L_STR.
    MOVE L_STR TO IT_EXCEL_001-COLUMN_003.

    CALL METHOD OF EXCEL 'CELLS' = CELL
      EXPORTING
      #1 = L_H
      #2 = 4.
    GET PROPERTY OF CELL  'VALUE' = L_STR.
    MOVE L_STR TO IT_EXCEL_001-COLUMN_004.

    CALL METHOD OF EXCEL 'CELLS' = CELL
      EXPORTING
      #1 = L_H
      #2 = 5.
    GET PROPERTY OF CELL 'VALUE' = L_STR.
    MOVE L_STR TO IT_EXCEL_001-COLUMN_005.

    IF IT_EXCEL_001-COLUMN_001 <= ''.
      EXIT.
    ENDIF.

    APPEND IT_EXCEL_001.
    CLEAR IT_EXCEL_001.
    L_H = L_H + 1.
  ENDDO.
ENDFORM.                 " F_FILE_READ_DATA
************************************************************************
*关闭EXECL文件
FORM F_FILE_CLOSE.
  CALL METHOD OF EXCEL 'QUIT'.
  FREE OBJECT CELL.
  FREE OBJECT WORKBOOK.
  FREE OBJECT EXCEL.
  IF SY-SUBRC NE 0 .
    MESSAGE E001.
  ENDIF.
ENDFORM.                    " F_FILE_CLOSE
************************************************************************
*设置报表输出时,每个字段的输出位置
FORM F_WRITE_INIT_POSITION USING
  PF_ZDKD   "字段宽度
.
  DATA L_OLD_POSTION TYPE I.
  DATA L_NEW_POSTION TYPE I.
  DATA L_OLD_INDEX TYPE I.

  IF PF_ZDKD = 9999.
    REFRESH  IT_WRITE_POSITION.
    G_INIT_COUNT = 0 .
  ELSE.
    L_OLD_INDEX = G_INIT_COUNT .
    G_INIT_COUNT = G_INIT_COUNT + 1.
    IF G_INIT_COUNT = 1 .
      L_NEW_POSTION = 1.
    ELSE.
      READ  TABLE  IT_WRITE_POSITION  INTO  L_OLD_POSTION  INDEX  L_OLD_INDEX.
      L_NEW_POSTION = L_OLD_POSTION + G_LAST_FILED_WIDTH.
    ENDIF.
    APPEND  L_NEW_POSTION  TO  IT_WRITE_POSITION  .
  ENDIF.
  G_LAST_FILED_WIDTH = PF_ZDKD.
ENDFORM.                    "F_WRITE_INIT_POSITION
************************************************************************
*作用与WRITE命令类似,对齐模式通过参数指定
FORM F_WRITE_OUTPUT USING
  PF_SCNR   "输出内容,可能输出SY-VLINE
  PF_DQMS  "对齐模式,三种 (L)EFT-JUSTIFIED . (C)CENTERED . (R)IGHT-JUSTIFIED.
  DATA L_WRITE_POSITION TYPE I.

  G_WRITE_COUNT = G_WRITE_COUNT + 1.
  READ  TABLE  IT_WRITE_POSITION  INTO  L_WRITE_POSITION  INDEX  G_WRITE_COUNT.
  CASE PF_DQMS.
    WHEN 'L' OR ''.
      WRITE: AT L_WRITE_POSITION PF_SCNR LEFT-JUSTIFIED.
    WHEN 'C'.
      WRITE: AT L_WRITE_POSITION PF_SCNR CENTERED.
    WHEN 'R'.
      WRITE: AT L_WRITE_POSITION PF_SCNR RIGHT-JUSTIFIED.
  ENDCASE.
ENDFORM.                    "F_WRITE_OUTPUT
**************************************************************
*COS评审意见
FORM F_SUB_SAVE_TEST_001.
  DATA: T_TEXT TYPE STANDARD TABLE OF TLINE"长文本信息
        INITIAL SIZE 1 WITH HEADER LINE.
  DATA: T_HEAD LIKE THEAD.
  DATA: T_HEAD1 LIKE THEAD.
  DATA L_FUNCTION.

  LOOP AT IT_PRINT_001 WHERE ET1 <> ''." AND FLAG = 'X'

    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
    ID 'VKORG' FIELD IT_PRINT_001-VKORG.

    IF SY-SUBRC <> 0.
      MESSAGE E015.
    ELSE.
*1
      REFRESH T_TEXT.
      T_TEXT-TDFORMAT = 'TX'.
      T_TEXT-TDLINE = IT_PRINT_001-ET1.
      APPEND T_TEXT.
*2
      CLEAR T_HEAD.
      T_HEAD-TDOBJECT = 'VBBP'.
      T_HEAD-TDNAME = IT_PRINT_001-OBJNR1.
      T_HEAD-TDID = '0006'.
      T_HEAD-TDSPRAS = '1'.
      T_HEAD-TDFORM = 'SYSTEM'.

*3
      CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        CLIENT = SYST-MANDT
        HEADER = T_HEAD
*     INSERT = 'X'
        SAVEMODE_DIRECT = 'X'
      IMPORTING
         FUNCTION = L_FUNCTION
         NEWHEADER = T_HEAD1
      TABLES
        LINES    = T_TEXT
      EXCEPTIONS
        ID        = 1
        LANGUAGE  = 2
        NAME      = 3
        OBJECT    = 4.

      IF L_FUNCTION <> 'I' AND L_FUNCTION <> 'U'.
        MESSAGE E014 WITH IT_PRINT_001-OBJNR1.
      ELSE.
        MESSAGE S016 .
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " F_SUB_SAVE_TEST_001

*免费订单GCM评审意见
FORM F_SUB_SAVE_TEST_005.
  DATA: T_TEXT TYPE STANDARD TABLE OF TLINE"长文本信息
        INITIAL SIZE 1 WITH HEADER LINE.
  DATA: T_HEAD LIKE THEAD.
  DATA: T_HEAD1 LIKE THEAD.
  DATA L_FUNCTION.

  LOOP AT IT_PRINT_001 WHERE ET5 <> ''." AND FLAG = 'X'

    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
    ID 'VKORG' FIELD IT_PRINT_001-VKORG.

    IF SY-SUBRC <> 0.
      MESSAGE E015.
    ELSE.
*1
      REFRESH T_TEXT.
      T_TEXT-TDFORMAT = 'TX'.
      T_TEXT-TDLINE = IT_PRINT_001-ET5.
      APPEND T_TEXT.
*2
      CLEAR T_HEAD.
      T_HEAD-TDOBJECT = 'VBBP'.
      T_HEAD-TDNAME = IT_PRINT_001-OBJNR1.
      T_HEAD-TDID = '0001'.
      T_HEAD-TDSPRAS = '1'.
      T_HEAD-TDFORM = 'SYSTEM'.

*3
      CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        CLIENT = SYST-MANDT
        HEADER = T_HEAD
*     INSERT = 'X'
        SAVEMODE_DIRECT = 'X'
      IMPORTING
         FUNCTION = L_FUNCTION
         NEWHEADER = T_HEAD1
      TABLES
        LINES    = T_TEXT
      EXCEPTIONS
        ID        = 1
        LANGUAGE  = 2
        NAME      = 3
        OBJECT    = 4.

      IF L_FUNCTION <> 'I' AND L_FUNCTION <> 'U'.
        MESSAGE E014 WITH IT_PRINT_001-OBJNR1.
      ELSE.
        MESSAGE S016 .
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " F_SUB_SAVE_TEST_005

*BOM评审意见
FORM F_SUB_SAVE_TEST_002.
  DATA: T_TEXT TYPE STANDARD TABLE OF TLINE"长文本信息
        INITIAL SIZE 1 WITH HEADER LINE.
  DATA: T_HEAD LIKE THEAD.
  DATA: T_HEAD1 LIKE THEAD.
  DATA L_FUNCTION.

  LOOP AT IT_PRINT_001 WHERE ET2 <> '' ."AND  FLAG = 'X'
    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
    ID 'VKORG' FIELD IT_PRINT_001-VKORG.

    IF SY-SUBRC <> 0.
      MESSAGE E015.
    ELSE.

      SELECT SINGLE *
      FROM JEST
      INTO JEST
      WHERE OBJNR = IT_PRINT_001-OBJNR
         AND STAT = 'E0002'.

      IF SY-SUBRC <> 0.       "没作评审之前保存文本
*1
        REFRESH T_TEXT.
        T_TEXT-TDFORMAT = 'TX'.
        T_TEXT-TDLINE = IT_PRINT_001-ET2.
        APPEND T_TEXT.
*2
        CLEAR T_HEAD.
        T_HEAD-TDOBJECT = 'VBBP'.
        T_HEAD-TDNAME = IT_PRINT_001-OBJNR1.
        T_HEAD-TDID = '0007'.
        T_HEAD-TDSPRAS = '1'.
        T_HEAD-TDFORM = 'SYSTEM'.

*3
        CALL FUNCTION 'SAVE_TEXT'
        EXPORTING
          CLIENT = SYST-MANDT
          HEADER = T_HEAD
*         INSERT = 'X'
          SAVEMODE_DIRECT = 'X'
        IMPORTING
           FUNCTION = L_FUNCTION
           NEWHEADER = T_HEAD1
        TABLES
          LINES    = T_TEXT
        EXCEPTIONS
          ID        = 1
          LANGUAGE  = 2
          NAME      = 3
          OBJECT    = 4.
        IF L_FUNCTION <> 'I' AND L_FUNCTION <> 'U'.
          MESSAGE E014 WITH IT_PRINT_001-OBJNR1.
        ELSE.
          MESSAGE S016.
        ENDIF.
      ENDIF."SY-SUBRC
    ENDIF.
  ENDLOOP.
ENDFORM.                    " F_SUB_SAVE_TEST_002
*CQS评审意见
FORM F_SUB_SAVE_TEST_003.
  DATA: T_TEXT TYPE STANDARD TABLE OF TLINE"长文本信息
        INITIAL SIZE 1 WITH HEADER LINE.
  DATA: T_HEAD LIKE THEAD.
  DATA: T_HEAD1 LIKE THEAD.
  DATA L_FUNCTION.

  LOOP AT IT_PRINT_001 WHERE ET3 <> '' ."AND  FLAG = 'X'
    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
    ID 'VKORG' FIELD IT_PRINT_001-VKORG.

    IF SY-SUBRC <> 0.
      MESSAGE E015.
    ELSE.

      SELECT SINGLE *
      FROM JEST
      INTO JEST
      WHERE OBJNR = IT_PRINT_001-OBJNR
*         AND STAT = 'E0003'.
         AND STAT = 'E0004'.  "改为生产没有评审前都可以保存文本 ELIN 20090601
      IF SY-SUBRC <> 0.
*1
        REFRESH T_TEXT.
        T_TEXT-TDFORMAT = 'TX'.
        T_TEXT-TDLINE = IT_PRINT_001-ET3.
        APPEND T_TEXT.
*2
        CLEAR T_HEAD.
        T_HEAD-TDOBJECT = 'VBBP'.
        T_HEAD-TDNAME = IT_PRINT_001-OBJNR1.
        T_HEAD-TDID = '0008'.
        T_HEAD-TDSPRAS = '1'.
        T_HEAD-TDFORM = 'SYSTEM'.

*3
        CALL FUNCTION 'SAVE_TEXT'
        EXPORTING
          CLIENT = SYST-MANDT
          HEADER = T_HEAD
*         INSERT = 'X'
          SAVEMODE_DIRECT = 'X'
        IMPORTING
           FUNCTION = L_FUNCTION
           NEWHEADER = T_HEAD1
        TABLES
          LINES    = T_TEXT
        EXCEPTIONS
          ID        = 1
          LANGUAGE  = 2
          NAME      = 3
          OBJECT    = 4.

        IF L_FUNCTION <> 'I' AND L_FUNCTION <> 'U'.
          MESSAGE E014 WITH IT_PRINT_001-OBJNR1.
        ELSE.
          MESSAGE S016.
        ENDIF.
      ENDIF."SY-SUBRC
    ENDIF.
  ENDLOOP.
ENDFORM.                    " F_SUB_SAVE_TEST_003
*生产评审意见
FORM F_SUB_SAVE_TEST_004.
  DATA: T_TEXT TYPE STANDARD TABLE OF TLINE"长文本信息
        INITIAL SIZE 1 WITH HEADER LINE.
  DATA: T_HEAD LIKE THEAD.
  DATA: T_HEAD1 LIKE THEAD.
  DATA L_FUNCTION.

  LOOP AT IT_PRINT_001  ."AND  FLAG = 'X'WHERE ET4 <> ''
    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
    ID 'VKORG' FIELD IT_PRINT_001-VKORG.

    IF SY-SUBRC <> 0.
      MESSAGE E015.
    ELSE.
*1
      REFRESH T_TEXT.
      T_TEXT-TDFORMAT = 'TX'.
      T_TEXT-TDLINE = IT_PRINT_001-ET4.
      APPEND T_TEXT.
*2
      CLEAR T_HEAD.
      T_HEAD-TDOBJECT = 'VBBP'.
      T_HEAD-TDNAME = IT_PRINT_001-OBJNR1.
      T_HEAD-TDID = '0009'.
      T_HEAD-TDSPRAS = '1'.
      T_HEAD-TDFORM = 'SYSTEM'.

*3
      CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        CLIENT = SYST-MANDT
        HEADER = T_HEAD
*     INSERT = 'X'
        SAVEMODE_DIRECT = 'X'
      IMPORTING
         FUNCTION = L_FUNCTION
         NEWHEADER = T_HEAD1
      TABLES
        LINES    = T_TEXT
      EXCEPTIONS
        ID        = 1
        LANGUAGE  = 2
        NAME      = 3
        OBJECT    = 4.

      IF L_FUNCTION <> 'I' AND L_FUNCTION <> 'U'.
        MESSAGE E014 WITH IT_PRINT_001-OBJNR1.
      ELSE.
        MESSAGE S016.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " F_SUB_SAVE_TEST_004

**************************************************************
*取订单文本
FORM F_SUB_GET_TEXT USING P_P_EBELN
                        VALUE(P_0087)
                  CHANGING P_L_STR.
  DATA: T_TEXT TYPE STANDARD TABLE OF TLINE       "长文本信息
        INITIAL SIZE 1 WITH HEADER LINE.
  TABLES: STXL.

  CLEAR T_TEXT.
  CLEAR STXL.

  SELECT SINGLE * FROM STXL INTO STXL
     WHERE TDNAME = P_P_EBELN
       AND TDOBJECT = 'VBBP'
       AND TDID = P_0087.
  IF SY-SUBRC EQ 0.
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        ID        = STXL-TDID
        LANGUAGE  = STXL-TDSPRAS
        NAME      = STXL-TDNAME
        OBJECT    = STXL-TDOBJECT
      TABLES
        LINES     = T_TEXT
      EXCEPTIONS
        ID        = 1
        LANGUAGE  = 2
        NAME      = 3
        NOT_FOUND = 4
        OBJECT    = 5.
    IF SY-SUBRC EQ 0.
      LOOP AT T_TEXT.
        CONCATENATE P_L_STR T_TEXT-TDLINE INTO P_L_STR.
      ENDLOOP.
    ENDIF.
  ENDIF.
ENDFORM.                    " F_SUB_GET_TEXT
***********************************************************
FORM F_BDC_EXECUTE_002.   " 批量评审
*  SORT IT_PRINT_001 BY  VBELN POSNR."FLAG
  LOOP AT IT_PRINT_001 WHERE FLAG = 'X'.
    Z_AREA = IT_PRINT_001.
    AT NEW VBELN.
      AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
      ID 'VKORG' FIELD Z_AREA-VKORG.

      IF SY-SUBRC <> 0.
        MESSAGE E015.
      ELSE.
        REFRESH IT_BDCDATA_001.
        PERFORM F_BDC_GET_BDCDATA_001A.
      ENDIF.
    ENDAT.

*     权限控制,S43B权限组能修改“GCM评审”的相关字段
    IF IT_PRINT_001-AUART = 'ZFD'.
      AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43G'.   "免费订单走不同的BDC
      IF SY-SUBRC = 0 AND Z_AREA-E4 <> 'X' AND Z_AREA-E5 <> 'X'.
        PERFORM F_BDC_GET_BDCDATA_001GCM.
      ENDIF.
*     权限控制,S43B权限组能修改“BOM评审”的相关字段
      AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43B'.
      IF SY-SUBRC = 0 AND Z_AREA-E5 = 'X' AND Z_AREA-E2 <> 'X' AND Z_AREA-STLST <> '5'.
        PERFORM F_BDC_GET_BDCDATA_001BOM2.
      ENDIF.
*     权限控制,S43C权限组能修改“CQS评审”的相关字段
      IF IT_PRINT_001-VKORG <> '3000'.
        AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
        IF SY-SUBRC = 0 AND Z_AREA-E2 = 'X' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001CQS2.
        ELSEIF SY-SUBRC = 0 AND Z_AREA-MMKON = '01' AND Z_AREA-E5 = 'X' AND Z_AREA-E3 <> 'X'.

          PERFORM F_BDC_GET_BDCDATA_001BCQS2.
        ENDIF.
      ELSEIF  IT_PRINT_001-VKORG = '3000'
*      AND ( IT_PRINT_001-MATNR+0(3) = '80R' OR  IT_PRINT_001-MATNR+0(3) = '80T' ) AND SY-UNAME = 'WTCQS'.
     AND ( IT_PRINT_001-MATNR+2(1) <> 'A' AND IT_PRINT_001-MATNR+2(1) <> 'B' AND IT_PRINT_001-MATNR+2(1) <> 'C' AND IT_PRINT_001-MATNR+2(1) <> 'Y')
      AND SY-UNAME = 'WTCQS'.

        AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
        IF SY-SUBRC = 0 AND Z_AREA-E2 = 'X' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001CQS2.
        ELSEIF SY-SUBRC = 0 AND Z_AREA-MMKON = '01' AND Z_AREA-E5 = 'X' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001BCQS2.
        ENDIF.
      ELSEIF IT_PRINT_001-VKORG = '3000' AND IT_PRINT_001-MATNR+0(3) <> '80R' AND SY-UNAME <> 'WTCQS'.
        AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
        IF SY-SUBRC = 0 AND Z_AREA-E2 = 'X' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001CQS2.
        ELSEIF SY-SUBRC = 0 AND Z_AREA-MMKON = '01' AND Z_AREA-E5 = 'X' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001BCQS2.
        ENDIF.
      ENDIF.
*     权限控制,S43D权限组能修改“生产评审”的相关字段
      AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43D'.
      IF SY-SUBRC = 0 AND Z_AREA-E3 = 'X' AND Z_AREA-E4 <> 'X'.
        PERFORM F_BDC_GET_BDCDATA_001SG2.
      ENDIF.
    ELSEIF  IT_PRINT_001-AUART = 'ZMJ'.  "收费样品订单
*     权限控制,S43B权限组能修改“GCM评审”的相关字段
      AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43G'.
      IF SY-SUBRC = 0 AND Z_AREA-E5 <> 'X'.
        PERFORM F_BDC_GET_BDCDATA_001GCM2.
      ENDIF.
    ELSE.
*     权限控制,S43B权限组能修改“BOM评审”的相关字段
      AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43B'.
      IF SY-SUBRC = 0 AND Z_AREA-E4 <> 'X' AND Z_AREA-E2 <> 'X' AND Z_AREA-STLST <> '5'.  "BOM状态为5的不评审
        PERFORM F_BDC_GET_BDCDATA_001BOM.
      ENDIF.
*     权限控制,S43C权限组能修改“CQS评审”的相关字段
*    AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
*    IF SY-SUBRC = 0 AND Z_AREA-E2 = 'X' AND Z_AREA-E3 <> 'X'.
*      PERFORM F_BDC_GET_BDCDATA_001CQS.
*    ELSEIF SY-SUBRC = 0 AND Z_AREA-MMKON = '01' AND Z_AREA-E3 <> 'X'.
*      PERFORM F_BDC_GET_BDCDATA_001BCQS.
*    ENDIF.
      IF IT_PRINT_001-VKORG <> '3000'.
        AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
        IF SY-SUBRC = 0 AND Z_AREA-E2 = 'X' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001CQS.

        ELSEIF SY-SUBRC = 0 AND Z_AREA-MMKON = '01' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001BCQS.
        ENDIF.
      ELSEIF  IT_PRINT_001-VKORG = '3000'
*      AND ( IT_PRINT_001-MATNR+0(3) = '80R' OR IT_PRINT_001-MATNR+0(3) = '80T' ) AND SY-UNAME = 'WTCQS'.
    AND ( IT_PRINT_001-MATNR+2(1) <> 'A' AND IT_PRINT_001-MATNR+2(1) <> 'B' AND IT_PRINT_001-MATNR+2(1) <> 'C' AND IT_PRINT_001-MATNR+2(1) <> 'Y')
    AND SY-UNAME = 'WTCQS'.

        AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
        IF SY-SUBRC = 0 AND Z_AREA-E2 = 'X' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001CQS.
        ELSEIF SY-SUBRC = 0 AND Z_AREA-MMKON = '01' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001BCQS.
        ENDIF.
      ELSEIF IT_PRINT_001-VKORG = '3000' AND IT_PRINT_001-MATNR+0(3) <> '80R' AND SY-UNAME <> 'WTCQS'.
        AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43C'.
        IF SY-SUBRC = 0 AND Z_AREA-E2 = 'X' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001CQS.
        ELSEIF SY-SUBRC = 0 AND Z_AREA-MMKON = '01' AND Z_AREA-E3 <> 'X'.
          PERFORM F_BDC_GET_BDCDATA_001BCQS.
        ENDIF.
      ENDIF.
*     权限控制,S43D权限组能修改“生产评审”的相关字段
      AUTHORITY-CHECK OBJECT 'ZREPORT' ID 'BEGRU' FIELD 'S43D'.
      IF SY-SUBRC = 0 AND Z_AREA-E3 = 'X' AND Z_AREA-E4 <> 'X'.
        PERFORM F_BDC_GET_BDCDATA_001SG.
*            IF SY-SUBRC = 0.
*              MESSAGE S010 WITH T_VBAK-VBELN.
*            ELSE.
*              MESSAGE E011 WITH T_VBAK-VBELN.
*            ENDIF.
      ENDIF.
    ENDIF.
    AT END OF VBELN.

      PERFORM F_BDC_GET_BDCDATA_001C.
      CALL TRANSACTION  'VA02'
            USING  IT_BDCDATA_001
            MODE 'E'
            UPDATE 'A'.
      IF SY-SUBRC <> 0.
        WRITE: / 'ERROR'.
      ENDIF.
    ENDAT.
    CLEAR Z_AREA.

  ENDLOOP.

ENDFORM.                    "F_BDC_EXECUTE_002
**********************************************************************
FORM F_BDC_GET_BDCDATA_001A.
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
     '1' 'SAPMV45A'   '0102',
        ''   'BDC_CURSOR'   'VBAK-VBELN',
        ''   'BDC_OKCODE'   '/00',
        ''   'VBAK-VBELN'   Z_AREA-VBELN.
ENDFORM.                    "F_BDC_GET_BDCDATA_001A
**********************************************************************
FORM F_BDC_GET_BDCDATA_001GCM.
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
      '1' 'SAPMV45A'   '4001',
        ''   'BDC_OKCODE'   '=POPO',
        ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
        ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
        ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
        ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
        ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
        ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
        ''   'BDC_CURSOR'   'RV45A-MABNR(02)',
        ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
      '1' 'SAPMV45A'   '0251',
        ''   'BDC_CURSOR'   'RV45A-POSNR',
        ''   'BDC_OKCODE'   '=POSI',
        ''   'RV45A-POSNR'  Z_AREA-POSNR,
      '1' 'SAPMV45A'   '4001',
        ''   'BDC_OKCODE'   '=ITEM',
        ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
        ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
        ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
        ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
        ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
        ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
        ''   'BDC_CURSOR'   'VBAP-POSNR(01)',
        ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '=T/11',
        ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4451SUBSCREEN_BODY',
*                ''   'BDC_CURSOR'   'VBKD-DELCO',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '=PSTC',
        ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
        ''   'BDC_CURSOR'   'VBAP-ABGRU',
      '1' 'SAPLBSVA'   '0300',
        ''   'BDC_OKCODE'   '=PICK',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
        ''   'BDC_CURSOR'   'J_STMAINT-ANWS(02)',
        ''   'J_STMAINT-ANWS(01) '   '',
        ''   'J_STMAINT-ANWS(02) '   'X',
      '1' 'SAPLBSVA'   '0300',
        ''   'BDC_OKCODE'   '=BACK',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
        ''   'BDC_CURSOR'   'JOSTD-OBJNR',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '/EBACK',
          ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
          ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY'.
ENDFORM.                    "F_BDC_GET_BDCDATA_001GCM

*&---------------------------------------------------------------------*
FORM F_BDC_GET_BDCDATA_001GCM2.  "样品订单,由GCM评审最后一部
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
      '1' 'SAPMV45A'   '4001',
        ''   'BDC_OKCODE'   '=POPO',
        ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
        ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
        ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
        ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
        ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
        ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
        ''   'BDC_CURSOR'   'RV45A-MABNR(02)',
        ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
      '1' 'SAPMV45A'   '0251',
        ''   'BDC_CURSOR'   'RV45A-POSNR',
        ''   'BDC_OKCODE'   '=POSI',
        ''   'RV45A-POSNR'  Z_AREA-POSNR,
      '1' 'SAPMV45A'   '4001',
        ''   'BDC_OKCODE'   '=ITEM',
        ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
        ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
        ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
        ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
        ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
        ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
        ''   'BDC_CURSOR'   'VBAP-POSNR(01)',
        ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '=T/11',
        ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4451SUBSCREEN_BODY',
*                ''   'BDC_CURSOR'   'VBKD-DELCO',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '=PSTC',
        ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
        ''   'BDC_CURSOR'   'VBAP-ABGRU',

      '1' 'SAPLBSVA'   '0300',
        ''   'BDC_OKCODE'   '=PICK',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
        ''   'BDC_CURSOR'   'J_STMAINT-ANWS(02)',
        ''   'J_STMAINT-ANWS(01) '   '',
        ''   'J_STMAINT-ANWS(02) '   'X',
      '1' 'SAPLBSVA'   '0300',
        ''   'BDC_OKCODE'   '=BACK',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
        ''   'BDC_CURSOR'   'JOSTD-OBJNR',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '/EBACK',
          ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
          ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
            ''       'BDC_CURSOR' 'VBAP-ABGRU',
            ''          'VBAP-ABGRU'      ''.   "更改拒绝原因为空
ENDFORM.                    "F_BDC_GET_BDCDATA_001GCM2

*&---------------------------------------------------------------------*

*&      Form  F_BDC_GET_BDCDATA_001BOM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F_BDC_GET_BDCDATA_001BOM.
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
      '1' 'SAPMV45A'   '4001',
        ''   'BDC_OKCODE'   '=POPO',
        ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
        ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
        ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
        ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
        ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
        ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
        ''   'BDC_CURSOR'   'RV45A-MABNR(02)',
        ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
      '1' 'SAPMV45A'   '0251',
        ''   'BDC_CURSOR'   'RV45A-POSNR',
        ''   'BDC_OKCODE'   '=POSI',
        ''   'RV45A-POSNR'  Z_AREA-POSNR,
      '1' 'SAPMV45A'   '4001',
        ''   'BDC_OKCODE'   '=ITEM',
        ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
        ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
        ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
        ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
        ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
        ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
        ''   'BDC_CURSOR'   'VBAP-POSNR(01)',
        ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '=T/11',
        ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4451SUBSCREEN_BODY',
*                ''   'BDC_CURSOR'   'VBKD-DELCO',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '=PSTC',
        ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
        ''   'BDC_CURSOR'   'VBAP-ABGRU',
      '1' 'SAPLBSVA'   '0300',
        ''   'BDC_OKCODE'   '=PICK',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
        ''   'BDC_CURSOR'   'J_STMAINT-ANWS(02)',
        ''   'J_STMAINT-ANWS(01) '   '',
        ''   'J_STMAINT-ANWS(02) '   'X',
      '1' 'SAPLBSVA'   '0300',
        ''   'BDC_OKCODE'   '=BACK',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
        ''   'BDC_CURSOR'   'JOSTD-OBJNR',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '/EBACK',
          ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
          ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY'.
ENDFORM.                    "F_BDC_GET_BDCDATA_001BOM

*&---------------------------------------------------------------------*
*&      Form  F_BDC_GET_BDCDATA_001BOM2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F_BDC_GET_BDCDATA_001BOM2.
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
      '1' 'SAPMV45A'   '4001',
        ''   'BDC_OKCODE'   '=POPO',
        ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
        ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
        ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
        ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
        ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
        ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
        ''   'BDC_CURSOR'   'RV45A-MABNR(02)',
        ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
      '1' 'SAPMV45A'   '0251',
        ''   'BDC_CURSOR'   'RV45A-POSNR',
        ''   'BDC_OKCODE'   '=POSI',
        ''   'RV45A-POSNR'  Z_AREA-POSNR,
      '1' 'SAPMV45A'   '4001',
        ''   'BDC_OKCODE'   '=ITEM',
        ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
        ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
        ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
        ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
        ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
        ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
        ''   'BDC_CURSOR'   'VBAP-POSNR(01)',
        ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '=T/11',
        ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4451SUBSCREEN_BODY',
*                ''   'BDC_CURSOR'   'VBKD-DELCO',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '=PSTC',
        ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
        ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
        ''   'BDC_CURSOR'   'VBAP-ABGRU',
      '1' 'SAPLBSVA'   '0300',
        ''   'BDC_OKCODE'   '=PICK',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
        ''   'BDC_CURSOR'   'J_STMAINT-ANWS(03)',
        ''   'J_STMAINT-ANWS(02) '   '',
        ''   'J_STMAINT-ANWS(03) '   'X',
      '1' 'SAPLBSVA'   '0300',
        ''   'BDC_OKCODE'   '=BACK',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
        ''   'BDC_CURSOR'   'JOSTD-OBJNR',
        ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
      '1' 'SAPMV45A'   '4003',
        ''   'BDC_OKCODE'   '/EBACK',
          ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
          ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY'.
ENDFORM.                    "F_BDC_GET_BDCDATA_001BOM2

*********************************************************************
*CQS
FORM F_BDC_GET_BDCDATA_001CQS.
  DATA USERN TYPE STRING.
  CALL FUNCTION 'Z_RETURN_USERNAME'
    IMPORTING
      USERNAME = USERN.
  TRANSLATE USERN TO UPPER CASE .
  SELECT SINGLE ZNAME FROM ZDT02 INTO IT_PRINT_001-HOST2 WHERE ZPC = USERN.

*  CALL FUNCTION 'TERMINAL_ID_GET'
*    EXPORTING
*      USERNAME             = SY-UNAME "
*    IMPORTING
*      TERMINAL             = IP_UNAME     "IP + HOSTNAME
*    EXCEPTIONS
*      MULTIPLE_TERMINAL_ID = 1
*      NO_TERMINAL_FOUND    = 2.
*
*  SPLIT IP_UNAME AT '-' INTO IT_PRINT_001-IPDEC2 IT_PRINT_001-HOST2.
*  TRANSLATE IT_PRINT_001-HOST2 TO UPPER CASE .
*  SELECT SINGLE ZNAME FROM ZDT02 INTO IT_PRINT_001-ZNAME WHERE ZPC = IT_PRINT_001-HOST2.
*  CONCATENATE  IT_PRINT_001-ZNAME '|' IT_PRINT_001-HOST2 INTO  IT_PRINT_001-HOST2.
  MOVE IT_PRINT_001-VBELN TO ZJCDS-VBELN.
  MOVE IT_PRINT_001-POSNR TO ZJCDS-POSNR.
  MOVE IT_PRINT_001-HOST2 TO ZJCDS-CQSNAME.
  MODIFY ZJCDS.
  MODIFY IT_PRINT_001.

  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
 '1' 'SAPMV45A'   '4001',
  ''   'BDC_OKCODE'   '=POPO',
  ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
  ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
  ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
  ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
  ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
  ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
  ''   'BDC_CURSOR'   'RV45A-MABNR(02)',
  ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
'1' 'SAPMV45A'   '0251',
  ''   'BDC_CURSOR'   'RV45A-POSNR',
  ''   'BDC_OKCODE'   '=POSI',
  ''   'RV45A-POSNR'  Z_AREA-POSNR,
'1' 'SAPMV45A'   '4001',
  ''   'BDC_OKCODE'   '=ITEM',
  ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
  ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
  ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
  ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
  ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
  ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
  ''   'BDC_CURSOR'   'VBAP-POSNR(01)',
  ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '=T/11',
  ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4451SUBSCREEN_BODY',
*          ''   'BDC_CURSOR'   'VBKD-DELCO',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '=PSTC',
  ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
  ''   'BDC_CURSOR'   'VBAP-ABGRU',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=PICK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
  ''   'BDC_CURSOR'   'J_STMAINT-ANWS(03)',
  ''   'J_STMAINT-ANWS(02) '   '',
      ''   'J_STMAINT-ANWS(03) '   'X',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=BACK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_CURSOR'   'JOSTD-OBJNR',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '/EBACK',
    ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
    ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY'.
ENDFORM.                    "F_BDC_GET_BDCDATA_001CQS

*&---------------------------------------------------------------------*
*&      Form  F_BDC_GET_BDCDATA_001CQS2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F_BDC_GET_BDCDATA_001CQS2.
  DATA USERN TYPE STRING.
  CALL FUNCTION 'Z_RETURN_USERNAME'
    IMPORTING
      USERNAME = USERN.
  TRANSLATE USERN TO UPPER CASE .
  SELECT SINGLE ZNAME FROM ZDT02 INTO IT_PRINT_001-HOST2 WHERE ZPC = USERN.

*  CALL FUNCTION 'TERMINAL_ID_GET'
*    EXPORTING
*      USERNAME             = SY-UNAME "
*    IMPORTING
*      TERMINAL             = IP_UNAME     "IP + HOSTNAME
*    EXCEPTIONS
*      MULTIPLE_TERMINAL_ID = 1
*      NO_TERMINAL_FOUND    = 2.
*
*  SPLIT IP_UNAME AT '-' INTO IT_PRINT_001-IPDEC2 IT_PRINT_001-HOST2.
*  TRANSLATE IT_PRINT_001-HOST2 TO UPPER CASE .
*  SELECT SINGLE ZNAME FROM ZDT02 INTO IT_PRINT_001-ZNAME WHERE ZPC = IT_PRINT_001-HOST2.
*  CONCATENATE  IT_PRINT_001-ZNAME '|' IT_PRINT_001-HOST2 INTO  IT_PRINT_001-HOST2.

  MOVE IT_PRINT_001-VBELN TO ZJCDS-VBELN.
  MOVE IT_PRINT_001-POSNR TO ZJCDS-POSNR.
  MOVE IT_PRINT_001-HOST2 TO ZJCDS-CQSNAME.
  MODIFY ZJCDS.
  MODIFY IT_PRINT_001.

  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
 '1' 'SAPMV45A'   '4001',
  ''   'BDC_OKCODE'   '=POPO',
  ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
  ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
  ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
  ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
  ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
  ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
  ''   'BDC_CURSOR'   'RV45A-MABNR(02)',
  ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
'1' 'SAPMV45A'   '0251',
  ''   'BDC_CURSOR'   'RV45A-POSNR',
  ''   'BDC_OKCODE'   '=POSI',
  ''   'RV45A-POSNR'  Z_AREA-POSNR,
'1' 'SAPMV45A'   '4001',
  ''   'BDC_OKCODE'   '=ITEM',
  ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
  ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
  ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
  ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
  ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
  ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
  ''   'BDC_CURSOR'   'VBAP-POSNR(01)',
  ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '=T/11',
  ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4451SUBSCREEN_BODY',
*          ''   'BDC_CURSOR'   'VBKD-DELCO',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '=PSTC',
  ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
  ''   'BDC_CURSOR'   'VBAP-ABGRU',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=PICK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
  ''   'BDC_CURSOR'   'J_STMAINT-ANWS(04)',
  ''   'J_STMAINT-ANWS(03) '   '',
      ''   'J_STMAINT-ANWS(04) '   'X',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=BACK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_CURSOR'   'JOSTD-OBJNR',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '/EBACK',
    ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
    ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY'.

ENDFORM.                    "F_BDC_GET_BDCDATA_001CQS2

*********************************************************************
*CQS----老产品BOM不评审,由CQS评审一起评审
FORM F_BDC_GET_BDCDATA_001BCQS.

  DATA USERN TYPE STRING.
  CALL FUNCTION 'Z_RETURN_USERNAME'
    IMPORTING
      USERNAME = USERN.
  TRANSLATE USERN TO UPPER CASE .
  SELECT SINGLE ZNAME FROM ZDT02 INTO IT_PRINT_001-HOST2 WHERE ZPC = USERN.
*  CALL FUNCTION 'TERMINAL_ID_GET'
*    EXPORTING
*      USERNAME             = SY-UNAME "
*    IMPORTING
*      TERMINAL             = IP_UNAME     "IP + HOSTNAME
*    EXCEPTIONS
*      MULTIPLE_TERMINAL_ID = 1
*      NO_TERMINAL_FOUND    = 2.
*
*  SPLIT IP_UNAME AT '-' INTO IT_PRINT_001-IPDEC2 IT_PRINT_001-HOST2.
*  TRANSLATE IT_PRINT_001-HOST2 TO UPPER CASE .
*  SELECT SINGLE ZNAME FROM ZDT02 INTO IT_PRINT_001-ZNAME WHERE ZPC = IT_PRINT_001-HOST2.
*  CONCATENATE  IT_PRINT_001-ZNAME '|' IT_PRINT_001-HOST2 INTO  IT_PRINT_001-HOST2.
  MOVE IT_PRINT_001-VBELN TO ZJCDS-VBELN.
  MOVE IT_PRINT_001-POSNR TO ZJCDS-POSNR.
  MOVE IT_PRINT_001-HOST2 TO ZJCDS-CQSNAME.
  MODIFY ZJCDS.
  MODIFY IT_PRINT_001.
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
 '1' 'SAPMV45A'   '4001',
  ''   'BDC_OKCODE'   '=POPO',
  ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
  ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
  ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
  ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
  ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
  ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
  ''   'BDC_CURSOR'   'RV45A-MABNR(02)',
  ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
'1' 'SAPMV45A'   '0251',
  ''   'BDC_CURSOR'   'RV45A-POSNR',
  ''   'BDC_OKCODE'   '=POSI',
  ''   'RV45A-POSNR'  Z_AREA-POSNR,
'1' 'SAPMV45A'   '4001',
  ''   'BDC_OKCODE'   '=ITEM',
  ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
  ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
  ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
  ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
  ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
  ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
  ''   'BDC_CURSOR'   'VBAP-POSNR(01)',
  ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '=T/11',
  ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4451SUBSCREEN_BODY',
*          ''   'BDC_CURSOR'   'VBKD-DELCO',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '=PSTC',
  ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
  ''   'BDC_CURSOR'   'VBAP-ABGRU',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=PICK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
  ''   'BDC_CURSOR'   'J_STMAINT-ANWS(02)',
  ''   'J_STMAINT-ANWS(02) '   'X',
      ''   'J_STMAINT-ANWS(03) '   '',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=PICK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
  ''   'BDC_CURSOR'   'J_STMAINT-ANWS(03)',
  ''   'J_STMAINT-ANWS(02) '   '',
      ''   'J_STMAINT-ANWS(03) '   'X',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=BACK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_CURSOR'   'JOSTD-OBJNR',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '/EBACK',
    ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
    ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY'.

ENDFORM.                    "F_BDC_GET_BDCDATA_001BCQS

*&---------------------------------------------------------------------*
*&      Form  F_BDC_GET_BDCDATA_001BCQS2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F_BDC_GET_BDCDATA_001BCQS2.
  "评审
  DATA USERN TYPE STRING.
  CALL FUNCTION 'Z_RETURN_USERNAME'
    IMPORTING
      USERNAME = USERN.
  TRANSLATE USERN TO UPPER CASE .
  SELECT SINGLE ZNAME FROM ZDT02 INTO IT_PRINT_001-HOST2 WHERE ZPC = USERN.
*  CALL FUNCTION 'TERMINAL_ID_GET'
*    EXPORTING
*      USERNAME             = SY-UNAME "
*    IMPORTING
*      TERMINAL             = IP_UNAME     "IP + HOSTNAME
*    EXCEPTIONS
*      MULTIPLE_TERMINAL_ID = 1
*      NO_TERMINAL_FOUND    = 2.
*
*  SPLIT IP_UNAME AT '-' INTO IT_PRINT_001-IPDEC2 IT_PRINT_001-HOST2.
**  CONCATENATE  SY-UNAME '|' IT_PRINT_001-HOST2 INTO  IT_PRINT_001-HOST2.
*  TRANSLATE IT_PRINT_001-HOST2 TO UPPER CASE .
*  SELECT SINGLE ZNAME FROM ZDT02 INTO IT_PRINT_001-ZNAME WHERE ZPC = IT_PRINT_001-HOST2.
*  CONCATENATE  IT_PRINT_001-ZNAME '|' IT_PRINT_001-HOST2 INTO  IT_PRINT_001-HOST2.
  MOVE IT_PRINT_001-VBELN TO ZJCDS-VBELN.
  MOVE IT_PRINT_001-POSNR TO ZJCDS-POSNR.
  MOVE IT_PRINT_001-HOST2 TO ZJCDS-CQSNAME.
  MODIFY ZJCDS. "ZJCDS用于存放评审的单子的电脑名
  MODIFY IT_PRINT_001.

  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
 '1' 'SAPMV45A'   '4001',
  ''   'BDC_OKCODE'   '=POPO',
  ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
  ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
  ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
  ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
  ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
  ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
  ''   'BDC_CURSOR'   'RV45A-MABNR(02)',
  ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
'1' 'SAPMV45A'   '0251',
  ''   'BDC_CURSOR'   'RV45A-POSNR',
  ''   'BDC_OKCODE'   '=POSI',
  ''   'RV45A-POSNR'  Z_AREA-POSNR,
'1' 'SAPMV45A'   '4001',
  ''   'BDC_OKCODE'   '=ITEM',
  ''   'BDC_SUBSCR'   'SAPMV45A  4021SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4701PART-SUB',
  ''   'BDC_SUBSCR'   'SAPMV45A  4400SUBSCREEN_BODY',
  ''   'BDC_SUBSCR'   'SAPMV45A  4440HEADER_FRAME',
  ''   'BDC_SUBSCR'   'SAPMV45A  8310HEAD_USER',
  ''   'BDC_SUBSCR'   'SAPLV45W  0400SUBSCREEN_VERTRAG',
  ''   'BDC_SUBSCR'   'SAPMV45A  4900SUBSCREEN_TC',
  ''   'BDC_CURSOR'   'VBAP-POSNR(01)',
  ''   'BDC_SUBSCR'   'SAPMV45A  4050SUBSCREEN_BUTTONS',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '=T/11',
  ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4451SUBSCREEN_BODY',
*          ''   'BDC_CURSOR'   'VBKD-DELCO',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '=PSTC',
  ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
  ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY',
  ''   'BDC_CURSOR'   'VBAP-ABGRU',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=PICK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
  ''   'BDC_CURSOR'   'J_STMAINT-ANWS(03)',
  ''   'J_STMAINT-ANWS(03) '   'X',
      ''   'J_STMAINT-ANWS(04) '   '',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=PICK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
  ''   'BDC_CURSOR'   'J_STMAINT-ANWS(04)',
  ''   'J_STMAINT-ANWS(03) '   '',
      ''   'J_STMAINT-ANWS(04) '   'X',
'1' 'SAPLBSVA'   '0300',
  ''   'BDC_OKCODE'   '=BACK',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0800HEADER',
  ''   'BDC_CURSOR'   'JOSTD-OBJNR',
  ''   'BDC_SUBSCR'   'SAPLBSVA  0302SUBSCREEN',
'1' 'SAPMV45A'   '4003',
  ''   'BDC_OKCODE'   '/EBACK',
    ''   'BDC_SUBSCR'   'SAPMV45A  4013SUBSCREEN_HEADER',
    ''   'BDC_SUBSCR'   'SAPMV45A  4456SUBSCREEN_BODY'.

ENDFORM.                    "F_BDC_GET_BDCDATA_001BCQS2
*********************************************************************
*生管
FORM F_BDC_GET_BDCDATA_001SG.
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:       
'1' 'SAPMV45A'        '4001',         
      '' 'BDC_OKCODE' '=POPO', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4021SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4701PART-SUB', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4400SUBSCREEN_BODY', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4440HEADER_FRAME', 
'1' 'SAPMV45A'        '0251',         
      '' 'BDC_CURSOR' 'RV45A-POSNR', 
      '' 'BDC_OKCODE' '=POSI', 
      '' 'RV45A-POSNR'     Z_AREA-POSNR, 
'1' 'SAPMV45A'        '4001',         
      '' 'BDC_OKCODE' '=ITEM', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4021SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4701PART-SUB', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4400SUBSCREEN_BODY', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4440HEADER_FRAME', 
      '' 'BDC_SUBSCR' 'SAPMV45A           8310HEAD_USER', 
      '' 'BDC_SUBSCR' 'SAPLV45W           0400SUBSCREEN_VERTRAG', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4900SUBSCREEN_TC', 
      '' 'BDC_CURSOR' 'VBAP-POSNR(01)', 
      '' 'VBAP-ABGRU(01)'  '', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4050SUBSCREEN_BUTTONS', 
'1' 'SAPMV45A'        '4003',         
      '' 'BDC_OKCODE' '=T/11', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4013SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4451SUBSCREEN_BODY', 
*              '' 'BDC_CURSOR' 'RV45A-KWMENG', 
'1' 'SAPMV45A'        '4003', 
      '' 'BDC_OKCODE' '=PSTC', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4013SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4456SUBSCREEN_BODY', 
      '' 'BDC_CURSOR' 'VBAP-ABGRU', 
'1' 'SAPLBSVA'        '0300',         
      '' 'BDC_OKCODE' '=PICK', 
      '' 'BDC_SUBSCR' 'SAPLBSVA           0800HEADER', 
      '' 'BDC_SUBSCR' 'SAPLBSVA           0302SUBSCREEN', 
      '' 'BDC_CURSOR' 'J_STMAINT-ANWS(04)', 
      '' 'J_STMAINT-ANWS(03) '         '', 
      '' 'J_STMAINT-ANWS(04)'          'X', 
'1' 'SAPLBSVA'        '0300',        
      '' 'BDC_OKCODE' '=BACK', 
      '' 'BDC_SUBSCR' 'SAPLBSVA           0800HEADER', 
      '' 'BDC_CURSOR' 'JOSTD-OBJNR', 
      '' 'BDC_SUBSCR' 'SAPLBSVA           0302SUBSCREEN', 
'1' 'SAPMV45A'        '4003',         
      '' 'BDC_OKCODE' '/EBACK', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4013SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4456SUBSCREEN_BODY', 
      '' 'BDC_CURSOR' 'VBAP-ABGRU',
          ''    'VBAP-ABGRU'      ''.
   
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  F_BDC_GET_BDCDATA_001SG2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F_BDC_GET_BDCDATA_001SG2.
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:       
'1' 'SAPMV45A'        '4001',         
      '' 'BDC_OKCODE' '=POPO', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4021SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4701PART-SUB', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4400SUBSCREEN_BODY', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4440HEADER_FRAME', 
'1' 'SAPMV45A'        '0251',         
      '' 'BDC_CURSOR' 'RV45A-POSNR', 
      '' 'BDC_OKCODE' '=POSI', 
      '' 'RV45A-POSNR'     Z_AREA-POSNR, 
'1' 'SAPMV45A'        '4001',         
      '' 'BDC_OKCODE' '=ITEM', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4021SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4701PART-SUB', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4400SUBSCREEN_BODY', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4440HEADER_FRAME', 
      '' 'BDC_SUBSCR' 'SAPMV45A           8310HEAD_USER', 
      '' 'BDC_SUBSCR' 'SAPLV45W           0400SUBSCREEN_VERTRAG', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4900SUBSCREEN_TC', 
      '' 'BDC_CURSOR' 'VBAP-POSNR(01)', 
      '' 'VBAP-ABGRU(01)'  '', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4050SUBSCREEN_BUTTONS', 
'1' 'SAPMV45A'        '4003',         
      '' 'BDC_OKCODE' '=T/11', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4013SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4451SUBSCREEN_BODY', 
*              '' 'BDC_CURSOR' 'RV45A-KWMENG', 
'1' 'SAPMV45A'        '4003', 
      '' 'BDC_OKCODE' '=PSTC', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4013SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4456SUBSCREEN_BODY', 
      '' 'BDC_CURSOR' 'VBAP-ABGRU', 
'1' 'SAPLBSVA'        '0300',         
      '' 'BDC_OKCODE' '=PICK', 
      '' 'BDC_SUBSCR' 'SAPLBSVA           0800HEADER', 
      '' 'BDC_SUBSCR' 'SAPLBSVA           0302SUBSCREEN', 
      '' 'BDC_CURSOR' 'J_STMAINT-ANWS(05)', 
      '' 'J_STMAINT-ANWS(04) '         '', 
      '' 'J_STMAINT-ANWS(05)'          'X', 
'1' 'SAPLBSVA'        '0300',        
      '' 'BDC_OKCODE' '=BACK', 
      '' 'BDC_SUBSCR' 'SAPLBSVA           0800HEADER', 
      '' 'BDC_CURSOR' 'JOSTD-OBJNR', 
      '' 'BDC_SUBSCR' 'SAPLBSVA           0302SUBSCREEN', 
'1' 'SAPMV45A'        '4003',         
      '' 'BDC_OKCODE' '/EBACK', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4013SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4456SUBSCREEN_BODY', 
      '' 'BDC_CURSOR' 'VBAP-ABGRU',
          ''    'VBAP-ABGRU'      ''.
   
ENDFORM.

**********************************************************************
FORM F_BDC_GET_BDCDATA_001C.
  PERFORM F_BDC_MODIFY_BDCDATA
        USING:
    '1' 'SAPMV45A'        '4001',         
      '' 'BDC_OKCODE' '=SICH'," 
      '' 'BDC_SUBSCR' 'SAPMV45A           4021SUBSCREEN_HEADER', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4701PART-SUB', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4400SUBSCREEN_BODY', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4440HEADER_FRAME', 
      '' 'BDC_SUBSCR' 'SAPMV45A           8310HEAD_USER', 
      '' 'BDC_SUBSCR' 'SAPLV45W           0400SUBSCREEN_VERTRAG', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4900SUBSCREEN_TC', 
      '' 'BDC_CURSOR' 'RV45A-MABNR(01)', 
      '' 'BDC_SUBSCR' 'SAPMV45A           4050SUBSCREEN_BUTTONS'
      .
ENDFORM.                    "F_BDC_GET_BDCDATA_001C
*************************************************************************
FORM F_BDC_MODIFY_BDCDATA USING
    FLAG  VAR1  VAR2.
   CLEAR IT_BDCDATA_001.
   IF FLAG = '1'.
     IT_BDCDATA_001-PROGRAM  = VAR1.
     IT_BDCDATA_001-DYNPRO  = VAR2.
     IT_BDCDATA_001-DYNBEGIN = 'X'.
   ELSE.
     IT_BDCDATA_001-FNAM = VAR1.
     IT_BDCDATA_001-FVAL = VAR2.
   ENDIF.
   APPEND IT_BDCDATA_001.
ENDFORM.                    "F_BDC_MODIFY_BDCDATA
************************************************************************
*导入BDC参数
FORM F_BDC_GET_BDCDATA_003 .
*  DATA L_TEMP LIKE LINE OF IT_PRINT_001.
  REFRESH IT_BDCDATA_001.
*  READ TABLE IT_PRINT_001 INTO L_TEMP INDEX G_TABINDEX.
  PERFORM F_BDC_MODIFY_BDCDATA
  USING:
     '1'     'ZR_PP_049'     '1000',
      ''     'BDC_CURSOR'    'P_WERKS',
      ''     'BDC_OKCODE'    '=ONLI',
      ''     'P_SALE'        'X',
      ''     'S_VBELN-LOW'   L_TEMP-VBELN,
      ''     'S_POSNR-LOW'   L_TEMP-POSNR,
      ''     'SP$00042'      '3',
      ''     'P_WERKS'       L_TEMP-VKORG,
      ''     'S_ARBPL-LOW'   'PC*',
      ''     'P_KAPAR'       '001',
      ''     'P_ARBPL'       'X',
*      ''     'P_CBX003'      'X',
      ''     'P_ALV'         'X'.
ENDFORM.                    " F_BDC_GET_BDCDATA_003
************************************************************************
*调用TCODE, 执行BDC(使用内表IT_BDCDATA_001作为参数)
FORM F_BDC_EXECUTE_003.
  PERFORM F_BDC_GET_BDCDATA_003.
  CALL TRANSACTION  'ZP49'
   USING  IT_BDCDATA_001
   MODE 'E'
   UPDATE 'A'.
  IF SY-SUBRC <> 0.
    WRITE: / 'ERROR'.
  ENDIF.
ENDFORM.                    " F_BDC_EXECUTE_003
************************************************************************
*导入BDC参数--MM02物料定价组
FORM F_BDC_GET_BDCDATA_004 .
*  DATA L_TEMP LIKE LINE OF IT_PRINT_001.
  REFRESH IT_BDCDATA_001.
*  READ TABLE IT_PRINT_001 INTO L_TEMP INDEX G_TABINDEX.
  PERFORM F_BDC_MODIFY_BDCDATA
  USING:
     '1'    'SAPLMGMM'      '0060',
     ''     'BDC_CURSOR'      'RMMG1-MATNR',
     ''     'BDC_OKCODE'      '=ENTR',
     ''     'RMMG1-MATNR'      L_TEMP-MATNR,
     '1'    'SAPLMGMM'      '0070',
     ''     'BDC_CURSOR'      'MSICHTAUSW-DYTXT(02)',
     ''     'BDC_OKCODE'      '=ENTR',
     ''     'MSICHTAUSW-KZSEL(02)'      'X',          "CQS评审更改物料定价组,只开通修改销售视图,所以所选的位置是2
     '1'    'SAPLMGMM'      '0080',
     ''     'BDC_CURSOR'      'RMMG1-VTWEG',
     ''     'BDC_OKCODE'      '=ENTR',
     ''     'RMMG1-WERKS'     L_TEMP-WERKS,
     ''     'RMMG1-VKORG'     L_TEMP-VKORG,
     ''     'RMMG1-VTWEG'     L_TEMP-VTWEG,
     '1'    'SAPLMGMM'      '4000',
     ''     'BDC_OKCODE'      '=BABA',
     ''     'BDC_SUBSCR'      'SAPLMGMM       2000TABFRA1',
     ''     'BDC_SUBSCR'      'SAPLMGD1       1004SUB1',
     ''     'BDC_SUBSCR'      'SAPLMGD1       2157SUB2',
     ''     'BDC_CURSOR'      'MVKE-KONDM',
*     ''     'MVKE-VERSG'      '1',
     ''     'MVKE-KONDM'      '01',    "-----由02新产品改成01老产品
*     ''     'MVKE-KTGRM'      '01',
*     ''     'MARA-MTPOS_MARA'      'NORM',
*     ''     'MVKE-MTPOS'      'NORM',
     ''     'BDC_SUBSCR'      'SAPLMGD1       2156SUB3',
     ''     'BDC_SUBSCR'      'SAPLMGD1       2155SUB4',
     ''     'BDC_SUBSCR'      'SAPLMGD1       0001SUB5',
     ''     'BDC_SUBSCR'      'SAPLMGD1       0001SUB6',
     '1'    'SAPLSPO1'      '0300',
     ''     'BDC_OKCODE'      '=YES'.

ENDFORM.                    " F_BDC_GET_BDCDATA_004
************************************************************************
*调用TCODE, 执行BDC(使用内表IT_BDCDATA_001作为参数)
FORM F_BDC_EXECUTE_004.
  PERFORM F_BDC_GET_BDCDATA_004.
  CALL TRANSACTION  'MM02'
   USING  IT_BDCDATA_001
   MODE 'E'
   UPDATE 'A'.
  IF SY-SUBRC <> 0.
    WRITE: / 'ERROR'.
  ENDIF.
ENDFORM.                    " F_BDC_EXECUTE_004