SAP中用ABAP读取采购申请抬头文本和行项目文本的程序

来源:互联网 发布:java抢票软件开发源码 编辑:程序博客网 时间:2024/05/18 01:37

在CX项目中,需要读取采购申请单抬头文本和行项目文本,下面是在程序种的应用:

*     读取抬头文本备注DATA: TEXT1(50).
      DATABEGIN OF ITB_S18 OCCURS 0.
              INCLUDE STRUCTURE thead.
      DATAEND OF ITB_S18.
      DATABEGIN OF FLINES OCCURS 0.
               INCLUDE STRUCTURE TLINE.
      DATAEND OF FLINES.
      DATA: EBELNKP(15).


      SELECT * FROM STXL
      INTO CORRESPONDING FIELDS OF TABLE ITB_S18
      WHERE TDOBJECT = 'EBANH'
      AND   TDNAME = ITAB-BANFN.

      CLEAR TEXT1.
      LOOP AT ITB_S18.
        CLEAR TEXT1.
        PERFORM FRM_READ_TEXT USING 'B01' ITB_S18-TDNAME 'EBANH'
        CHANGING TEXT1 .
      ENDLOOP.

      ITAB-HTEXT = TEXT1.

*     读取行项目文本备注
      CLEAR EBELNKP.
      CONCATENATE ITAB-BANFN ITAB-BNFPO INTO EBELNKP.
      SELECT * FROM STXL
      INTO CORRESPONDING FIELDS OF TABLE ITB_S18
      WHERE TDOBJECT = 'EBAN'
      AND   TDNAME = EBELNKP.

      CLEAR TEXT1.
      LOOP AT ITB_S18.
        CLEAR TEXT1.
        PERFORM FRM_READ_TEXT USING 'B01' ITB_S18-TDNAME 'EBAN'
        CHANGING TEXT1 .
      ENDLOOP.

      ITAB-ITEXT = TEXT1.

 

 

FORM FRM_READ_TEXT USING FID FNAME FOBJECT CHANGING TEXT1 .

  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      CLIENT                        = SY-MANDT
      ID                            = FID
      LANGUAGE                      = SY-LANGU
      NAME                          = FNAME
      OBJECT                        = FOBJECT
*     ARCHIVE_HANDLE                = 0
*     LOCAL_CAT                     = ' '
*   IMPORTING
*     HEADER                        =
    TABLES
      LINES                         = FLINES
   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.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
    LOOP AT FLINES.
      CONCATENATE TEXT1 FLINES-TDLINE INTO TEXT1 .

    ENDLOOP.
ENDFORM.