abap取销售订单价格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
TABLES: NAST, TNAPR, LIKP, KNA1, ADR2, VBAK, KONV. DATA LV_KNUMV TYPE VBAK-KNUMV. SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF TABLE LT_LIPS WHERE VBELN = VBELN. 如果交货类型LIKP-LFART是NLCC,取LIPS-VGBEL,LIPS-VGPOS,根据这两个值取EKPO-NETPR *否则,根据交货单取订单VBAP-CMPRE IF LW_LIKP-LFART = 'NLCC'. SELECT SINGLE * FROM EKPO INTO CORRESPONDING FIELDS OF LW_EKPO WHERE EBELN = LS_LIPS-VGBEL AND EBELP = LS_LIPS-VGPOS. IF SY-SUBRC = 0. IF LW_LIPS-WERKS = 'HK00'. LS_ITEM-CMPRE = LW_EKPO-NETPR / LW_EKPO-PEINH. ELSEIF LW_LIPS-WERKS = '1100'. LS_ITEM-CMPRE = LW_EKPO-NETPR / LW_EKPO-PEINH * '1.17' . LS_ITEM-NETPR = LW_EKPO-NETPR. LS_ITEM-PEINH = LW_EKPO-PEINH. "ls_item-WAERS = lw_ekpo-WAERS. ELSEIF LW_LIPS-WERKS = '1200'. LS_ITEM-CMPRE = LW_EKPO-NETPR / LW_EKPO-PEINH * '1.17' . LS_ITEM-NETPR = LW_EKPO-NETPR. LS_ITEM-PEINH = LW_EKPO-PEINH. "ls_item-WAERS = lw_ekpo-WAERS. ENDIF. ENDIF. ELSE. SELECT SINGLE * FROM VBAP INTO CORRESPONDING FIELDS OF LW_VBAP WHERE VBELN = LS_LIPS-VGBEL AND POSNR = LS_LIPS-VGPOS. IF SY-SUBRC = 0. IF LW_VBAP-CMPRE NE 0. LS_ITEM-CMPRE = LW_VBAP-CMPRE. "普通销售订单. ELSE. "寄售补货订单在VBAP中是没有价格、信贷额字段的值的,需要根据SO单独去取条件表. "vbak-knumv = konv-knumv. "function:KONV_ARRAY_READ. CLEAR:LV_KNUMV,LS_ITEM-CMPRE. SELECT SINGLE KNUMV INTO LV_KNUMV FROM VBAK WHERE VBELN = LS_LIPS-VGBEL. SELECT SINGLE KBETR INTO LS_ITEM-CMPRE FROM KONV WHERE KNUMV = LV_KNUMV AND KPOSN = LS_LIPS-VGPOS. ENDIF. ENDIF. ENDIF. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/553.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。