上传文件改sap MM03下载文件到本地

  SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style. italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } *&---------------------------------------------------------------------*
*& Report  /TDK/CU00010
*&
*&---------------------------------------------------------------------*
*&
*PROGRAM : /TDK/CU00010
*CREATE BY  : WANG JIANG TAO
*DATE: 2012.12.6
*DESCRIPTION : Accounting related Material Master Maintenance
************************************************************************
*  CHANGE LOG
* DATE  NO  CHANGED BY  CONTENTS
*  2012/12/06 r01-00   a6023629  Create New

REPORT  /TDK/CU00010.

TYPE-POOLS: TRUXS,SSCR.

TABLES : T001K, T001W,MBEW,/TDK/CT000201,MARC.

CONSTANTS: C_K  TYPE  C  VALUE  'X'.

DATA: RESTRICT  TYPE SSCR_RESTRICT,
      OPTLIST  TYPE SSCR_OPT_LIST,
      ASS  TYPE SSCR_ASS.
DATA:IT_RAW  TYPE TRUXS_T_TEXT_DATA.

DATA : Z_YEAR      LIKE  BAPI0002_4-FISCAL_YEAR,
       Z_MONTH     LIKE  BAPI0002_4-FISCAL_PERIOD.
DATA : Z_STRING    TYPE STRING.
DATA : TH_T001K    LIKE  T001K,
       TD_T001K    LIKE  TABLE  OF TH_T001K.
DATA : LTH_KOKRS      LIKE TKA02-KOKRS,
       LTH_PERIOD     LIKE BAPI0002_4-POSTING_DATE.
DATA : W_FILENAME       TYPE STRING.


DATA :  BEGIN  OF TH_MBEW,
       MATNR     LIKE    MBEW-MATNR,
       BWKEY     LIKE    MBEW-BWKEY,
       PEINH     LIKE    MBEW-PEINH,
       ZPLP1     LIKE    MBEW-ZPLP1,
       ZPLD1     LIKE    MBEW-ZPLD1,
       ZPLP2     LIKE    MBEW-ZPLP2,
       ZPLD2     LIKE    MBEW-ZPLD2,
       ZPLP3     LIKE    MBEW-ZPLP3,
       ZPLD3     LIKE    MBEW-ZPLD3,
       BWPRS     LIKE    MBEW-BWPRS,
       BWPS1     LIKE    MBEW-BWPS1,
       VJBWS     LIKE    MBEW-VJBWS,
       BWPRH     LIKE    MBEW-BWPRH,
       BWPH1     LIKE    MBEW-BWPH1,
       VJBWH     LIKE    MBEW-VJBWH,
        END  OF TH_MBEW,
TD_MBEW  LIKE  TABLE  OF TH_MBEW.
DATA : LTH_MONTH  LIKE BAPI0002_4-FISCAL_PERIOD,
       LTH_YEAR   LIKE BAPI0002_4-FISCAL_YEAR.
DATA : TD_MAT_HIER  TYPE  STANDARD  TABLE  OF /TDK/SC0002,
       TH_MAT_HIER  LIKE  LINE  OF TD_MAT_HIER,
       LTD_MATNR  LIKE  STANDARD  TABLE  OF /TDK/SC0001,
       LST_MATNR  LIKE  LINE  OF LTD_MATNR.
DATA :  BEGIN  OF TH_SAVE,
       Z_BU( 4)     TYPE  C,                                         "B.Unit
       Z_CBU( 10)   TYPE  C,                                         "CBU
       Z_SBU( 10)   TYPE  C,                                         "SBU
       Z_GRO( 10)   TYPE  C,                                         "TDK-Item Group
       MATNR       LIKE MBEW-MATNR,                                "Material
       MAKTX       LIKE MAKT-MAKTX,                                "Material Text
       WERKS       LIKE T001W-WERKS,                               "Plant Code
       NAME1       LIKE T001W-NAME1,                               "Plant Code Text
       ZPLP1( 40)   TYPE  C,                                         "Planned Price 1
       PEINH       LIKE MBEW-PEINH,                                "Price Unit
        END  OF TH_SAVE.
DATA : TH_OUTPUT  LIKE TH_SAVE,
       TD_OUTPUT  LIKE  TABLE  OF TH_OUTPUT.

DATA :  BEGIN  OF TH_OUTPUT1,
       Z_BU( 4)     TYPE  C,                                         "B.Unit
       Z_CBU( 10)   TYPE  C,                                         "CBU
       Z_SBU( 10)   TYPE  C,                                         "SBU
       Z_GRO( 10)   TYPE  C,                                         "TDK-Item Group
       MATNR       LIKE MBEW-MATNR,                                "Material
       MAKTX       LIKE MAKT-MAKTX,                                "Material Text
       WERKS       LIKE T001W-WERKS,                               "Plant Code
       NAME1       LIKE T001W-NAME1,                               "Plant Code Text
       ZPLP1( 40)   TYPE  C,                                         "FIELD
        END  OF TH_OUTPUT1,
       TD_OUTPUT1  LIKE  TABLE  OF TH_OUTPUT1.

DATA : TD_SAVE  LIKE  TABLE  OF TH_SAVE.
DATA :  BEGIN  OF TH_RESULT_IMPORT,
       Z_BU( 4)     TYPE  C,                                         "B.Unit
       Z_CBU( 10)   TYPE  C,                                         "CBU
       Z_SBU( 10)   TYPE  C,                                         "SBU
       Z_GRO( 10)   TYPE  C,                                         "TDK-Item Group
       MATNR       LIKE MBEW-MATNR,                                "Material
       MAKTX       LIKE MAKT-MAKTX,                                "Material Text
       WERKS       LIKE T001W-WERKS,                               "Plant Code
       NAME1       LIKE T001W-NAME1,                               "Plant Code Text
       ZPLP1       LIKE MBEW-ZPLP1,                                "Planned Price 1
       ZPLP2       LIKE MBEW-ZPLP2,                                "Planned Price 2
       ZPLP3       LIKE MBEW-ZPLP3,                                "Planned Price 3
