在CX项目中,需要读取采购申请单抬头文本和行项目文本,下面是在程序种的应用:
* 读取抬头文本备注DATA: TEXT1(50).
DATA: BEGIN OF ITB_S18 OCCURS 0.
INCLUDE STRUCTURE thead.
DATA: END OF ITB_S18.
DATA: BEGIN OF FLINES OCCURS 0.
INCLUDE STRUCTURE TLINE.
DATA: END 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.