smartform打印

这是一个SAP ABAP报告,用于通过Smartform打印采购订单。报告首先定义了所需的变量和数据结构,然后从EKKO和EKPO表中检索数据。数据被填充到Smartform中,然后调用Smartform的函数模块进行打印。程序还包括错误处理和数据获取的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*&---------------------------------------------------------------------*
*& Report  ZMMF_PO_PRINT
*&
*&---------------------------------------------------------------------*
*&Creator:Real
*&Create date:2008.5.26
*&Last Change By:Real
*&Last change date: date:2008.12.22
*&Description:PO Print by Smartform
*&---------------------------------------------------------------------*

REPORT  ZMMF_PO_PRINT MESSAGE-ID ZMSEG.

TABLES:NAST,TNAPR,EKKO,EKPO.
DATA XSCREEN(1TYPE C.
DATA GS_PO_HEAER    LIKE ZMPO_HERDER .
DATA GS_PO_HEAER1    LIKE ZMPO_HERDER OCCURS WITH HEADER LINE .
DATA:LT_ZPO_ITEM    LIKE ZMPO_ITEM OCCURS WITH HEADER LINE.
DATA:LT_ZPO_ITEM1    LIKE ZMPO_ITEM OCCURS WITH HEADER LINE.


DATAGI_RETCODE TYPE I,
     ADRNR2 TYPE T001W-ADRNR,
     SUPP_NAME1 LIKE ADRC-NAME1,
     SUPP_NAME2 LIKE ADRC-NAME1,
     SUPP_NAMECO LIKE ADRC-NAME_CO,
     SUPP_STR1 LIKE ADRC-STR_SUPPL1,
     SUPP_STR2 LIKE ADRC-STR_SUPPL1,
     SUPP_STREET LIKE ADRC-STREET,
     SUPP_CITY LIKE ADRC-CITY1,
     SUPP_CN LIKE ADRC-COUNTRY,
     SUPP_CN_NAME LIKE T005T-LANDX,
     SUPP_ALL TYPE STRING,"
     SUPP_FRISTNAME LIKE KNVK-NAMEV,
     SUPP_LASTNAME LIKE KNVK-NAME1,
     SUPP_ANRED LIKE KNVK-ANRED,
     SUPP_PRSNR LIKE KNVK-PRSNR,
     TEL_NUMBER LIKE ADR2-TEL_NUMBER,
     TEL_EXTENS LIKE ADR2-TEL_EXTENS,
     FAX_NUMBER LIKE ADRC-FAX_NUMBER,
     SUPP_TEL LIKE KNVK-TELF1,
     ADRNR TYPE T001W-ADRNR,
     KTOKK LIKE LFA1-KTOKK,

     DELV_NAME1 LIKE ADRC-NAME1,
     DELV_NAME2 LIKE ADRC-NAME1,
     DELV_CO LIKE ADRC-NAME_CO,
     DELV_STR1 LIKE ADRC-STR_SUPPL1,                        "street2
     DELV_STR2 LIKE ADRC-STR_SUPPL1,                        "street3
     DELV_STREET LIKE ADRC-STREET,
     DELV_CITY LIKE ADRC-CITY1,
     DELV_CN LIKE ADRC-COUNTRY,
     DELV_CN_NAME LIKE T005T-LANDX,
     DELV_FRISTNAME LIKE KNVK-NAMEV,
     DELV_LASTNAME LIKE KNVK-NAME1,
     DELV_ANRED LIKE KNVK-ANRED,
     DELV_PRSNR LIKE KNVK-PRSNR,
     TEL_NUMBER1 LIKE ADR2-TEL_NUMBER,
     TEL_EXTENS1 LIKE ADR2-TEL_EXTENS,
     DELV_TEL LIKE KNVK-TELF1,

     PUR_TOTAL LIKE EKPO-NETWR,
     TAX_TOTAL LIKE EKPO-NETWR,
     NET_TOTAL LIKE EKPO-NETWR,
     COM_PLACE LIKE ADRC-STREET,
     DEL_PLACE LIKE LFA1-STRAS,
     HEAD_LINE LIKE TLINE OCCURS WITH HEADER LINE,
     REMARK LIKE TLINE-TDLINE,
     ITEM_LINE LIKE TLINE OCCURS WITH HEADER LINE,
     TDNAME LIKE RSTXT-TDNAME,
     GAP TYPE VALUE ' ',
     GAP1 TYPE VALUE '-',
     POMENGE1 LIKE EKPO-MENGE,
     POMENGE2 LIKE EKPO-MENGE .

DATA:AUTH_BUKRS LIKE EKKO-BUKRS.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_BUKRS TYPE EKPO-BUKRS MEMORY ID BUK .
SELECT-OPTIONS:S_EBELN FOR EKKO-EBELN OBLIGATORY DEFAULT '4500006390',
               S_BSART FOR EKKO-BSART,
               S_AEDAT FOR EKKO-AEDAT,
               S_BEDAT FOR EKKO-BEDAT,
               S_LIFNR FOR EKKO-LIFNR,
               S_MATNR FOR EKPO-MATNR,
               S_LGORT FOR EKPO-LGORT NO-DISPLAY.
PARAMETERS:P_XSCRN TYPE DEFAULT 'X' NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK B1.

START-OF-SELECTION.
  TNAPR-SFORM 'ZMM_PO_PRINT'.

  PERFORM ENTRY_NEU USING GI_RETCODE P_XSCRN.

END-OF-SELECTION.

INITIALIZATION.
  CLEARADRNR2,
       SUPP_NAME1,
       SUPP_NAME2,
       SUPP_NAMECO,
       SUPP_STR1,
       SUPP_STR2,
       SUPP_STREET,
       SUPP_CITY,
       SUPP_CN,
       SUPP_CN_NAME,
       SUPP_ALL,
       SUPP_FRISTNAME,
       SUPP_LASTNAME,
       SUPP_ANRED,
       SUPP_PRSNR,
       TEL_NUMBER,
       TEL_EXTENS,
       SUPP_TEL,
       ADRNR,

       DELV_NAME1,
       DELV_NAME2,
       DELV_STR1,
       DELV_STR2,
       DELV_STREET,
       DELV_CITY,
       DELV_CN,
       DELV_CN_NAME,
       DELV_FRISTNAME,
       DELV_LASTNAME,
       DELV_ANRED,
       DELV_PRSNR,
       TEL_NUMBER1,
       TEL_EXTENS1,
       DELV_TEL,

       PUR_TOTAL,
       TAX_TOTAL,
       NET_TOTAL,
       COM_PLACE,
       DEL_PLACE,
       HEAD_LINE,
       REMARK,
       ITEM_LINE,
       TDNAME .

AT SELECTION-SCREEN.

*    CLEAR AUTH_BUKRS.
*  SELECT SINGLE BUKRS
*    INTO AUTH_BUKRS
*    FROM EKKO
*    WHERE EBELN = LV_EBELN.

*  AUTHORITY-CHECK OBJECT 'ZOBJECT' ID 'BUKRS' FIELD auth_BUKRS.
*  IF SY-SUBRC <> 0.
*    MESSAGE E998(SABAPDOCU) WITH auth_BUKRS.
*  ENDIF.


*&---------------------------------------------------------------------*
*&      Form  entry_neu
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->RETURN_CODE  text
*      -->US_SCREEN    text
*----------------------------------------------------------------------*
FORM ENTRY_NEU USING RETURN_CODE US_SCREEN.

  DATALI_RETCODE TYPE SY-SUBRC.
  XSCREEN US_SCREEN.
  PERFORM PROCESSING USING US_SCREEN
                     CHANGING LI_RETCODE.
  IF LI_RETCODE NE 0.
    RETURN_CODE 1.
  ELSE.
    RETURN_CODE 0.
  ENDIF.

ENDFORM.                    "entry_neu


*&---------------------------------------------------------------------*
*&      Form  processing
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PROC_SCREEN  text
*      -->CF_RETCODE   text
*----------------------------------------------------------------------*
FORM PROCESSING USING PROC_SCREEN
                CHANGING CF_RETCODE.
  DATALC_FM_NAME            TYPE RS38L_FNAM.
  DATALS_CONTROL_PARAM      TYPE SSFCTRLOP.
  DATALS_COMPOSER_PARAM     TYPE SSFCOMPOP.
  DATALC_FORMNAME           TYPE TDSFNAME.
  DATALS_JOB_INFO           TYPE SSFCRESCL.


* SmartForm from customizing table TNAPR
  LC_FORMNAME TNAPR-SFORM.

* select print data
  PERFORM GET_DATA CHANGING CF_RETCODE.

  IF CF_RETCODE 0.
* determine smartform function module for invoice
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        FORMNAME           LC_FORMNAME
      IMPORTING
        FM_NAME            LC_FM_NAME
      EXCEPTIONS
        NO_FORM            1
        NO_FUNCTION_MODULE 2
        OTHERS             3.
    IF SY-SUBRC <> 0.
*   error handling
      CF_RETCODE SY-SUBRC.
      PERFORM PROTOCOL_UPDATE.
    ENDIF.
  ENDIF.


* Clear variant
  CLEAR GS_PO_HEAER.
  LOOP AT GS_PO_HEAER1 INTO GS_PO_HEAER.

    AT FIRST.
      LS_CONTROL_PARAM-NO_CLOSE 'X'.
    ENDAT.

    AT LAST.
      LS_CONTROL_PARAM-NO_CLOSE ''.
    ENDAT.

    LS_COMPOSER_PARAM-TDDEST 'LP01'.
    LS_COMPOSER_PARAM-TDIMMED 'X'.
    IF XSCREEN 'X'.
      LS_COMPOSER_PARAM-TDNOPRINT 'X'.
    ENDIF.
    LS_CONTROL_PARAM-DEVICE      'PRINTER'.
*  cs_control_param-device      = 'MAIL'.
    LS_CONTROL_PARAM-NO_DIALOG   'X'.
    LS_CONTROL_PARAM-PREVIEW     'X'.
*  CS_CONTROL_PARAM-LANGU       = 'M'.

    CLEAR LT_ZPO_ITEM.
    REFRESH LT_ZPO_ITEM.
    LOOP AT LT_ZPO_ITEM1 INTO LT_ZPO_ITEM WHERE EBELN GS_PO_HEAER-EBELN.

      APPEND LT_ZPO_ITEM.

    ENDLOOP.

    CALL FUNCTION LC_FM_NAME
      EXPORTING
        CONTROL_PARAMETERS LS_CONTROL_PARAM
        OUTPUT_OPTIONS     LS_COMPOSER_PARAM
        USER_SETTINGS      SPACE
        GS_PO_HEAER        GS_PO_HEAER
        PUR_TOTAL          PUR_TOTAL
        TAX_TOTAL          TAX_TOTAL
        NET_TOTAL          NET_TOTAL
        DEL_PLACE          DEL_PLACE
        REMARK             REMARK
      IMPORTING
        JOB_OUTPUT_INFO    LS_JOB_INFO
      TABLES
        IT_ZPO_ITEM        LT_ZPO_ITEM[]
      EXCEPTIONS
        FORMATTING_ERROR   1
        INTERNAL_ERROR     2
        SEND_ERROR         3
        USER_CANCELED      4
        OTHERS             5.

    IF SY-SUBRC <> 0.
*   error handling
      CF_RETCODE SY-SUBRC.
      PERFORM PROTOCOL_UPDATE.
* get SmartForm protocoll and store it in the NAST protocoll
      PERFORM ADD_SMFRM_PROT.
    ENDIF.

    LS_CONTROL_PARAM-NO_OPEN 'X'.
  ENDLOOP.
ENDFORM.                    "PROCESSING


*&---------------------------------------------------------------------*
*&      Form  protocol_update
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM PROTOCOL_UPDATE .
  CHECK XSCREEN SPACE.
  CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
    EXPORTING
      MSG_ARBGB SYST-MSGID
      MSG_NR    SYST-MSGNO
      MSG_TY    SYST-MSGTY
      MSG_V1    SYST-MSGV1
      MSG_V2    SYST-MSGV2
      MSG_V3    SYST-MSGV3
      MSG_V4    SYST-MSGV4
    EXCEPTIONS
      OTHERS    1.
ENDFORM.                    " protocol_update
*&---------------------------------------------------------------------*
*&      Form  add_smfrm_prot
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM ADD_SMFRM_PROT .
  DATALT_ERRORTAB             TYPE TSFERROR.
  FIELD-SYMBOLS<FS_ERRORTAB>  TYPE LINE OF TSFERROR.

* get smart form protocoll
  CALL FUNCTION 'SSF_READ_ERRORS'
    IMPORTING
      ERRORTAB LT_ERRORTAB.

* add smartform protocoll to nast protocoll
  LOOP AT LT_ERRORTAB ASSIGNING <FS_ERRORTAB>.

    CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
      EXPORTING
        MSG_ARBGB <FS_ERRORTAB>-MSGID
        MSG_NR    <FS_ERRORTAB>-MSGNO
        MSG_TY    <FS_ERRORTAB>-MSGTY
        MSG_V1    <FS_ERRORTAB>-MSGV1
        MSG_V2    <FS_ERRORTAB>-MSGV2
        MSG_V3    <FS_ERRORTAB>-MSGV3
        MSG_V4    <FS_ERRORTAB>-MSGV4
      EXCEPTIONS
        OTHERS    1.
  ENDLOOP.
ENDFORM.                    " add_smfrm_prot

*&---------------------------------------------------------------------*
*&      Form  protocol_update_spool
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->SYST_MSGNO    text
*      -->P_LS_SPOOLID  text
*      -->P_SPACE1      text
*      -->P_SPACE2      text
*      -->P_SPACE3      text
*----------------------------------------------------------------------*
FORM PROTOCOL_UPDATE_SPOOL  USING    SYST_MSGNO
                                     P_LS_SPOOLID
                                     P_SPACE1
                                     P_SPACE2
                                     P_SPACE3.
  SYST-MSGID 'ME'.
  SYST-MSGNO SYST_MSGNO.
  SYST-MSGV1 P_LS_SPOOLID.
  CONDENSE SYST-MSGV1.
  CHECK XSCREEN SPACE.
  CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
    EXPORTING
      MSG_ARBGB SYST-MSGID
      MSG_NR    SYST-MSGNO
      MSG_TY    SYST-MSGTY
      MSG_V1    SYST-MSGV1
      MSG_V2    P_SPACE1
      MSG_V3    P_SPACE2
      MSG_V4    P_SPACE3
    EXCEPTIONS
      OTHERS    1.
ENDFORM.                    " protocol_update_spool


*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->CF_RETCODE text
*----------------------------------------------------------------------*
FORM GET_DATA  CHANGING CF_RETCODE.
  DATA LV_EBELN LIKE EKKO-EBELN.

  IF NAST-OBJKY+10 NE SPACE.
    NAST-OBJKY NAST-OBJKY+16(10).
  ELSE.
    NAST-OBJKY NAST-OBJKY.
  ENDIF.
  LV_EBELN NAST-OBJKY.

  REFRESH:GS_PO_HEAER1,LT_ZPO_ITEM1.
  SELECT DISTINCT EKKO~BUKRS EKKO~LIFNR EKKO~EBELN EKKO~BSART EKKO~AEDAT
         EKKO~INCO1 EKKO~INCO2 EKPO~WERKS EKKO~WAERS EKKO~FRGZU EKKO~ZTERM
         EKKO~ERNAM EKKO~BEDAT
  INTO CORRESPONDING FIELDS OF TABLE GS_PO_HEAER1
  FROM EKKO
  JOIN EKPO ON EKPO~EBELN EKKO~EBELN
  WHERE EKKO~EBELN IN  S_EBELN
    AND EKKO~BSART IN S_BSART
    AND EKKO~AEDAT IN S_AEDAT
    AND EKKO~BEDAT IN S_BEDAT
    AND EKKO~LIFNR IN S_LIFNR
    AND EKPO~MATNR IN S_MATNR.


  DESCRIBE TABLE GS_PO_HEAER1 LINES SY-TMAXL.

  IF SY-TMAXL 0.
    MESSAGE I004(ZMSEG).
    STOP.
  ENDIF.

  SELECT EKPO~EBELN EKPO~EBELP EKPO~MATNR EKPO~EMATN EKPO~TXZ01
         EKPO~MENGE EKPO~MEINS EKPO~NETPR EKKO~WAERS EKKO~BSART
         EKPO~NETWR EKPO~PEINH EKPO~MWSKZ EKPO~INFNR EKPO~WERKS
         EKPO~BUKRS EKPO~BPRME EKPO~BPUMZ EKPO~BPUMN "EKET~MENGE EKET~EINDT
*        ekpo~umren ekpo~umrez ekpo~lmein
  INTO CORRESPONDING FIELDS OF TABLE LT_ZPO_ITEM1
  FROM EKPO
  JOIN EKKO ON EKPO~EBELN EKKO~EBELN
  FOR ALL ENTRIES IN GS_PO_HEAER1
*  JOIN EKET ON EKET~EBELN = EKPO~EBELN AND EKET~EBELP = EKPO~EBELP
  WHERE EKPO~EBELN GS_PO_HEAER1-EBELN
    AND EKPO~LOEKZ <> 'L'.

  CLEAR PUR_TOTAL.
  CLEAR TAX_TOTAL.
  CLEAR NET_TOTAL.

  LOOP AT GS_PO_HEAER1.
    CLEAR:TAX_TOTAL,NET_TOTAL,PUR_TOTAL.
    LOOP AT LT_ZPO_ITEM1 WHERE EBELN GS_PO_HEAER1-EBELN.
*when the currency is JPY,
      IF LT_ZPO_ITEM-WAERS 'JPY'.
        LT_ZPO_ITEM-NETPR LT_ZPO_ITEM-NETPR * 100.
      ENDIF.
*when the currency is JPY
      CLEARPOMENGE1,POMENGE2.

      SELECT B~MAKTX A~MFRPN A~WRKST
        INTO (LT_ZPO_ITEM-MAKTX,LT_ZPO_ITEM-MFRPN,LT_ZPO_ITEM-WRKST)
        FROM MARA AS A
        JOIN MAKT AS ON A~MATNR B~MATNR
        WHERE A~MATNR LT_ZPO_ITEM-EMATN.
      ENDSELECT.

      IF LT_ZPO_ITEM-PEINH <> 0.
        LT_ZPO_ITEM-NETPR LT_ZPO_ITEM-NETPR / LT_ZPO_ITEM-PEINH.
      ENDIF.

      CLEAR:POMENGE1,POMENGE2.
      POMENGE1 LT_ZPO_ITEM-MENGE.

      IF FRACPOMENGE1 <> 0.
        LT_ZPO_ITEM-MENGE1 POMENGE1 .
      ELSE.
        LT_ZPO_ITEM-MENGE1 TRUNCPOMENGE1 ).
      ENDIF.

      POMENGE2 LT_ZPO_ITEM-MENGE * LT_ZPO_ITEM-BPUMZ / LT_ZPO_ITEM-BPUMN.
      LT_ZPO_ITEM-NETWR POMENGE2 * LT_ZPO_ITEM-NETPR.
      IF FRACPOMENGE2 <> 0.
        LT_ZPO_ITEM-MENGE2 POMENGE2 .
      ELSE.
        LT_ZPO_ITEM-MENGE2 TRUNCPOMENGE2 ).
      ENDIF.
      LT_ZPO_ITEM-NETPR1 LT_ZPO_ITEM-NETPR.
      LT_ZPO_ITEM-NETWR1 LT_ZPO_ITEM-NETWR.
      CONDENSE LT_ZPO_ITEM-MENGE1.
      CONDENSE LT_ZPO_ITEM-MENGE2.
      CONDENSE LT_ZPO_ITEM-NETPR1.
      CONDENSE LT_ZPO_ITEM-NETWR1.

      CLEAR LT_ZPO_ITEM-ITEM_TAX.
      IF LT_ZPO_ITEM-MWSKZ 'J0'.
        LT_ZPO_ITEM-ITEM_TAX LT_ZPO_ITEM-NETWR * 0.
      ENDIF.
      IF LT_ZPO_ITEM-MWSKZ 'J1'.
        LT_ZPO_ITEM-TAX_CODE '17#'.
        LT_ZPO_ITEM-ITEM_TAX LT_ZPO_ITEM-NETWR *  17 100.
      ENDIF.
      IF LT_ZPO_ITEM-MWSKZ 'J2'.
        LT_ZPO_ITEM-TAX_CODE '13#'.
        LT_ZPO_ITEM-ITEM_TAX LT_ZPO_ITEM-NETWR *  13 100.
      ENDIF.
      IF LT_ZPO_ITEM-MWSKZ 'J3'.
        LT_ZPO_ITEM-TAX_CODE '7#'.
        LT_ZPO_ITEM-ITEM_TAX LT_ZPO_ITEM-NETWR *  100.
      ENDIF.
      IF LT_ZPO_ITEM-MWSKZ 'J4'.
        LT_ZPO_ITEM-TAX_CODE '6#'.
        LT_ZPO_ITEM-ITEM_TAX LT_ZPO_ITEM-NETWR *  100.
      ENDIF.
      IF LT_ZPO_ITEM-MWSKZ 'J5'.
        LT_ZPO_ITEM-TAX_CODE '4#'.
        LT_ZPO_ITEM-ITEM_TAX LT_ZPO_ITEM-NETWR *  100.
      ENDIF.
      IF LT_ZPO_ITEM-MWSKZ 'J6'.
        LT_ZPO_ITEM-TAX_CODE '3#'.
        LT_ZPO_ITEM-ITEM_TAX LT_ZPO_ITEM-NETWR *  100.
      ENDIF.
      LT_ZPO_ITEM-ITEM_TAX1 LT_ZPO_ITEM-ITEM_TAX.
      CONDENSE LT_ZPO_ITEM-ITEM_TAX1.
      TAX_TOTAL TAX_TOTAL + LT_ZPO_ITEM-ITEM_TAX.
      NET_TOTAL NET_TOTAL + LT_ZPO_ITEM-NETWR.
      PUR_TOTAL NET_TOTAL + TAX_TOTAL.