*       ZPLD1      LIKE MBEW-ZPLD1,                               "Planned price date 1
*       ZPLD2      LIKE MBEW-ZPLD2,                               "Planned price date 2
*       ZPLD3      LIKE MBEW-ZPLD3,                               "Planned price date 3
       PEINH       LIKE MBEW-PEINH,                                "Price Unit
       BWPRS       LIKE MBEW-BWPRS,                                "Tax Price 1
       BWPS1       LIKE MBEW-BWPS1,                                "Tax Price 2
       VJBWS       LIKE MBEW-VJBWS,                                "Tax Price 3
       BWPRH       LIKE MBEW-BWPRH,                                "Commercial Price 1
       BWPH1       LIKE MBEW-BWPH1,                                "Commercial Price 1
       VJBWH       LIKE MBEW-VJBWH,                                "Commercial Price 1
*       BWPEI      LIKE MBEW-BWPEI,                               "Price Unit
       FVIDK       LIKE MARC-FVIDK,                                "Production Version
       LOSGR       LIKE MARC-LOSGR,                                "Costing Lotsize
       SOBSK       LIKE MARC-SOBSK,                                "Special Procurement Type
        END  OF TH_RESULT_IMPORT.
DATA: TD_RESULT_IMPORT  LIKE  TABLE  OF TH_RESULT_IMPORT.
DATA: TH_RESULT_EXPORT  LIKE TH_RESULT_IMPORT.
DATA: TD_RESULT_EXPORT  LIKE TD_RESULT_IMPORT.
DATA:
      TD_HEADDATA  LIKE  TABLE  OF BAPIMATHEAD,
      TH_HEADDATA  LIKE  LINE  OF TD_HEADDATA,
      TD_VALUATIONDATA   LIKE  TABLE  OF BAPI_MBEW,
      TH_VALUATIONDATA   LIKE  LINE  OF TD_VALUATIONDATA,
      TD_VALUATIONDATAX  LIKE  TABLE  OF BAPI_MBEWX,
      TH_VALUATIONDATAX  LIKE  LINE  OF TD_VALUATIONDATAX.
DATA: TD_PLANTDATA       LIKE  TABLE  OF BAPI_MARC,
      TH_PLANTDATA       LIKE  LINE  OF TD_PLANTDATA,
      TD_PLANTDATAX      LIKE  TABLE  OF BAPI_MARCX,
      TH_PLANTDATAX      LIKE  LINE  OF TD_PLANTDATAX.

DATA: TD_RETURN  LIKE  TABLE  OF BAPIRET2.
DATA: TH_RETURN  LIKE  LINE  OF TD_RETURN.

PARAMETERS : P_BUKRS      LIKE   T001K-BUKRS OBLIGATORY,
             P_YEAR       LIKE   /TDK/CT000201-GJAHR OBLIGATORY,
             P_MONTH      LIKE   /TDK/CT000201-MONAT OBLIGATORY.
SELECTION- SCREEN  BEGIN  OF  BLOCK A1  WITH  FRAME  TITLE  TEXT- 001.

PARAMETERS : RB1_1  RADIOBUTTON  GROUP GRP1 .

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 002.
PARAMETERS : RBS1_1  RADIOBUTTON  GROUP GRP2.                                                    "DEFAULT C_X USER-COMMAND RAD2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 003  FOR  FIELD RBS1_1 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 004.
PARAMETERS : RBS1_2  RADIOBUTTON  GROUP GRP2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 005  FOR  FIELD RBS1_2 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 006.
PARAMETERS : RBS1_3  RADIOBUTTON  GROUP GRP2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 007  FOR  FIELD RBS1_3 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 008.
PARAMETERS : RBS1_4  RADIOBUTTON  GROUP GRP2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 009  FOR  FIELD RBS1_4 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 010.
PARAMETERS : RBS1_5  RADIOBUTTON  GROUP GRP2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 011  FOR  FIELD RBS1_5 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 012.
PARAMETERS : RBS1_6  RADIOBUTTON  GROUP GRP2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 013  FOR  FIELD RBS1_6 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 014.
PARAMETERS : RBS1_7  RADIOBUTTON  GROUP GRP2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 015  FOR  FIELD RBS1_7 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 016.
PARAMETERS : RBS1_8  RADIOBUTTON  GROUP GRP2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 017  FOR  FIELD RBS1_8 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 018.
PARAMETERS : RBS1_9  RADIOBUTTON  GROUP GRP2.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 019  FOR  FIELD RBS1_9 .
SELECTION- SCREEN  END  OF  LINE.

