好康:7-11 City cafe 優惠券
憑券大杯75折,有效期間:3/15-4/25
請自己印下來使用囉
按這裡 按這裡
生活‧主張‧樂趣‧分享
使用Range的好處,在於讓程式碼簡潔可以閱讀
這裡提供一段程式碼,請參考使用
*定義Range
*RANGE for AUFNR (紀錄工單號的集合)
DATA: rAUFNR LIKE RANGE OF GLPCA-AUFNR INITIAL SIZE 0 WITH HEADER LINE.
*新增一筆虛擬資料
MOVE: 'I' TO rAUFNR-SIGN,
'EQ' TO rAUFNR-OPTION,
'XXXX' TO rAUFNR-LOW.
APPEND rAUFNR.
*將工單號碼加入Range
*找到2007/1, 有原料耗用科目的工單, 加入Range
SELECT * FROM GLPCA WHERE RYEAR = '2007' AND
POPER = '1' AND
RACCT = '4101010100'.
"若沒有加入Range的, 才加入
IF GLPCA-AUFNR IN rAUFNR.
ELSE.
rAUFNR-SIGN = 'I'.
rAUFNR-OPTION = 'EQ'.
rAUFNR-LOW = GLPCA-AUFNR.
APPEND rAUFNR.
ENDIF.
ENDSELECT.
*使用Range
*訂單物料異動檔(AUFM), 找到剛剛篩選的工單
SELECT * FROM AUFM WHERE AUFNR in rAUFNR. "只要使用IN, 不需要寫一堆OR
IF AUFM-SHKZG = 'S'.
INV_PROFIT = INV_PROFIT + AUFM-DMBTR.
ELSE.
INV_PROFIT = INV_PROFIT - AUFM-DMBTR.
ENDIF.
ENDSELECT.
既然可以由 SAP下載檔案,當然也有對應的檔案上傳的功能
當我們需要將一些參數由PC傳送至SAP主機時,這功能就很實用了
DATA: FNAME(128), FTYPE(3), FSIZE TYPE I.
*儲存資料
DATA: BEGIN OF i_Data OCCURS 10,
CATA(30) TYPE C,
HSL TYPE P,
END OF i_GLPCT.
*檔案上傳
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\Upload\U_file.txt' "U_file.txt 要以Tab間隔
FILETYPE = 'DAT'
ITEM = '對照表檔案上傳'
IMPORTING
ACT_FILENAME = FNAME
ACT_FILETYPE = FTYPE
FILESIZE = FSIZE
TABLES
DATA_TAB = i_Data
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3.
當我們要將Internal table的資料 dump 至用戶的電腦上
我們可以下列寫法, 呼叫 Download..
DATA: FNAME(128), FTYPE(3), FSIZE TYPE I.
*欄位文字
data: begin of i_column occurs 0,
hd(50) type c,
end of i_column.
*儲存資料
DATA: BEGIN OF i_Data OCCURS 10,
CATA(30) TYPE C,
HSL TYPE P,
END OF i_GLPCT.
*欄位名稱輸入
move '類別' to i_column-hd. append i_column.
move '金額' to i_column-hd. append i_column.
*呼叫下載FUNCTUIN
CALL FUNCTION 'DOWNLOAD'
EXPORTING
FILENAME = 'C:\FileName.XLS'
FILETYPE = 'DAT'
ITEM = ' 下載 '
IMPORTING
ACT_FILENAME = FNAME
ACT_FILETYPE = FTYPE
FILESIZE = FSIZE
TABLES
DATA_TAB = i_Data
FIELDNAMES = i_column
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3.
補充一下, 如果將 IMPORTING段的程式碼刪除, 就不會再執行中, 一直詢問檔案名稱
如果一次會下載大量的檔案, 或者檔案名稱及位置都已經固定, 則這個關閉功能是很實用的