*get po info text
*    CLEAR TDNAME.
*    CONCATENATE LT_ZPO_ITEM-INFNR LT_ZPO_ITEM-BUKRS '0'
*    LT_ZPO_ITEM-WERKS INTO TDNAME.
*    CALL FUNCTION 'READ_TEXT'
*      EXPORTING
*       CLIENT                        = SY-MANDT
*        ID                            = 'BT'
*        LANGUAGE                      = '1'
*        NAME                          = TDNAME
*        OBJECT                        = 'EINE'
**       ARCHIVE_HANDLE                = 0
**       LOCAL_CAT                     = ' '
**     IMPORTING
**       HEADER                        =
*      TABLES
*      LINES                         = ITEM_LINE
*      EXCEPTIONS
*       ID                            = 1
*       LANGUAGE                      = 2
*       NAME                          = 3
*       NOT_FOUND                     = 4
*       OBJECT                        = 5
*       REFERENCE_CHECK               = 6
*       WRONG_ACCESS_TO_ARCHIVE       = 7
*       OTHERS                        = 8 .
*    IF SY-SUBRC = 0.
*      LOOP AT ITEM_LINE.
*        CONCATENATE LT_ZPO_ITEM-ITEMTEXT ITEM_LINE-TDLINE INTO
*       LT_ZPO_ITEM-ITEMTEXT.
**        lt_zpo_item-itemtext = item_LINE-TDLINE.
*      ENDLOOP.
*      CLEAR ITEM_LINE.
*    ENDIF.
      SELECT SINGLE EINDT INTO LT_ZPO_ITEM-EINDT
        FROM EKET WHERE EBELN LT_ZPO_ITEM-EBELN
                    AND EBELP LT_ZPO_ITEM-EBELP.
      PERFORM DELETE_ZERO USING LT_ZPO_ITEM-EBELP.

      MODIFY LT_ZPO_ITEM1.
      CLEAR  LT_ZPO_ITEM1.
    ENDLOOP.

