一個行項目的定價資料存在内表xkomv中,程式loop xkomv,判斷xkomv-kofrm,如果配置了例程,執行例程的處理邏輯。
建立例程,比如901-輕按兩下,修改程式後,激活程式,激活例程(選中行,在菜單上有激活),業務配置條件類型和定價例程的對應關系就行。
一個例程隻對應一種條件類型,是以修改的單價和總金額都是這種條件類型的
可以在前台看到條件類型關聯的例程
例子(從600copy過來的改内表的應該都不規範)
*{ INSERT DEVK900694 1
when 'ZFR1'.
xkwert = LS_xkomv1-kwert + LS_xkomv2-kwert. "子越配置成負的了,直接加
read table xkomv into LS_xkomv2 WITH key kschl = 'ZA02'.
read table xkomv into LS_xkomv1 with key kschl = 'Z003'.
read table xkomv into LS_xkomv2 with key kschl = 'ZA04'.
read table xkomv into LS_xkomv1 WITH key kschl = 'Z005'.
read table xkomv into LS_xkomv2 with key kschl = 'ZA06'.
read table xkomv into LS_xkomv1 with key kschl = 'Z007'.
read table xkomv into LS_xkomv2 with key kschl = 'ZA08'.
ENDFORM.
1.根據日期調整定價(更新單價和機關)
*** 注意 : ***
*{ INSERT HSDK901167 2
ls_komk TYPE komk,
ls_ekko TYPE ekko.
SELECT SINGLE ekko~bsart INTO CORRESPONDING FIELDS OF ls_ekko
WHERE lips~vbeln = komp-vgbel and lips~posnr = komp-vgpos.
* SELECT SINGLE vkorg INTO ls_komp-werks
* SELECT SINGLE lifnr INTO ls_komk-lifnr
ls_komk-reswk = komk-vkorg. "發出工廠
EXPORTING
komp = ls_komp
EXCEPTIONS
kschl_not_found = 3
IF ls_komv-krech CA 'AHIKJ'. "百分比等
xkomv-kbetr = ls_komv-kbetr.
ENDLOOP.
ENDIF.
*\ xkwert = komp-netwr.
kotabnr LIKE t682i-kotabnr, "表名
qufna LIKE t682z-qufna,
kotabnr LIKE t682i-kotabnr,
END OF lt_talbes.
( komk IS INITIAL AND komp IS INITIAL ) .
SELECT SINGLE * INTO wa_t685 FROM t685 "條件類型擷取存取順序
kschl = kschl.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_682
t682i~kozgf = t682z~kozgf AND
t682i~kappl = kappl AND
ORDER BY t682i~kolnr.
lt_talbes-kotabnr = lt_682-kotabnr.
CLEAR wherestr.
lt_682-qustr '-' lt_682-qufna ` AND `
* SHIFT wherestr RIGHT DELETING TRAILING 'AND ' .
SELECT SINGLE knumh INTO lt_talbes-knumh
kschl = kschl AND
(wherestr).
FROM konp
EXIT.
RAISE not_found.
ENDFUNCTION.
FORM FRM_KONDI_WERT_916.
*} INSERT
3.更新定價值(總金額)
*Z002寫入金額
include structure bapikomv.
vgpos like lips-vgpos,
import
xkwert = lt_con-cond_value / 100. "沒有固定點算術