BADI ME_CHANGE_OUTTAB_CUS可以增加字段,但是需要激活一個什麼鬼東西才能使用。
使用隱式增強。
- 在INCLUDE程序 LMEREPI03中,找到METHOD GET_DATA。
- DEBUG看到ME28時EX_STRUCTNAME的值爲 MEREP_OUTTAB_PURCHDOC_REL,SE11找到此結構,附加字段
附加字段應該ZZ開頭,此處注意 - 插入代碼
- 代碼:
*增加含稅價
IF SY-TCODE = 'ME28'.
DATA:
L_KBETR TYPE T007V-KBETR, "稅率
L_BRTWR TYPE EKPO-BRTWR, "含稅金額
L_MENGE TYPE EKPO-MENGE. "訂單數量
FIELD-SYMBOLS:
<LS_TAB> TYPE ANY, "工作區
<L_TAB_EBELN> TYPE ANY,
<L_TAB_EBELP> TYPE ANY,
<L_TAB_ZHSDJ> TYPE ANY, "含稅單價
<L_TAB_MWSKZ> TYPE ANY, "稅碼
<L_TAB_NETPR> TYPE ANY, "淨價
<LT_TAB> TYPE STANDARD TABLE.
BREAK 071754.
ASSIGN ex_table_ref->* TO <LT_TAB>.
LOOP AT <LT_TAB> ASSIGNING <LS_TAB>.
CLEAR:L_BRTWR,L_MENGE, L_KBETR.
* ASSIGN COMPONENT 'EBELN' OF STRUCTURE <LS_TAB> TO <L_TAB_EBELN>.
* ASSIGN COMPONENT 'EBELP' OF STRUCTURE <LS_TAB> TO <L_TAB_EBELP>.
ASSIGN COMPONENT 'ZHSDJ' OF STRUCTURE <LS_TAB> TO <L_TAB_ZHSDJ>.
ASSIGN COMPONENT 'MWSKZ' OF STRUCTURE <LS_TAB> TO <L_TAB_MWSKZ>.
ASSIGN COMPONENT 'NETPR' OF STRUCTURE <LS_TAB> TO <L_TAB_NETPR>.
*第一種算法:含稅金額除以數量
* SELECT SINGLE BRTWR MENGE
* INTO (L_BRTWR,L_MENGE)
* FROM EKPO
* WHERE EBELN = <L_TAB_EBELN> AND EBELP = <L_TAB_EBELP>.
* <L_TAB_ZHSDJ> = L_BRTWR / L_MENGE.
*第二種:淨價乘以稅率
SELECT SINGLE KBETR
INTO L_KBETR
FROM T007V
WHERE T007V~MWSKZ = <L_TAB_MWSKZ> AND T007V~ALAND = 'CN'.
<L_TAB_ZHSDJ> = <L_TAB_NETPR> * ( 1 + L_KBETR / 1000 ).
ENDLOOP.
ENDIF.