*Modify header PO
    SELECT ADRNR
      INTO ADRNR2
      FROM T001W
    WHERE WERKS GS_PO_HEAER1-WERKS.
      IF SY-SUBRC 0.
        SELECT  STREET
          INTO GS_PO_HEAER1-ADDRESS
        FROM ADRC
        WHERE ADDRNUMBER ADRNR2.
        ENDSELECT.
      ENDIF.
    ENDSELECT.

    SELECT ADRNR
      INTO ADRNR
      FROM LFA1
      WHERE LIFNR GS_PO_HEAER1-LIFNR.
    ENDSELECT.

    SELECT NAME1 NAME2 CITY1 NAME_CO STR_SUPPL1 STR_SUPPL2
      COUNTRY STREET TEL_NUMBER FAX_NUMBER
      INTO (SUPP_NAME1,SUPP_NAME2,SUPP_CITY,SUPP_NAMECO,SUPP_STR1,
            SUPP_STR2,SUPP_CN,SUPP_STREET,TEL_NUMBER,FAX_NUMBER)
      FROM ADRC
      WHERE ADDRNUMBER ADRNR.
    ENDSELECT.

    SELECT LANDX
       INTO SUPP_CN_NAME
       FROM T005T
       WHERE SPRAS 'E'
         AND LAND1 SUPP_CN.
    ENDSELECT.

    CONDENSE SUPP_NAME1.
    CONDENSE SUPP_NAME2.
    GS_PO_HEAER1-SUPP_CO SUPP_NAMECO.
    GS_PO_HEAER1-SUPP_STRONE SUPP_STR1.
    GS_PO_HEAER1-SUPP_STRTWO SUPP_STR2.
    GS_PO_HEAER1-SUPP_TEL TEL_NUMBER.
    GS_PO_HEAER1-SUPP_FAX FAX_NUMBER.
    GS_PO_HEAER1-ADDRESS SUPP_STREET.
    CONCATENATE SUPP_STREET SUPP_CITY SUPP_CN_NAME
    INTO  GS_PO_HEAER1-SUPP_CN SEPARATED BY GAP .
    CONCATENATE SUPP_NAME1 SUPP_NAME2 INTO GS_PO_HEAER1-SUPP_NAME
         SEPARATED BY GAP.

    SELECT SINGLE KOINH INTO GS_PO_HEAER1-KOINH FROM LFBK
      WHERE LIFNR GS_PO_HEAER1-LIFNR.

    SELECT SINGLE SMTP_ADDR INTO GS_PO_HEAER1-SMTP_ADDR1
       FROM ADR6 WHERE ADDRNUMBER ADRNR.
    SELECT SINGLE TEXT1
      INTO GS_PO_HEAER1-TEXT1
      FROM T052U
      WHERE ZTERM GS_PO_HEAER1-ZTERM.

    MODIFY GS_PO_HEAER1.
    CLEAR GS_PO_HEAER1.
  ENDLOOP.

ENDFORM.                    "get_data
*&---------------------------------------------------------------------*
*&      Form  delete_zero
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P1  text
*----------------------------------------------------------------------*
FORM DELETE_ZERO  USING P_P1.

  CALL FUNCTION 'BKK_DELETE_LEADING_ZERO'
    CHANGING
      C_FIELD P_P1.

ENDFORM.                    " delete_zero
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值