阿宝
找工作中,求帮助,谢谢!!! QQ:810487238

SELECT VBAK~VBELN VBAK~KUNNR VBAK~VKORG VBAK~VTWEG VBAK~SPART INTO (INTAB-VBELN , INTAB-KUNNR , INTAB-VKORG , INTAB-VTWEG , INTAB-SPART)  FROM VBAK
  WHERE VBELN IN P_VBELN
  AND KUNNR IN P_KUNNR
  AND VKORG IN P_VKORG.
    APPEND INTAB.
    CLEAR INTAB .
  ENDSELECT.

  LOOP AT INTAB .
    MARKI = 1 .
    INTAB1 = INTAB.
*訂單表頭內文-0002正嘜内文
    VBELNTEXT = INTAB-VBELN .
    CALL FUNCTION 'READ_TEXT'
  EXPORTING
*           CLIENT                  = SY-MANDT
     ID                      = '0002'
     LANGUAGE                = 'M'
     NAME                    =  VBELNTEXT
     OBJECT                  = 'VBBK'
*         ARCHIVE_HANDLE          = 0
IMPORTING
     HEADER                  = HTEXT
TABLES
     LINES                   = LTEXT
EXCEPTIONS
     ID                      = 1
     LANGUAGE                = 2
     NAME                    = 3
     NOT_FOUND               = 4
     OBJECT                  = 5
     REFERENCE_CHECK         = 6
     WRONG_ACCESS_TO_ARCHIVE = 7
     OTHERS                  = 8.

    IF LTEXT IS INITIAL. "--------------------------------------zhujiang20110412
      CONCATENATE INTAB-KUNNR INTAB-VKORG INTAB-VTWEG INTAB-SPART INTO NAME.
      CALL FUNCTION 'READ_TEXT'
    EXPORTING
*           CLIENT                  = SY-MANDT
       ID                      = '0002'
       LANGUAGE                = 'M'
       NAME                    =  NAME
       OBJECT                  = 'KNVV'
*         ARCHIVE_HANDLE          = 0
  IMPORTING
       HEADER                  = HTEXT
  TABLES
       LINES                   = LTEXT
  EXCEPTIONS
       ID                      = 1
       LANGUAGE                = 2
       NAME                    = 3
       NOT_FOUND               = 4
       OBJECT                  = 5
       REFERENCE_CHECK         = 6
       WRONG_ACCESS_TO_ARCHIVE = 7
       OTHERS                  = 8.

    ENDIF."-------------------------------------------

    LOOP AT LTEXT.
      IF LTEXT-TDLINE NE ''.
        CONDENSE LTEXT-TDLINE.
        IF LTEXT-TDLINE <> '(IN DIA.)' .
          CASE MARKI .
            WHEN 1 .
              INTAB1-MARK1 = LTEXT-TDLINE.
            WHEN 2.
              INTAB1-MARK3 = LTEXT-TDLINE.
            WHEN 3 .
              INTAB1-MARK4 = LTEXT-TDLINE.
            WHEN 4 .
              INTAB1-MARK5 = LTEXT-TDLINE.
            WHEN 5 .
              INTAB1-MARK6 = LTEXT-TDLINE.
            WHEN 6 .
              INTAB1-MARK7 = LTEXT-TDLINE.
          ENDCASE .
          MARKI = MARKI + 1 .
        ELSE .

        ENDIF .
      ENDIF.

    ENDLOOP.
    CLEAR HTEXT .
*    CLEAR DTEXT .
    CLEAR LTEXT .
*    REFRESH DTEXT .
    REFRESH LTEXT .

*沒維護英文内文
    IF INTAB1-MARK1 = '' .
      MARKI = 1 .
      VBELNTEXT = INTAB-VBELN .
      CALL FUNCTION 'READ_TEXT'
    EXPORTING
*           CLIENT                  = SY-MANDT
       ID                      = '0002'
       LANGUAGE                = 'E'
       NAME                    =  VBELNTEXT
       OBJECT                  = 'VBBK'
*         ARCHIVE_HANDLE          = 0
  IMPORTING
       HEADER                  = HTEXT
  TABLES
       LINES                   = LTEXT
  EXCEPTIONS
       ID                      = 1
       LANGUAGE                = 2
       NAME                    = 3
       NOT_FOUND               = 4
       OBJECT                  = 5
       REFERENCE_CHECK         = 6
       WRONG_ACCESS_TO_ARCHIVE = 7
       OTHERS                  = 8.
      IF LTEXT[] IS INITIAL. "---------------------------------------zhujiang20110412
        CONCATENATE INTAB-KUNNR INTAB-VKORG INTAB-VTWEG INTAB-SPART INTO NAME.
        CALL FUNCTION 'READ_TEXT'
      EXPORTING