PARAMETERS : RB1_2  RADIOBUTTON  GROUP GRP1.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 020.
PARAMETERS : RBS2_1  RADIOBUTTON  GROUP GRP3.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 021  FOR  FIELD RBS2_1 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 022.
PARAMETERS : RBS2_2  RADIOBUTTON  GROUP GRP3.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 023  FOR  FIELD RBS2_2 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  BEGIN  OF  LINE.
SELECTION- SCREEN  COMMENT  2( 1TEXT- 024.
PARAMETERS : RBS2_3  RADIOBUTTON  GROUP GRP3.
SELECTION- SCREEN  COMMENT  6( 30TEXT- 025  FOR  FIELD RBS2_3 .
SELECTION- SCREEN  END  OF  LINE.

SELECTION- SCREEN  END  OF  BLOCK A1.

"   Block A2
SELECTION- SCREEN  BEGIN  OF  BLOCK A2  WITH  FRAME  TITLE  TEXT- 026.
PARAMETERS : RB2_1  AS  CHECKBOX USER-COMMAND CK.                                                         "DEFAULT C_X USER-COMMAND RAD3

SELECTION- SCREEN  BEGIN  OF  BLOCK A3  WITH  FRAME  TITLE  TEXT- 027.
PARAMETERS :   P_BU       TYPE CHAR4 ,                         " Business unit
               P_CBU      TYPE CHAR10 ,                        "CBU
               P_SBU      TYPE CHAR10 ,                        " SBU
               P_GRO      TYPE CHAR10 .                        "TDK Item Grou
SELECT-OPTIONS : S_PRCTR  FOR MARC-PRCTR  NO INTERVALS.                     "Profit Center
SELECT-OPTIONS : S_WERKS  FOR T001W-WERKS,                     "plant
                 S_MATNR  FOR MBEW-MATNR.                      "materail
SELECTION- SCREEN  END  OF  BLOCK A3.

PARAMETERS : P_DLOAD  LIKE Z_STRING.

PARAMETERS : RB2_2  AS  CHECKBOX USER-COMMAND CK.

PARAMETERS : P_ULOAD  TYPE RLGRAP-FILENAME.

SELECTION- SCREEN  END  OF  BLOCK A2.

AT SELECTION- SCREEN  OUTPUT.

   PERFORM PROCESS_SCREEN.
INITIALIZATION.

   PERFORM S_MATCO_DATA.

AT SELECTION- SCREEN.

   PERFORM CHECK_VALUEDATA.

AT SELECTION- SCREEN  ON  VALUE-REQUEST  FOR P_DLOAD.
   PERFORM HELP_F4_DOWN.

AT SELECTION- SCREEN  ON  VALUE-REQUEST  FOR P_ULOAD.
   PERFORM HELP_F4_UP.

START- OF-SELECTION.

   PERFORM FM_COMMON_DATA.                                                     "get upload and download check data.

   PERFORM FM_PROCESS_UPDATA.                                                  "updata to sap

   PERFORM FM_PROCESS_DOWNLOAD.                                                "download to desktop

END- OF-SELECTION.


*&---------------------------------------------------------------------*
*&      Form  PROCESS_SCREEN
*&---------------------------------------------------------------------*
*      SCREEN  SELECT
*----------------------------------------------------------------------*
FORM PROCESS_SCREEN.

   LOOP   AT  SCREEN.

     IF  SCREEN-NAME =  'P_DLOAD'.
       SCREEN- INPUT =  0.
       MODIFY  SCREEN.
     ENDIF.
     IF  SCREEN-NAME =  'P_ULOAD'.
       SCREEN- INPUT =  0.
       MODIFY  SCREEN.
     ENDIF.

     CASE  'X'.
       WHEN RB2_1.
         IF  SCREEN-NAME =  'P_DLOAD'.
           SCREEN- INPUT =  '1'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'P_ULOAD'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'RB2_2'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
       WHEN RB2_2.
         IF  SCREEN-NAME =  'P_DLOAD'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'P_ULOAD'.
           SCREEN- INPUT =  '1'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'RB2_1'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'P_BU'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'P_CBU'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'P_SBU'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'P_PRCTR'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'P_GRO'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'S_PRCTR-LOW'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'S_WERKS-LOW'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'S_WERKS-HIGH'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'S_MATNR-LOW'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
         IF  SCREEN-NAME =  'S_MATNR-HIGH'.
           SCREEN- INPUT =  '0'.
           MODIFY  SCREEN.
         ENDIF.
     ENDCASE.
   ENDLOOP.

ENDFORM.                     "PROCESS_SCREEN

*&---------------------------------------------------------------------*
*&      Form  S_MATCO_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&gt  p1        text
*  
*----------------------------------------------------------------------*
FORM S_MATCO_DATA .

  OPTLIST-NAME = 'OBJECTKEY1'.
  OPTLIST-OPTIONS-EQ = 'X'.
  OPTLIST-OPTIONS-BT = ''.
  APPEND OPTLIST TO RESTRICT-OPT_LIST_TAB.
  ASS-KIND = 'S'.
  ASS-NAME = 'S_PRCTR'.
  ASS-SG_MAIN = 'I'.
  ASS-SG_ADDY = SPACE.
  ASS-OP_MAIN = 'OBJECTKEY1'.
  APPEND ASS TO RESTRICT-ASS_TAB.

  CLEAR OPTLIST.
  CLEAR ASS.

  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
    EXPORTING
      RESTRICTION            = RESTRICT
    EXCEPTIONS
      TOO_LATE               = 1
      REPEATED               = 2
      SELOPT_WITHOUT_OPTIONS = 3
      SELOPT_WITHOUT_SIGNS   = 4
      INVALID_SIGN           = 5
      EMPTY_OPTION_LIST      = 6
      INVALID_KIND           = 7
      REPEATED_KIND_A        = 8
      OTHERS                 = 9.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " S_MATCO_DATA



*&---------------------------------------------------------------------*
*&      Form  CHECK_VALUEDATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM CHECK_VALUEDATA.


  SELECT BUKRS BWKEY FROM T001K
        INTO CORRESPONDING FIELDS OF TABLE TD_T001K
        WHERE BUKRS = P_BUKRS.

  IF SY-SUBRC <> 0.
    MESSAGE E001(/TDK/CU00010).
  ENDIF.

  IF P_MONTH > '12'.
    MESSAGE E006(/TDK/CU00010).
  ENDIF.

  LOOP AT TD_T001K INTO TH_T001K.
    IF RB2_1 = 'X'.
      IF TH_T001K-BUKRS = P_BUKRS OR TH_T001K-BWKEY IN S_WERKS.
      ELSE.
        MESSAGE E008(/TDK/CU00010).
      ENDIF.
    ENDIF.
  ENDLOOP.

  IF S_MATNR <> ''.
    IF ( P_BU <> '' OR  P_SBU <> '' OR  P_CBU <> '' OR P_GRO <>'').
      MESSAGE E003(/TDK/CU00010) WITH  S_MATNR .
    ENDIF.
  ELSEIF P_GRO <>''.
    IF ( P_BU <> '' OR  P_SBU <> '' OR  P_CBU <> '').
      MESSAGE E003(/TDK/CU00010) WITH  P_GRO .
    ENDIF.
  ELSEIF P_SBU <>''.
    IF (  P_BU <> '' OR  P_CBU <> '' ).
      MESSAGE E003(/TDK/CU00010) WITH P_SBU .
    ENDIF.
  ELSEIF P_CBU <> ''.
    IF   P_BU <> ''.
      MESSAGE E003(/TDK/CU00010) WITH  P_CBU .
    ENDIF.
  ENDIF.

*IF RB2_1 = C_X.
*  IF P_DLOAD IS INITIAL.
*    MESSAGE 'CAN NOT FIND THE FILED Download Path' TYPE 'E'.
*  ENDIF.
*    SET CURSOR FIELD 'P_DLOAD'.
*ENDIF.
*
*IF RB2_2 = C_X.
*  IF P_ULOAD IS INITIAL.
*    MESSAGE 'CAN NOT FIND THE FILED' TYPE 'E'.
*    SET CURSOR FIELD 'P_ULOAD'.
*  ENDIF.
*ENDIF.

ENDFORM.                    "CHECK_VALUEDATA

*&---------------------------------------------------------------------*
*&      Form  HELP_F4_DOWN
*&---------------------------------------------------------------------*
*       F4 HELP
*----------------------------------------------------------------------*
FORM HELP_F4_DOWN.

  DATA:  LW_FULLPATH TYPE STRING,
         LW_FULLNAME TYPE STRING,
         LW_F_E      TYPE ABAP_ENCOD,
         LW_PATH     TYPE STRING,
         LW_ACTION   TYPE I,
         LTH_FILE    TYPE FILE_TABLE,
         LTD_FILE    TYPE FILETABLE.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
      INITIAL_DIRECTORY = 'C:\'
    CHANGING
      FULLPATH          = LW_FULLPATH
      FILENAME          = LW_FULLNAME
      PATH              = LW_PATH
      USER_ACTION       = LW_ACTION.

  IF SY-SUBRC <> 0.
    MESSAGE E003(/TDK/CU00010).
  ENDIF.
  IF LW_ACTION = 0.
    P_DLOAD = LW_FULLNAME.
  ENDIF.

ENDFORM.                    "HELP_F4_DOWN

*&---------------------------------------------------------------------*
*&      Form  HELP_F4_UP
*&---------------------------------------------------------------------*
*       F4_FILENAME
*----------------------------------------------------------------------*
FORM HELP_F4_UP.

  CLEAR P_ULOAD.
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      FILE_NAME = P_ULOAD.


ENDFORM.                                                    "HELP_F4_UP




*&---------------------------------------------------------------------*
*&      Form  FM_COMMON_DATA
*&---------------------------------------------------------------------*
*      get upload and download check data.
*----------------------------------------------------------------------*
FORM FM_COMMON_DATA.

  PERFORM FM_GET_DATA.                                                         "get data process

ENDFORM.                    "FM_COMMON_DATA

*&---------------------------------------------------------------------*
*&      Form  FM_PROCESS_DOWNLOAD
*&---------------------------------------------------------------------*
*       Download to desktop
*----------------------------------------------------------------------*
FORM FM_PROCESS_DOWNLOAD.

  PERFORM FM_DOWNLOAD_DATA.

ENDFORM.                    "FM_PROCESS_DOWNLOAD

*&---------------------------------------------------------------------*
*&      Form  FM_PROCESS_UPDATA
*&---------------------------------------------------------------------*
*      upload data
*----------------------------------------------------------------------*
FORM FM_PROCESS_UPDATA.

  PERFORM UP_LOAD_DATA.                                                        "upload data.

  PERFORM FM_ARRANGE_DATA.                                                     "arrange data

  PERFORM FM_CHANGE_DATA.                                                       "change data.

ENDFORM.                    "FM_PROCESS_UPDATA
*&---------------------------------------------------------------------*
*&      Form  FM_GET_DATA
*&---------------------------------------------------------------------*
*        PERFORM FM_GET_DATA.
*----------------------------------------------------------------------*
FORM FM_GET_DATA.

  LOOP AT TD_T001K INTO TH_T001K.
    SELECT SINGLE KOKRS FROM TKA02                                           " get contorlling area
             INTO LTH_KOKRS
             WHERE BUKRS = TH_T001K-BUKRS.
    IF SY-SUBRC <> 0.
      MESSAGE E005(/TDK/CU00010).
    ENDIF.

    LTH_MONTH = P_MONTH.
    LTH_YEAR  = P_YEAR.

    CALL FUNCTION 'BAPI_COAREA_GETPERIODLIMITS'                             "Get First day of fiscal year and period
      EXPORTING
        CONTROLLINGAREAID         = LTH_KOKRS
        FISCAL_PERIOD             = LTH_MONTH
        FISCAL_YEAR               = LTH_YEAR
     IMPORTING
       LAST_DAY_OF_PERIOD         = LTH_PERIOD.
    IF SY-SUBRC <> 0.
      MESSAGE E006(/TDK/CU00010).
    ENDIF.

    SELECT MARC~MATNR                                                                   "materail
           MARC~WERKS                                                                   "plant
           MARC~SOBSK                                                                   " SpecProcType
           MARC~LOSGR                                                                   "Cstg Lot Size
           MARC~FVIDK                                                                   "Prod. Version
           MAKT~MAKTX
           T001W~NAME1

           FROM MARC INNER JOIN MAKT
      ON  MARC~MATNR = MAKT~MATNR
      INNER JOIN T001W
      ON  MARC~WERKS = T001W~WERKS
      APPENDING CORRESPONDING FIELDS OF TABLE TD_RESULT_EXPORT
      WHERE MARC~WERKS   = TH_T001K-BWKEY
        AND MARC~LVORM    = ''
        AND MARC~MATNR   IN S_MATNR
        AND MARC~PRCTR   IN S_PRCTR
        AND MAKT~SPRAS   = SY-LANGU.
  ENDLOOP.
  IF TD_RESULT_EXPORT IS INITIAL.
    MESSAGE E010(/TDK/CU00010).
  ENDIF.
  LOOP AT TD_RESULT_EXPORT INTO TH_RESULT_EXPORT.

    SELECT MATNR                                                                      "materail
           BWKEY                                                                      "plant
           PEINH                                                                      "Price Unit
           ZPLP1                                                                      "Planned Price 1
*           ZPLD1                                                                      "Planned Price Date 1
           ZPLP2                                                                      "Planned Price 2
*           ZPLD2                                                                      "Planned Price Date 2
           ZPLP3                                                                      "Planned Price 3
*           ZPLD3                                                                      "Planned Price Date 3
           BWPRS                                                                      "Tax Price 1
           BWPS1                                                                      "Tax Price 2
           VJBWS                                                                      "Tax Price 3
           BWPRH                                                                      "Commercial Price 1
           BWPH1                                                                      "Commercial Price 2
           VJBWH                                                                      "Commercial Price 3
           FROM MBEW
           APPENDING CORRESPONDING FIELDS OF TABLE TD_MBEW
           WHERE MBEW~MATNR            =           TH_RESULT_EXPORT-MATNR
             AND MBEW~BWKEY          =           TH_RESULT_EXPORT-WERKS.

    READ TABLE TD_MBEW INTO TH_MBEW  WITH KEY MATNR = TH_RESULT_EXPORT-MATNR
                                              BWKEY = TH_RESULT_EXPORT-WERKS.
    IF SY-SUBRC = 0.

      TH_RESULT_EXPORT-MATNR = TH_MBEW-MATNR.
      TH_RESULT_EXPORT-WERKS = TH_MBEW-BWKEY.
      TH_RESULT_EXPORT-PEINH = TH_MBEW-PEINH.
      TH_RESULT_EXPORT-ZPLP1 = TH_MBEW-ZPLP1.
*      TH_RESULT_EXPORT-ZPLD1 = TH_MBEW-ZPLD1.
      TH_RESULT_EXPORT-ZPLP2 = TH_MBEW-ZPLP2.
*      TH_RESULT_EXPORT-ZPLD2 = TH_MBEW-ZPLD2.
      TH_RESULT_EXPORT-ZPLP3 = TH_MBEW-ZPLP3.
*      TH_RESULT_EXPORT-ZPLD3 = TH_MBEW-ZPLD3.
      TH_RESULT_EXPORT-BWPRS = TH_MBEW-BWPRS.
      TH_RESULT_EXPORT-BWPS1 = TH_MBEW-BWPS1.
      TH_RESULT_EXPORT-VJBWS = TH_MBEW-VJBWS.
      TH_RESULT_EXPORT-BWPRH = TH_MBEW-BWPRH.
      TH_RESULT_EXPORT-BWPH1 = TH_MBEW-BWPH1.
      TH_RESULT_EXPORT-VJBWH = TH_MBEW-VJBWH.
      MODIFY TD_RESULT_EXPORT FROM TH_RESULT_EXPORT .
      CLEAR TH_RESULT_EXPORT.
    ENDIF.

  ENDLOOP.
  IF TD_RESULT_EXPORT IS INITIAL.
    MESSAGE E013(/TDK/CU00010).
  ENDIF.

  REFRESH: LTD_MATNR,
           TD_MAT_HIER.
  CLEAR:   TH_MAT_HIER,
           LST_MATNR.
  LOOP AT TD_RESULT_EXPORT INTO TH_RESULT_EXPORT.
    LST_MATNR-MATNR = TH_RESULT_EXPORT-MATNR.
    APPEND LST_MATNR TO LTD_MATNR.
  ENDLOOP.
  CLEAR LST_MATNR.
  SORT LTD_MATNR BY MATNR ASCENDING.
  DELETE ADJACENT DUPLICATES FROM LTD_MATNR COMPARING MATNR.

  IF RB2_1 = 'X'.
    IF LTD_MATNR IS NOT INITIAL.
      LOOP AT TD_T001K INTO TH_T001K.
        CALL FUNCTION '/TDK/C_MAT_ORG'
          EXPORTING
            I_PATTERN          = '1'
            I_BUKRS            = TH_T001K-BUKRS
            IT_MATNR           = LTD_MATNR
            I_DATE             = LTH_PERIOD
            I_SETNAME          = '0000T_T'
          IMPORTING
            ET_MAT_HIER        = TD_MAT_HIER
          EXCEPTIONS
            INVALID_MATERIAL   = 1
            INVALID_ITEM_GROUP = 2
            INVALID_SETNAME    = 3
            INVALID_BU         = 4
            INVALID_SEGMENT    = 5
            INVALID_PARAMETER  = 6
            INVALID_COMPANY    = 7
            OTHERS             = 8.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                     WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.

  IF RB2_1 = 'X'.
    LOOP AT TD_MAT_HIER INTO TH_MAT_HIER.
      IF P_GRO IS NOT INITIAL AND TH_MAT_HIER-/EPCOS/TDKKL <> P_GRO.
        DELETE TD_RESULT_EXPORT WHERE  MATNR = TH_MAT_HIER-MATNR.
        CONTINUE.
      ENDIF.

      IF P_BU IS NOT INITIAL AND TH_MAT_HIER-ORG_LV3 <> P_BU.
        DELETE TD_RESULT_EXPORT WHERE MATNR = TH_MAT_HIER-MATNR.
        CONTINUE.
      ENDIF.

      IF P_CBU IS NOT INITIAL AND TH_MAT_HIER-ORG_LV4 <> P_CBU.
        DELETE TD_RESULT_EXPORT WHERE MATNR = TH_MAT_HIER-MATNR.
        CONTINUE.
      ENDIF.

      IF P_SBU IS NOT INITIAL AND TH_MAT_HIER-SEGMENT <> P_SBU.
        DELETE TD_RESULT_EXPORT WHERE MATNR = TH_MAT_HIER-MATNR.
        CONTINUE.
      ENDIF.
     ENDLOOP.
     LOOP AT TD_MAT_HIER INTO TH_MAT_HIER.
      TH_RESULT_EXPORT-Z_GRO  = TH_MAT_HIER-/EPCOS/TDKKL.  " TDK GROUP
      TH_RESULT_EXPORT-Z_BU   = TH_MAT_HIER-ORG_LV3.  " BU
      TH_RESULT_EXPORT-Z_CBU  = TH_MAT_HIER-ORG_LV4.  " CBU
      TH_RESULT_EXPORT-Z_SBU  = TH_MAT_HIER-SEGMENT.  " SBU

      MODIFY TD_RESULT_EXPORT FROM TH_RESULT_EXPORT  TRANSPORTING Z_GRO
                                                                  Z_BU
                                                                  Z_CBU
                                                                  Z_SBU  WHERE MATNR = TH_MAT_HIER-MATNR.


      CLEAR: TH_RESULT_EXPORT,TH_MAT_HIER.
    ENDLOOP.
  ENDIF.

ENDFORM.                    "FM_GET_DATA


*&---------------------------------------------------------------------*
*&      Form  FM_DOWNLOAD_DATA
*&---------------------------------------------------------------------*
*       DOWNLOAD DATA RESULT
*----------------------------------------------------------------------*
FORM FM_DOWNLOAD_DATA.

  IF RB2_1 = 'X'.
    IF RB1_1 = 'X'.
      LOOP AT TD_RESULT_EXPORT INTO TH_RESULT_EXPORT.
        TH_OUTPUT-Z_BU     =  TH_RESULT_EXPORT-Z_BU.
        TH_OUTPUT-Z_CBU    =  TH_RESULT_EXPORT-Z_CBU.
        TH_OUTPUT-Z_SBU    =  TH_RESULT_EXPORT-Z_SBU.
        TH_OUTPUT-Z_GRO    =  TH_RESULT_EXPORT-Z_GRO.
        TH_OUTPUT-MATNR    =  TH_RESULT_EXPORT-MATNR.
        TH_OUTPUT-MAKTX    =  TH_RESULT_EXPORT-MAKTX.
        TH_OUTPUT-WERKS    =  TH_RESULT_EXPORT-WERKS.
        TH_OUTPUT-NAME1    =  TH_RESULT_EXPORT-NAME1.
        IF RBS1_1 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-ZPLP1.
        ENDIF.
        IF RBS1_2 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-ZPLP2.
        ENDIF.
        IF RBS1_3 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-ZPLP3.
        ENDIF.
        IF RBS1_4 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-BWPRS.
        ENDIF.
        IF RBS1_5 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-BWPS1.
        ENDIF.
        IF RBS1_6 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-VJBWS.
        ENDIF.
        IF RBS1_7 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-BWPRH.
        ENDIF.
        IF RBS1_8 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-BWPH1.
        ENDIF.
        IF RBS1_9 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-VJBWH.
        ENDIF.
        TH_OUTPUT-PEINH    =  TH_RESULT_EXPORT-PEINH.
        APPEND TH_OUTPUT TO TD_OUTPUT.
        CLEAR TH_OUTPUT-Z_BU.
        CLEAR TH_OUTPUT-Z_CBU.
        CLEAR TH_OUTPUT-Z_SBU.
        CLEAR TH_OUTPUT-Z_GRO.
        CLEAR TH_OUTPUT-MATNR.
        CLEAR TH_OUTPUT-MAKTX.
        CLEAR TH_OUTPUT-WERKS.
        CLEAR TH_OUTPUT-NAME1.
        CLEAR TH_OUTPUT-ZPLP1.
        CLEAR TH_OUTPUT-PEINH.
        CLEAR TH_OUTPUT.
      ENDLOOP.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
        EXPORTING
          FILENAME                = P_DLOAD
          FILETYPE                = 'ASC'
          WRITE_FIELD_SEPARATOR   = 'X'
        CHANGING
          DATA_TAB                = TD_OUTPUT
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          NOT_SUPPORTED_BY_GUI    = 22
          ERROR_NO_GUI            = 23
          OTHERS                  = 24.
      IF SY-SUBRC = 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDIF.
    IF RB1_2 = 'X'.
      LOOP AT TD_RESULT_EXPORT INTO TH_RESULT_EXPORT.
        TH_OUTPUT1-Z_BU     =  TH_RESULT_EXPORT-Z_BU.
        TH_OUTPUT1-Z_CBU    =  TH_RESULT_EXPORT-Z_CBU.
        TH_OUTPUT1-Z_SBU    =  TH_RESULT_EXPORT-Z_SBU.
        TH_OUTPUT1-Z_GRO    =  TH_RESULT_EXPORT-Z_GRO.
        TH_OUTPUT1-MATNR    =  TH_RESULT_EXPORT-MATNR.
        TH_OUTPUT1-MAKTX    =  TH_RESULT_EXPORT-MAKTX.
        TH_OUTPUT1-WERKS    =  TH_RESULT_EXPORT-WERKS.
        TH_OUTPUT1-NAME1    =  TH_RESULT_EXPORT-NAME1.
        IF RBS2_1 = 'X'.
          TH_OUTPUT1-ZPLP1    =  TH_RESULT_EXPORT-FVIDK.
        ENDIF.
        IF RBS2_2 = 'X'.
          TH_OUTPUT1-ZPLP1    =  TH_RESULT_EXPORT-SOBSK.
        ENDIF.
        IF RBS2_3 = 'X'.
          TH_OUTPUT1-ZPLP1    =  TH_RESULT_EXPORT-LOSGR.
        ENDIF.
        APPEND TH_OUTPUT1 TO TD_OUTPUT1.
        CLEAR TH_OUTPUT1-Z_BU.
        CLEAR TH_OUTPUT1-Z_CBU.
        CLEAR TH_OUTPUT1-Z_SBU.
        CLEAR TH_OUTPUT1-Z_GRO.
        CLEAR TH_OUTPUT1-MATNR.
        CLEAR TH_OUTPUT1-MAKTX.
        CLEAR TH_OUTPUT1-WERKS.
        CLEAR TH_OUTPUT1-NAME1.
        CLEAR TH_OUTPUT1-ZPLP1.
        CLEAR TH_OUTPUT1.
      ENDLOOP.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
        EXPORTING
          FILENAME                = P_DLOAD
          FILETYPE                = 'ASC'
          WRITE_FIELD_SEPARATOR   = 'X'
        CHANGING
          DATA_TAB                = TD_OUTPUT1
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          NOT_SUPPORTED_BY_GUI    = 22
          ERROR_NO_GUI            = 23
          OTHERS                  = 24.
      IF SY-SUBRC = 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDIF.
  ENDIF.
ENDFORM.                    "FM_DOWNLOAD_DATA

*&---------------------------------------------------------------------*
*&      Form  FM_PROCESS_UPDATA
*&---------------------------------------------------------------------*
*       updata to sap  PREPARED DATA
*----------------------------------------------------------------------*
FORM UP_LOAD_DATA.

  IF RB2_2 = 'X'.

    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
      EXPORTING
        I_TAB_RAW_DATA       = IT_RAW
        I_FILENAME           = P_ULOAD
      TABLES
        I_TAB_CONVERTED_DATA = TD_SAVE
      EXCEPTIONS
        CONVERSION_FAILED    = 1
        OTHERS               = 2.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    LOOP AT TD_SAVE INTO TH_SAVE.
      IF TH_SAVE-WERKS NOT IN S_WERKS.
        MESSAGE E009(/TDK/CU00010).
      ENDIF.
    ENDLOOP.

  ENDIF.



ENDFORM.                    "FM_PROCESS_UPDATA


*&---------------------------------------------------------------------*
*&      Form  FM_ARRANGE_DATA
*&---------------------------------------------------------------------*
*       check updata data
*----------------------------------------------------------------------*
FORM FM_ARRANGE_DATA.
  DATA : LTH_MATNR LIKE MKAL-MATNR.
  IF RB2_2 = 'X'.
    IF RB1_1 = 'X'.
      IF RBS1_1 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-ZPLP1 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-ZPLP1       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_2 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-ZPLP2 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-ZPLP2       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_3 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-ZPLP3 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-ZPLP3       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_4 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-BWPRS.
            IF TH_RESULT_EXPORT-BWPRS = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-BWPRS       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_5 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-BWPS1 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-BWPS1       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_6 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-VJBWS.
            IF TH_RESULT_EXPORT-VJBWS = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-VJBWS       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_7 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-BWPRH.
            IF TH_RESULT_EXPORT-BWPRH = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-BWPRH       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_8 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-BWPH1.
            IF TH_RESULT_EXPORT-BWPH1 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-BWPH1       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_9 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-VJBWH.
            IF TH_RESULT_EXPORT-VJBWH = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-VJBWH       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDIF.

    IF RB1_2 = 'X'.
      IF RBS2_1 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E019(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-FVIDK = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC = 0.
                MESSAGE E020(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU      = TH_SAVE-Z_BU .
              TH_RESULT_IMPORT-Z_CBU     = TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU     = TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO     = TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR     = TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX     = TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS     = TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1     = TH_SAVE-NAME1.
              TH_RESULT_IMPORT-FVIDK     = TH_SAVE-ZPLP1.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC = 0.
                MESSAGE E021(/TDK/CU00010).
              ENDIF.
            ENDIF.
          ENDIF.
          SELECT SINGLE MATNR FROM MKAL
                   INTO (LTH_MATNR)
                  WHERE MATNR = TH_SAVE-MATNR
                    AND WERKS = TH_SAVE-WERKS
                    AND VERID = TH_SAVE-ZPLP1.
          IF SY-SUBRC <> 0.
            MESSAGE E022(/TDK/CU00010).
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS2_2 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E019(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-LOSGR = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC = 0.
                MESSAGE E020(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU      = TH_SAVE-Z_BU .
              TH_RESULT_IMPORT-Z_CBU     = TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU     = TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO     = TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR     = TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX     = TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS     = TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1     = TH_SAVE-NAME1.
              TH_RESULT_IMPORT-LOSGR     = TH_SAVE-ZPLP1.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC = 0.
                MESSAGE E021(/TDK/CU00010).
              ENDIF.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS2_3 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E019(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-SOBSK = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC = 0.
                MESSAGE E020(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU      = TH_SAVE-Z_BU .
              TH_RESULT_IMPORT-Z_CBU     = TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU     = TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO     = TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR     = TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX     = TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS     = TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1     = TH_SAVE-NAME1.
              TH_RESULT_IMPORT-SOBSK     = TH_SAVE-ZPLP1.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC = 0.
                MESSAGE E021(/TDK/CU00010).
              ENDIF.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDIF.
  ENDIF.



ENDFORM.                    "FM_ARRANGE_DATA


*&---------------------------------------------------------------------*
*&      Form  FM_CHANGE_DATA
*&---------------------------------------------------------------------*
*       change data.
*----------------------------------------------------------------------*
FORM FM_CHANGE_DATA.
  IF RB2_2 = 'X'.
    IF RB1_1 = 'X'.
      LOOP AT TD_RESULT_IMPORT INTO TH_RESULT_IMPORT.
        TH_HEADDATA-MATERIAL = TH_RESULT_IMPORT-MATNR.

        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = TH_HEADDATA-MATERIAL
          IMPORTING
            OUTPUT = TH_HEADDATA-MATERIAL.


        TH_VALUATIONDATA-VAL_AREA      =  TH_RESULT_IMPORT-WERKS.
        TH_VALUATIONDATA-PLNDPRICE1    =  TH_RESULT_IMPORT-ZPLP1.
        TH_VALUATIONDATA-PLNDPRICE2    =  TH_RESULT_IMPORT-ZPLP2.
        TH_VALUATIONDATA-PLNDPRICE3    =  TH_RESULT_IMPORT-ZPLP3.
        IF RBS1_1 = 'X'.
          TH_VALUATIONDATA-PLNDPRDATE1   =  LTH_PERIOD.
        ENDIF.
        IF RBS1_2 = 'X'.
          TH_VALUATIONDATA-PLNDPRDATE2   =  LTH_PERIOD.
        ENDIF.
        IF RBS1_3 = 'X'.
          TH_VALUATIONDATA-PLNDPRDATE3   =  LTH_PERIOD.
        ENDIF.
        TH_VALUATIONDATA-TAXPRICE_1    =  TH_RESULT_IMPORT-BWPRS.
        TH_VALUATIONDATA-TAXPRICE_2    =  TH_RESULT_IMPORT-BWPS1.
        TH_VALUATIONDATA-TAXPRICE_3    =  TH_RESULT_IMPORT-VJBWS.
        TH_VALUATIONDATA-COMMPRICE1    =  TH_RESULT_IMPORT-BWPRH.
        TH_VALUATIONDATA-COMMPRICE2    =  TH_RESULT_IMPORT-BWPH1.
        TH_VALUATIONDATA-COMMPRICE3    =  TH_RESULT_IMPORT-VJBWH.
        TH_VALUATIONDATA-PRICE_UNIT    =  TH_RESULT_IMPORT-PEINH.

        TH_VALUATIONDATAX-VAL_AREA = TH_RESULT_IMPORT-WERKS.
        TH_VALUATIONDATAX-PLNDPRICE1   = 'X'.
        TH_VALUATIONDATAX-PLNDPRICE2   = 'X'.
        TH_VALUATIONDATAX-PLNDPRICE3   = 'X'.
        TH_VALUATIONDATAX-PLNDPRDATE1  = 'X'.
        TH_VALUATIONDATAX-PLNDPRDATE2  = 'X'.
        TH_VALUATIONDATAX-PLNDPRDATE3  = 'X'.
        TH_VALUATIONDATAX-TAXPRICE_1   = 'X'.
        TH_VALUATIONDATAX-TAXPRICE_2   = 'X'.
        TH_VALUATIONDATAX-TAXPRICE_3   = 'X'.
        TH_VALUATIONDATAX-COMMPRICE1   = 'X'.
        TH_VALUATIONDATAX-COMMPRICE2   = 'X'.
        TH_VALUATIONDATAX-COMMPRICE3   = 'X'.
        TH_VALUATIONDATAX-PRICE_UNIT   = 'X'.

        CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
          EXPORTING
            HEADDATA       = TH_HEADDATA
            VALUATIONDATA  = TH_VALUATIONDATA
            VALUATIONDATAX = TH_VALUATIONDATAX
          IMPORTING
            RETURN         = TH_RETURN.
        IF SY-SUBRC = 0.
          WRITE : TH_RETURN-TYPE,TH_RETURN-ID,TH_RETURN-NUMBER,TH_RETURN-MESSAGE,TH_RETURN-LOG_NO,TH_RETURN-LOG_MSG_NO,TH_RETURN-MESSAGE_V1,
                  TH_RETURN-MESSAGE_V2,TH_RETURN-MESSAGE_V3,TH_RETURN-MESSAGE_V4.
        ENDIF.
      ENDLOOP.
    ENDIF.

    IF RB1_2 = 'X'.
      LOOP AT TD_RESULT_IMPORT INTO TH_RESULT_IMPORT.
        TH_HEADDATA-MATERIAL = TH_RESULT_IMPORT-MATNR.
        APPEND TH_HEADDATA TO TD_HEADDATA.
        CLEAR TH_HEADDATA.
        TH_PLANTDATA-PLANT         =  TH_RESULT_IMPORT-WERKS.
        TH_PLANTDATA-PRODVERSCS    =  TH_RESULT_IMPORT-FVIDK.
        TH_PLANTDATA-LOT_SIZE      =  TH_RESULT_IMPORT-LOSGR.
        TH_PLANTDATA-SPECPROCTY    =  TH_RESULT_IMPORT-SOBSK.
        APPEND TH_PLANTDATA TO TD_PLANTDATA.
        CLEAR TH_PLANTDATA.
        TH_PLANTDATAX-PLANT         =  TH_RESULT_IMPORT-WERKS.
        TH_PLANTDATAX-PRODVERSCS    =  'X'.
        TH_PLANTDATAX-LOT_SIZE      =  'X'.
        TH_PLANTDATAX-SPECPROCTY    =  'X'.
        APPEND TH_PLANTDATAX TO TD_PLANTDATAX.
        CLEAR TH_PLANTDATAX.
        CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
          EXPORTING
            HEADDATA   = TH_HEADDATA
            PLANTDATA  = TH_PLANTDATA
            PLANTDATAX = TH_PLANTDATAX
          IMPORTING
            RETURN     = TH_RETURN.
        IF SY-SUBRC = 0.
          WRITE : TH_RETURN-TYPE,TH_RETURN-ID,TH_RETURN-NUMBER,TH_RETURN-MESSAGE,TH_RETURN-LOG_NO,TH_RETURN-LOG_MSG_NO,TH_RETURN-MESSAGE_V1,
                  TH_RETURN-MESSAGE_V2,TH_RETURN-MESSAGE_V3,TH_RETURN-MESSAGE_V4.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.

ENDFORM.                    "FM_CHANGE_DATA

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13973563/viewspace-752273/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13973563/viewspace-752273/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值