ABAP分享十: 文件的上傳 方法一


  前提條件:

PARAMETERS P_files TYPE RLGRAP-FILENAME.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_files.

一。文件的上傳

函數: WS_FILENAME_GET 獲取文件名

" MASK 函數 第一個逗號是標識逗號,后面每兩個逗號為一組 前面為名字后面為格式(后綴名),結束加句號
" 第一個逗號是顯示什么,后面指擴展名是什么


CALL FUNCTION 'WS_FILENAME_GET' " 函數已過時  但還可以繼續使用
EXPORTING
* DEF_FILENAME = ' ' " 默認文件名稱
* DEF_PATH = ' ' " 默認文件路徑
MASK = ',Excel(*.xls),*.XLS,text.txt,*.txt.' " 用於本地的文件的獲取
MODE = 'O' " S 保存 O 打開
TITLE = '打開文件' " 窗口的顯示名稱
IMPORTING
FILENAME = P_FILES.
* RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.


DATA LV_FILES TYPE STRING.
LV_FILES = P_FILES. " 將文件名轉換成string類型的變量
* 文件的上傳 TXT文件的上傳

CALL FUNCTION 'GUI_UPLOAD' " 獲取文件內容到內表中  文本文件的讀取 
EXPORTING
filename = LV_FILES " string類型 要將文件轉換為string類型
* FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
tables
data_tab = GT_MATNRIAL    " 定義的接受內表,里面的變量與上傳的文件的變量一致
* CHANGING
* ISSCANPERFORMED = ' '
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.   

 

"EXCEL文件的讀取

   DATA: LT_RAW TYPE TRUXS_T_TEXT_DATA.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' "獲取文件的內容到內表中 excel文件
EXPORTING
* I_FIELD_SEPERATOR = 'X' " 判斷是否具有表頭
* I_LINE_HEADER = X'
i_tab_raw_data = LT_RAW " 系統自動的值,一般不用管理
i_filename = P_FILES " 上傳的文件路徑
TABLES
i_tab_converted_data = GT_MATNRIAL " 顯示內表
* EXCEPTIONS
* CONVERSION_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM