Chinaunix首页 | 论坛 | 博客
  • 博客访问: 197083
  • 博文数量: 98
  • 博客积分: 1435
  • 博客等级: 上尉
  • 技术积分: 1955
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 15:01
文章分类

全部博文(98)

文章存档

2012年(1)

2011年(1)

2009年(95)

2008年(1)

我的朋友

分类: IT职场

2009-06-02 11:28:30

 
*&---------------------------------------------------------------------*
*& 更改物料的MRP区域数据
*&---------------------------------------------------------------------*
REPORT  ZMM025 NO STANDARD PAGE HEADING .

DATA: S_MDMA      LIKE MDMA,
      S_DPOP      LIKE DPOP,
      S_SELFIELDS LIKE SDIBE_MASSFIELDS,
      RETURN      LIKE BAPIRETURN1 .
DATA:HAD .

DATABEGIN OF ITAB OCCURS 0 ,
        MATNR LIKE MARA-MATNR ,
        WERKS LIKE MARC-WERKS ,
        BERID LIKE MDMA-BERID ,
        DISPO LIKE MDMA-DISPO ,
        LGPRO LIKE MDMA-LGPRO ,
        LGFSB LIKE MDMA-LGFSB ,
      END OF ITAB.
DATA: FILENAME TYPE STRING ,
      LF_RC    TYPE C .

PARAMETERS:OPENFILE LIKE IBIPPARMS-PATH OBLIGATORY DEFAULT 'c:\ZMM025.txt' .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR OPENFILE .
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      PROGRAM_NAME  = SYST-CPROG
      DYNPRO_NUMBER = SYST-DYNNR
      FIELD_NAME    = ' '
    IMPORTING
      FILE_NAME     = OPENFILE.

AT SELECTION-SCREEN .
  FILENAME = OPENFILE.
  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST
    EXPORTING
      FILE                 = FILENAME
    RECEIVING
      RESULT               = LF_RC
    EXCEPTIONS
      CNTL_ERROR           = 1
      ERROR_NO_GUI         = 2
      WRONG_PARAMETER      = 3
      NOT_SUPPORTED_BY_GUI = 4
      OTHERS               = 5.
  IF LF_RC <> 'X'.
    MESSAGE E000(OO) WITH '文件不存在'.
  ENDIF.

START-OF-SELECTION.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      FILENAME = FILENAME
      FILETYPE = 'DAT'
    TABLES
      DATA_TAB = ITAB.

*  itab-matnr = '001100000000000385'.
*  itab-werks = '1010'.
*  itab-berid = '1010CG'.
*  itab-dispo = '102'.
*  itab-lgpro = '1040'.
*  itab-lgfsb = '1040'.
*  APPEND itab.

  LOOP AT ITAB WHERE  MATNR = '' OR WERKS = '' OR BERID = ''.
    IF HAD <> 'X'.
      WRITE : '下列物料信息不全:'.
      HAD = 'X'.
    ENDIF.
    WRITE : / ITAB-MATNR ,ITAB-WERKS ,ITAB-BERID .
  ENDLOOP.
  ULINE.

  LOOP AT ITAB WHERE MATNR <> '' AND WERKS <> '' AND BERID <> ''.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  = ITAB-MATNR
      IMPORTING
        OUTPUT = ITAB-MATNR.
    CLEAR S_MDMA.
    MOVE-CORRESPONDING ITAB TO S_MDMA .
    CLEAR S_SELFIELDS.
    IF ITAB-DISPO <> ''.
      S_SELFIELDS-XDISPO = 'X'.
    ENDIF.
    IF ITAB-LGFSB <> ''.
      S_SELFIELDS-XLGFSB = 'X'.
    ENDIF.
    IF ITAB-LGPRO <> ''.
      S_SELFIELDS-XLGPRO = 'X'.
    ENDIF.
    CALL FUNCTION 'MD_MRP_LEVEL_CHANGE_DATA'
      EXPORTING
        I_MATNR        = ITAB-MATNR
        I_WERK         = ITAB-WERKS
        I_MRP_AREA     = ITAB-BERID
        I_BERTY        = '02'
        I_SELFIELDS    = S_SELFIELDS
        I_MDMA         = S_MDMA
        I_DPOP         = S_DPOP
      IMPORTING
        E_ERROR_RETURN = RETURN.
    IF NOT RETURN IS INITIAL .
      WRITE : / ITAB-MATNR ,ITAB-WERKS ,ITAB-BERID .
      PERFORM WRITE_WA USING RETURN 'XXXX' '' '' .
    ELSE.
      WRITE : / ITAB-MATNR,ITAB-WERKS ,ITAB-BERID ,'成功更改!'.
    ENDIF.
    CLEAR RETURN.
  ENDLOOP.

*---------------------------------------------------------------------*
*       FORM write_wa                                                 *
*---------------------------------------------------------------------*
FORM WRITE_WA USING WA FIELDMASK NEWLINE ALLLEN.
  DATA: STR TYPE STRING ,
        STR_IDX TYPE STRING ,
        F_INDEX TYPE I ,
        F_LEN TYPE I .
  FIELD-SYMBOLS:  .
  F_LEN = STRLEN( FIELDMASK ).
  IF NEWLINE = 'X'WRITE  / ''.ENDIF.
*  POSITION 1 .
  DO .
    ASSIGN COMPONENT SY-INDEX OF STRUCTURE WA TO .
    IF SY-SUBRC <> 0 OR SY-INDEX > F_LEN.
      EXIT.
    ELSE.
      STR_IDX = SY-INDEX .
      CONDENSE STR_IDX.
      F_INDEX = SY-INDEX - 1.
      IF FIELDMASK+F_INDEX(1) = 'X'.
        IF ALLLEN = ''.
          STR =  .
          WRITE STR.
        ELSE.
          WRITE .
        ENDIF.
      ENDIF.
    ENDIF.
  ENDDO.
ENDFORM.                    "write_wa
阅读(948) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~