*           CLIENT                  = SY-MANDT
         ID                      = '0002'
         LANGUAGE                = 'E'
         NAME                    =  NAME
         OBJECT                  = 'KNVV'
*         ARCHIVE_HANDLE          = 0
    IMPORTING
         HEADER                  = HTEXT
    TABLES
         LINES                   = LTEXT
    EXCEPTIONS
         ID                      = 1
         LANGUAGE                = 2
         NAME                    = 3
         NOT_FOUND               = 4
         OBJECT                  = 5
         REFERENCE_CHECK         = 6
         WRONG_ACCESS_TO_ARCHIVE = 7
         OTHERS                  = 8.

      ENDIF. "-----------------------------------------------------------------
      LOOP AT LTEXT.
        IF LTEXT-TDLINE NE ''.
          CONDENSE LTEXT-TDLINE.
          IF LTEXT-TDLINE <> '(IN DIA.)' .
            CASE MARKI .
              WHEN 1 .
                INTAB1-MARK1 = LTEXT-TDLINE.
              WHEN 2.
                INTAB1-MARK3 = LTEXT-TDLINE.
              WHEN 3 .
                INTAB1-MARK4 = LTEXT-TDLINE.
              WHEN 4 .
                INTAB1-MARK5 = LTEXT-TDLINE.
              WHEN 5 .
                INTAB1-MARK6 = LTEXT-TDLINE.
              WHEN 6 .
                INTAB1-MARK7 = LTEXT-TDLINE.
            ENDCASE .
            MARKI = MARKI + 1 .
          ELSE .

          ENDIF .
        ENDIF.

      ENDLOOP.
      CLEAR HTEXT .
*    CLEAR DTEXT .
      CLEAR LTEXT .
*    REFRESH DTEXT .
      REFRESH LTEXT .
    ENDIF .

    INTAB1-MARKT = '正嘜' .

    INTAB1-MARKNUM = P_NUMBER * NUMBER1 .

    INTAB1-MARK2 = '(IN DIA.)' .

    APPEND INTAB1 .

*側嘜信息
    MARKI = 1 .
    INTAB1 = INTAB .
*訂單表頭內文-0002正嘜内文
    VBELNTEXT = INTAB-VBELN .

    CALL FUNCTION 'READ_TEXT'
  EXPORTING
*           CLIENT                  = SY-MANDT
     ID                      = 'A003'
     LANGUAGE                = 'M'
     NAME                    =  VBELNTEXT
     OBJECT                  = 'VBBK'
*         ARCHIVE_HANDLE          = 0
IMPORTING
     HEADER                  = HTEXT
TABLES
     LINES                   = LTEXT
EXCEPTIONS
     ID                      = 1
     LANGUAGE                = 2
     NAME                    = 3
     NOT_FOUND               = 4
     OBJECT                  = 5
     REFERENCE_CHECK         = 6
     WRONG_ACCESS_TO_ARCHIVE = 7
     OTHERS                  = 8.

    IF LTEXT[] IS INITIAL. "--------------------------zhujiang20110412
      CONCATENATE INTAB-KUNNR INTAB-VKORG INTAB-VTWEG INTAB-SPART INTO NAME.

      CALL FUNCTION 'READ_TEXT'
    EXPORTING
*           CLIENT                  = SY-MANDT
       ID                      = 'A003'
       LANGUAGE                = 'M'
       NAME                    =  NAME
       OBJECT                  = 'KNVV'
*         ARCHIVE_HANDLE          = 0
  IMPORTING
       HEADER                  = HTEXT
  TABLES
       LINES                   = LTEXT
  EXCEPTIONS
       ID                      = 1
       LANGUAGE                = 2
       NAME                    = 3
       NOT_FOUND               = 4
       OBJECT                  = 5
       REFERENCE_CHECK         = 6
       WRONG_ACCESS_TO_ARCHIVE = 7
       OTHERS                  = 8.

    ENDIF."----------------------------------
    LOOP AT LTEXT.
      IF LTEXT-TDLINE NE ''.
        CONDENSE LTEXT-TDLINE.
*        IF LTEXT-TDLINE <> '(IN DIA.)' .
        CASE MARKI .
          WHEN 1 .
            INTAB1-MARK1 = LTEXT-TDLINE.
          WHEN 2.
            INTAB1-MARK2 = LTEXT-TDLINE.
          WHEN 3 .
            INTAB1-MARK3 = LTEXT-TDLINE.
          WHEN 4 .
            INTAB1-MARK4 = LTEXT-TDLINE.
          WHEN 5 .
            INTAB1-MARK5 = LTEXT-TDLINE.
          WHEN 6 .
            INTAB1-MARK6 = LTEXT-TDLINE.
        ENDCASE .
        MARKI = MARKI + 1 .
