2007-03-12

SAP:Range的應用

使用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.

沒有留言: