FUNCTION ZTRANTOXSTRING.
*“----------------------------------------------------------------------
"“本地接口:
*” EXPORTING
*” REFERENCE(EV_XSTRING) TYPE XSTRING
*" REFERENCE(EV_SIZE) TYPE I
*" TABLES
*" IT_FCAT TYPE LVC_T_FCAT
*" IT_OUT
*" ET_BIN_TAB
*"----------------------------------------------------------------------
FIELD-SYMBOLS :
TYPE ANY TABLE .DATA: BIN_TAB TYPE TABLE OF SOLIX .
*DATA: bin_tab TYPE STANDARD TABLE OF tabl1024.
DATA : LV_VALUEP TYPE P DECIMALS 2,
L_VALUE TYPE STRING,
L_FULLPATH TYPE STRING,
LENGTH TYPE I,
LV_ZTYPE TYPE I,
LV_STR TYPE STRING.
**** SET HEADER
LOOP AT IT_FCAT INTO DATA(LS_FIELDCAT).
CONCATENATE LV_STR LS_FIELDCAT-SCRTEXT_L CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO LV_STR .
ENDLOOP.
CONCATENATE LV_STR CL_ABAP_CHAR_UTILITIES=>CR_LF INTO LV_STR .
**** SET DATA
LOOP AT IT_OUT ASSIGNING FIELD-SYMBOL() .
LOOP AT IT_FCAT INTO LS_FIELDCAT .
ASSIGN COMPONENT LS_FIELDCAT-FIELDNAME OF STRUCTURE TO FIELD-SYMBOL() .
IF SY-SUBRC = 0 .
L_VALUE = .
IF LS_FIELDCAT-INTTYPE = ‘P’ AND < 0 .
LV_VALUEP = .
LV_VALUEP = - LV_VALUEP .
L_VALUE = ‘-’ && LV_VALUEP .
ENDIF .
CONCATENATE LV_STR L_VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO LV_STR .
ENDIF .
ENDLOOP.
CONCATENATE LV_STR CL_ABAP_CHAR_UTILITIES=>CR_LF INTO LV_STR .
ENDLOOP .
CALL FUNCTION ‘SCMS_STRING_TO_XSTRING’
EXPORTING
TEXT = LV_STR
-
MIMETYPE = 'APPLICATION/PDF;charset=utf-16le ' ENCODING = '8400'
IMPORTING
BUFFER = EV_XSTRING
EXCEPTIONS
FAILED = 1
OTHERS = 2.
IF SY-SUBRC <> 0. -
Implement suitable error handling here
ENDIF.CALL FUNCTION ‘SCMS_XSTRING_TO_BINARY’
EXPORTING
BUFFER = EV_XSTRING
IMPORTING
OUTPUT_LENGTH = LENGTH
TABLES
BINARY_TAB = BIN_TAB.ET_BIN_TAB[] = BIN_TAB[] .
IF LV_ZTYPE = ‘1’ .
L_FULLPATH = ‘D:\test01’ && SY-DATUM && SY-UZEIT && ‘.xls’ .
CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
FILENAME = L_FULLPATH "lv_fullpath
FILETYPE = ‘BIN’ -
write_field_separator = 'X' TABLES DATA_TAB = BIN_TAB
-
fieldnames = gt_hd .
ENDIF.
ENDFUNCTION.