*        ELSE .
*        ENDIF .
      ENDIF.
    ENDLOOP.
    CLEAR HTEXT .
*    CLEAR DTEXT .
    CLEAR LTEXT .
*    REFRESH DTEXT .
    REFRESH LTEXT .

    IF INTAB1-MARK1 = '' .
      MARKI = 1 .
*訂單表頭內文-0002正嘜内文
      VBELNTEXT = INTAB-VBELN .

      CALL FUNCTION 'READ_TEXT'
    EXPORTING
*           CLIENT                  = SY-MANDT
       ID                      = 'A003'
       LANGUAGE                = 'E'
       NAME                    =  VBELNTEXT
       OBJECT                  = 'VBBK'
*         ARCHIVE_HANDLE          = 0
  IMPORTING
       HEADER                  = HTEXT
  TABLES
       LINES                   = LTEXT
  EXCEPTIONS
       ID                      = 1
       LANGUAGE                = 2
       NAME                    = 3
       NOT_FOUND               = 4
       OBJECT                  = 5
       REFERENCE_CHECK         = 6
       WRONG_ACCESS_TO_ARCHIVE = 7
       OTHERS                  = 8.
      IF LTEXT IS INITIAL. "---------------------------------------zhujiang20110412
        CONCATENATE INTAB-KUNNR INTAB-VKORG INTAB-VTWEG INTAB-SPART INTO NAME.

        CALL FUNCTION 'READ_TEXT'
      EXPORTING
*           CLIENT                  = SY-MANDT
         ID                      = 'A003'
         LANGUAGE                = 'E'
         NAME                    =  NAME
         OBJECT                  = 'KNVV'
*         ARCHIVE_HANDLE          = 0
    IMPORTING
         HEADER                  = HTEXT
    TABLES
         LINES                   = LTEXT
    EXCEPTIONS
         ID                      = 1
         LANGUAGE                = 2
         NAME                    = 3
         NOT_FOUND               = 4
         OBJECT                  = 5
         REFERENCE_CHECK         = 6
         WRONG_ACCESS_TO_ARCHIVE = 7
         OTHERS                  = 8.

      ENDIF."------------------------------
      LOOP AT LTEXT.
        IF LTEXT-TDLINE NE ''.
          CONDENSE LTEXT-TDLINE.
*        IF LTEXT-TDLINE <> '(IN DIA.)' .
          CASE MARKI .
            WHEN 1 .
              INTAB1-MARK1 = LTEXT-TDLINE.
            WHEN 2.
              INTAB1-MARK2 = LTEXT-TDLINE.
            WHEN 3 .
              INTAB1-MARK3 = LTEXT-TDLINE.
            WHEN 4 .
              INTAB1-MARK4 = LTEXT-TDLINE.
            WHEN 5 .
              INTAB1-MARK5 = LTEXT-TDLINE.
            WHEN 6 .
              INTAB1-MARK6 = LTEXT-TDLINE.
          ENDCASE .
          MARKI = MARKI + 1 .
*        ELSE .
*        ENDIF .
        ENDIF.
      ENDLOOP.
      CLEAR HTEXT .
*    CLEAR DTEXT .
      CLEAR LTEXT .
*    REFRESH DTEXT .
      REFRESH LTEXT .

    ENDIF .

    INTAB1-MARKNUM = P_NUMBER * NUMBER2 .
    INTAB1-MARKT = '側嘜' .
*    INTAB1-MARK2 = '(IN DIA.)' .
    IF INTAB1-MARK1 <> '' .
      APPEND  INTAB1 .
    ENDIF .
  ENDLOOP .

* 刪除不需要内容
  IF C1 <> 'X' .
    DELETE INTAB1 WHERE MARKT = '正嘜'.
  ENDIF .
  IF C2 <> 'X' .
    DELETE INTAB1 WHERE MARKT = '側嘜'.
  ENDIF .

* 打印张数
  LOOP AT INTAB1 .
    IF INTAB1-MARK1 <> '' .
      MARKNUM1 = INTAB1-MARKNUM .
      DO MARKNUM1 TIMES.
        INTABP = INTAB1 .
        APPEND INTABP .
      ENDDO .
    ELSE .
      INTABP = INTAB1 .
      INTABP-MARK1 = '唛头信息没有维护完整' .
      APPEND INTABP .
    ENDIF .
    MARKNUM1 = 0 .
  ENDLOOP .

posted on 2012-06-04 08:22  阿宝兴荣  阅读(500)  评论(0编辑  收藏  举报