SD 送货清单报表
来源:互联网 发布:mac过热保护 编辑:程序博客网 时间:2024/04/30 02:30
text symbol
002 总览 4 4
003 明细 4 4
selection text
P_BUKRS ?...
P_WERKS ?...
S_ERDAT 创建日期
S_ERNAM 制单人
S_FKSTK 开票状态
S_KUNAG 售达方
S_KUNNR 送达方
S_LFART 交货类型
S_MATKL 物料组
S_REGIO 区域
S_VBELN 发货单号
S_VKBUR 销售办公室
S_VKORG 销售组织
S_WADAT 实际发货日期
S_WBSTK 过帐状态
source code
*& 修改日期:2010.06.13
*& 修 改 人:zhouxu V1.1
*& 修改原因:1 显示ZK07和ZK05的折扣原因
*& 修改日期:2010.08.23
*& 修 改 人:zhouxu V1.2
*& 修改原因:1 销售办事处BUG处理。
REPORT ysdr0017bak MESSAGE-ID ysd
LINE-COUNT 65(14)
LINE-SIZE 154
NO STANDARD PAGE HEADING.
INCLUDE ysdalv.
TABLES: vbak, "销售订单抬头
vbap, "销售订单项目
likp, "交货单抬头
lips, "交货单项目
vbfa, "单据流
vbpa, "合作伙伴
mara, "物料主数据
makt, "物料描述
t001l, "仓库描述
t001w, "工厂描述
tvkot, "分公司描述
kna1, "客户描述
ekko, "采购订单抬头
ekpo, "采购订单项目
konv, "条件(事务数据)
marm, "物料的计量单位
tvakt, "销售凭证类型 : 文本
adrp, "个人(办公地址管理)
usr21,
vbuk,
vbep,
vbrp,
knvv,
t171t,
tvkbt,
knvk,
vbkd."销售凭证 : 业务数据
*****定义抬头数据内表
DATA: BEGIN OF i_title_data OCCURS 0,
vbeln LIKE likp-vbeln, "交货单号码
vbelv LIKE vbak-vbeln, "销售订单
vdatu LIKE vbak-vdatu, "请求交货日期kaijunli
erdat LIKE likp-erdat, "发货单创建日期
wadat_ist LIKE likp-wadat_ist, "计划货物移动日期
erdat1 LIKE likp-erdat, "订单日期
lfart LIKE likp-lfart, "单据类别
kunnr LIKE likp-kunnr, "送达方
kunag LIKE likp-kunag, "售达方kaijunli
adrnr LIKE kna1-adrnr, "地址编号
telfx LIKE kna1-telfx, "传真号码
vkorg LIKE likp-vkorg, "销售组织"即产业1010电工产业1020照明产业add by LKj 2008/10/20
changye(10) TYPE c, "产业
str_suppl1 LIKE adrc-str_suppl1, "送货地址
name1(60) TYPE c, "商家名称售达方
name5(60) TYPE c, "送达方kaijunli
sedto(80) TYPE c, "收货单位
addrs(80) TYPE c, "收货地址
pannr(20) TYPE c, "联系人
auart LIKE vbak-auart, "订单类型
bezei LIKE tvakt-bezei, "订单类型描述
fkstk LIKE vbuk-fkstk, "开票状态
fkstt(12),
wbstk LIKE vbuk-wbstk, "发货过账状态
cmgst LIKE vbuk-cmgst, "交货单信贷支票的总状态"A表示通过"其它不通过add by LKj 2008/11/27
cmgstx(100) TYPE c,
wbstt(12),
lifnr LIKE knvp-lifnr, "货运站的名称
text1 LIKE lfa1-telf1, "货运站电话
text3 LIKE lfa1-name1, "货运站名称
text5 LIKE lfa1-stras, "货运站地址
telef(20) TYPE c, "联系电话
text2(60), "付运费方式
text4(60), "备注
page TYPE i, "页数
ernam LIKE likp-ernam, "创建对象的人员名称
name2(10) TYPE c, "制单人
netwr TYPE p DECIMALS 2, "结算金额
regio LIKE kna1-regio, "地区
spart LIKE knvv-spart, "产品组
vtweg LIKE knvv-vtweg, "分销渠道
vkbur LIKE knvv-vkbur, "办事处
bezeii LIKE tvkbt-bezei, "办事处描述
bzirk LIKE knvv-bzirk, "销售地区
bztxt LIKE t171t-bztxt,"销售地区描述
kpein LIKE vbap-kpein," 价格单位数 add by kevin 2009/06/22
waers LIKE konv-waers, "订单币别
kbetr19 LIKE konv-kbetr, "订单本位金额
kbetr20 LIKE konv-kbetr, "订单总计金额
zhekoo LIKE konv-kbetr,"物价金额
waers2(3) TYPE c, "本位币别
bstkd LIKE vbkd-bstkd, "销售订单文本
bezei1 LIKE tvm1t-bezei, "物料定价组--品牌
kwmeng LIKE vbap-kwmeng, "以销售单位计的订单数量
kwmengx LIKE vbap-kwmeng,"以基本单位计的订单数量
kbetr LIKE konv-kbetr,
lgmng LIKE lips-lgmng,
kvgr5 LIKE vbak-kvgr5, " V1.1 折扣原因
yyms TYPE string, "V1.1 原因描述
END OF i_title_data.
*****定义行数据内表
DATA: BEGIN OF i_item_data OCCURS 0,
vbeln LIKE likp-vbeln, "交货单
posnr LIKE lips-posnr, "项目号
erdat LIKE likp-erdat, "发货单创建日期
erdat1 LIKE likp-erdat,
wadat_ist LIKE likp-wadat_ist, "实际发货日期lkj所属时期
wadat_ist2(6) TYPE c, "所属日期6位lkj
vkorg LIKE likp-vkorg, "销售组织"即产业1010电工产业1020照明产业add by LKj 2008/10/20
changye(10) TYPE c, "产业
cmgst LIKE vbuk-cmgst, "交货单信贷支票的总状态 add by LKj 2008/11/27
cmgstx(100) TYPE c, "交货单信贷支票的总状态,文本
mvgr1 LIKE mvke-mvgr1, "品牌add by LKj 2008/10/20
bezei1 LIKE tvm1t-bezei, "品牌的中文显示add by LKj 2008/10/20
kunnr LIKE likp-kunnr, "送达方
kunag LIKE likp-kunag, "售达方kaijunli
knprs LIKE konv-knprs, "条件定价单位
kumza LIKE konv-kumza, "从条件单位到基准单位转换的分子
umvkz LIKE vbap-umvkz,
umziz LIKE vbap-umziz,
umzin LIKE vbap-umzin,
name1(60) TYPE c, "商家名称售达方
name5(60) TYPE c, "送达方kaijunli
matnr LIKE mara-matnr, "物料号码
bismt LIKE mara-bismt,
maktx LIKE makt-maktx, "物料描述
matkl LIKE lips-matkl, "物料组
brgew LIKE lips-brgew, "毛重kaijunli
gewei LIKE lips-gewei, "重量单位kaijunli
volum LIKE lips-volum, "业务量kaijunli
voleh LIKE lips-voleh, "体积单位kaijunli
kwmeng LIKE vbap-kwmeng, "以销售单位计的订单数量
kwmengx LIKE vbap-kwmeng,"以基本单位计的订单数量
wgbez LIKE t023t-wgbez,
spart LIKE tspat-spart,
vtext LIKE tspat-vtext,
meins LIKE lips-meins, "单位
kbetr TYPE p DECIMALS 7, "单价
kzwi1 LIKE vbap-kzwi1, "项目小计
kbetr1 LIKE konv-kbetr, "折扣1
kbetr2 LIKE konv-kbetr, "折扣2
netwr2 TYPE p DECIMALS 2, "折扣金额1/2 add by LKJ 2009/02/24
netwr3 TYPE p DECIMALS 2, "折扣金额1/2 add by LKJ 2009/02/24
kbetr9 LIKE konv-kbetr, "折扣金额ZK09 add by FOK 2009/12/15
kbetr4 LIKE konv-kbetr, "ZK04-ZK07-ZK08
kbetr5 LIKE konv-kbetr, "ZK05-ZK06
netwr9 TYPE p DECIMALS 2, "折扣金额ZK09 add by FOK 2009/12/15
netwr4 TYPE p DECIMALS 2, "折扣金额4/7 add by LKJ 2009/02/24
netwr5 TYPE p DECIMALS 2, "退货折点金额 3 add by kevin 2009/06/23
lfimg TYPE p DECIMALS 2, "交货件数
vgbel LIKE lips-vgbel, "订单号码
auart LIKE vbak-auart, "订单类型
vdatu LIKE vbak-vdatu, "请求交货日期kaijunli
edatu LIKE vbep-edatu, "销售订单的计划行日期,即首个交货日期 add by lkj 2008/12/19
bezei LIKE tvakt-bezei, "订单类型描述
vgpos LIKE lips-vgpos, "参考凭证项目号
cmpre TYPE p DECIMALS 7, "净价值
lgmng TYPE p DECIMALS 2,
lgmngx TYPE p DECIMALS 2,
netwr TYPE p DECIMALS 2, "结算金额
vrkme LIKE lips-vrkme, "销售单位
netwr1 TYPE p DECIMALS 2,
name2(10) TYPE c, "制单人
rebate1(8), "回扣1
rebate2(8), "回扣2
rebate4(8), "回扣ZK04-ZK07
zheko9(8),
zheko(8),
zheko4(8),
zheko5(8),
zhekoo LIKE konv-kbetr,"物价金额
vtweg LIKE knvv-vtweg,"分销渠道 add v1.2
regio LIKE kna1-regio, "地区
vkbur LIKE knvv-vkbur, "办事处
bezeii LIKE tvkbt-bezei, "办事处描述
bzirk LIKE knvv-bzirk, "销售地区
bztxt LIKE t171t-bztxt,"销售地区描述
lifnr LIKE knvp-lifnr, "货运站的名称
text1 LIKE lfa1-telf1, "货运站电话
text3 LIKE lfa1-name1, "货运站名称
text5 LIKE lfa1-stras, "货运站地址
pannr(20) TYPE c, "联系人
kpein LIKE vbap-kpein," 价格单位数 add by kevin 2009/06/22
* waers like konv-waers, "订单币别
kbetr19 LIKE konv-kbetr, "订单本位金额
kbetr20 LIKE konv-kbetr, "订单总计金额
waers2(3) TYPE c, "本位币别
bstkd LIKE vbkd-bstkd, "销售订单文本
waerk LIKE vbak-waerk, "订单币别
bbezei LIKE tvm1t-bezei, "物料定价组--品牌
kvgr5 LIKE vbak-kvgr5, " V1.1 折扣原因
yyms TYPE string, "V1.1 原因描述
END OF i_item_data.
DATA:BEGIN OF i_con OCCURS 0,
vbeln LIKE vbak-vbeln, "订单号码
posnr LIKE vbap-posnr, "订单项目号码
knumv LIKE vbak-knumv, "定价条件号码
netpr TYPE p DECIMALS 7, "净价值
END OF i_con.
DATA: wadat_ist1(6) TYPE c, "所属日期中间变量
volumx TYPE p DECIMALS 3, "体积换算
total2 TYPE p DECIMALS 7, "交货件数合计
total3 TYPE p DECIMALS 7, "交货数量合计
total4 TYPE p DECIMALS 4. "金额合计
DATA: g_lfimg TYPE i, "交货数量合计
g_page TYPE i, "页数
g_page01 TYPE p DECIMALS 7, "页数(计算)
g_line TYPE i , "项目数
total(50),
total1 TYPE p DECIMALS 7.
DATA: g_lines_had TYPE i VALUE 0, "计算有数据的行数
index TYPE i VALUE 0. "序号
DATA: g_lines_empty TYPE i VALUE 0. "要打印的空行数
DATA: kbetr LIKE konv-kbetr,
p_change LIKE konv-kbetr.
DATA: netwr(10).
DATA:netwr1 TYPE p DECIMALS 7,
netwr2 TYPE p DECIMALS 7,
netwr3 TYPE p DECIMALS 7.
DATA: name1(12). "制单人
DATA: params LIKE pri_params.
DATA: valid TYPE c.
DATA: datum LIKE sy-datum.
*****selection-screen***************************************************
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE tt1.
SELECT-OPTIONS: s_vkorg FOR likp-vkorg, "销售组织
s_regio FOR kna1-regio,
s_vkbur FOR knvv-vkbur,
s_vbeln FOR likp-vbeln,"OBLIGATORY, "交货单号码
s_lfart FOR likp-lfart,
s_kunag FOR likp-kunag, "售达方
s_kunnr FOR likp-kunnr, "送达方kaijuli
s_kunnr1 FOR likp-kunnr NO-DISPLAY, "ADD V1.2
s_erdat FOR likp-wadat_ist , "计划货物移动日期,实际发货过账日期
s_wadat FOR likp-wadat_ist,
* p_spart FOR vbrp-spart,
s_ernam FOR usr21-bname, "创建者
s_fkstk FOR vbuk-fkstk, "开票状态
s_wbstk FOR vbuk-wbstk, "过帐状态
* S_BUCHK FOR VBUK-BUCHK. "出具发票凭证的过账状态
s_matkl FOR lips-matkl. "物料组
SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE tt2.
SELECTION-SCREEN: BEGIN OF LINE.
PARAMETERS: p_bukrs RADIOBUTTON GROUP grp1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 3(6) text-002 FOR FIELD p_bukrs. "总览
PARAMETERS: p_werks RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT 22(6) text-003 FOR FIELD p_werks. "明细
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN END OF BLOCK bl2.
INITIALIZATION.
AUTHORITY-CHECK OBJECT 'YREPORT'
ID 'BUKRS' FIELD 'HL01'
ID 'WERKS' FIELD 'LN01'.
IF sy-subrc NE 0.
MESSAGE e005(ymess) WITH 'No Authorization!'.
ENDIF.
AT SELECTION-SCREEN.
PERFORM sub_check_data.
START-OF-SELECTION.
PERFORM sub_get_item_data TABLES i_title_data "读取数据
i_item_data.
END-OF-SELECTION.
PERFORM i_item_data_hui.
PERFORM frm_change_dignn.
PERFORM sub_process_data TABLES i_title_data "处理数据
i_item_data.
IF p_bukrs = 'X'.
PERFORM sub_title_data.
ELSEIF p_werks = 'X'.
PERFORM delete_data.
PERFORM sub_item_data.
ENDIF.
*&--------------------------------------------------------------------*
*& Form SUB_CHECK_DATA
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
*****检查数据输入
FORM sub_check_data.
* SELECT SINGLE l~vbeln FROM likp AS l
* INNER JOIN vbuk AS v ON l~vbeln = v~vbeln
* INTO likp-vbeln
* WHERE l~vbeln IN s_vbeln
* AND l~vkorg IN s_vkorg
* AND l~kunag IN s_kunag
* AND l~erdat IN s_erdat
* AND l~WADAT_IST IN S_WADAT
* AND l~ernam IN s_ernam
* AND l~lfart IN s_lfart
* AND v~fkstk IN s_fkstk
* AND v~wbstk IN s_wbstk.
* IF sy-subrc NE 0.
* MESSAGE e899 WITH '符合条件的交货单不存在,请检查输入'.
* ENDIF.
ENDFORM. "SUB_CHECK_DATA
*&--------------------------------------------------------------------*
*& Form SUB_GET_ITEM_DATA
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
*****获取行数据
FORM sub_get_item_data TABLES v_title_data STRUCTURE i_title_data
v_item_data STRUCTURE i_item_data.
IF s_fkstk-low = 'C'.
SELECT l~vbeln l~vkorg l~kunnr l~kunag l~werks l~bolnr l~wadat_ist
l~erdat l~wadat_ist l~wadat l~wauhr l~lfdat l~exnum l~lfart l~aenam l~ernam l~erdat
v~fkstk v~wbstk v~cmgst
m~vkbur m~bzirk
FROM likp AS l
INNER JOIN vbuk AS v ON l~vbeln = v~vbeln
INNER JOIN knvv AS m ON l~kunnr = m~kunnr
INTO CORRESPONDING FIELDS OF TABLE v_title_data
WHERE l~vbeln IN s_vbeln
AND l~vkorg IN s_vkorg
AND l~kunnr IN s_kunnr
AND l~kunag IN s_kunag
AND l~erdat IN s_erdat
AND l~wadat_ist IN s_wadat
AND l~ernam IN s_ernam
AND l~lfart IN s_lfart
AND m~vkbur IN s_vkbur
AND v~fkstk IN s_fkstk
AND v~wbstk IN s_wbstk.
CHECK NOT v_title_data[] IS INITIAL."""""""""""""""""""""""""""""""""???????????????
SELECT lips~vbeln lips~posnr lips~pstyv lips~matnr lips~lgort
lips~brgew lips~gewei lips~volum lips~voleh
lips~werks lfimg lips~charg lips~vgbel lips~vgpos likp~kunag likp~kunnr
lips~meins lgmng lips~vrkme lips~matkl lips~umvkz likp~vkorg likp~wadat_ist "取发货记账日期wadat_ist-lkj
vb~kpein vb~kwmeng vb~umziz vb~umzin
FROM lips
INNER JOIN vbrp ON vbrp~aubel = lips~vgbel
INNER JOIN likp ON likp~vbeln = lips~vbeln
INNER JOIN vbap AS vb ON vb~vbeln = lips~vgbel AND vb~posnr = lips~vgpos
INTO CORRESPONDING FIELDS OF TABLE v_item_data
FOR ALL ENTRIES IN v_title_data
WHERE lips~vbeln = v_title_data-vbeln AND lips~matkl IN s_matkl.
ELSE.
SELECT l~vbeln l~vkorg l~kunnr l~kunag l~werks l~bolnr l~wadat_ist
l~erdat l~wadat_ist l~wadat l~wauhr l~lfdat l~exnum l~lfart l~aenam l~ernam l~erdat
v~fkstk v~wbstk v~cmgst
m~bzirk m~spart m~vtweg "m~vkbur
FROM likp AS l
INNER JOIN vbuk AS v ON l~vbeln = v~vbeln
INNER JOIN knvv AS m ON l~kunnr = m~kunnr
INTO CORRESPONDING FIELDS OF TABLE v_title_data
WHERE l~vbeln IN s_vbeln
AND l~vkorg IN s_vkorg
AND l~kunnr IN s_kunnr
AND l~kunag IN s_kunag
AND l~erdat IN s_erdat
AND l~wadat_ist IN s_wadat
AND l~ernam IN s_ernam
AND l~lfart IN s_lfart
AND m~vkbur IN s_vkbur
AND v~fkstk IN s_fkstk
AND v~wbstk IN s_wbstk.
CHECK NOT v_title_data[] IS INITIAL.
SELECT lips~vbeln lips~posnr lips~pstyv lips~matnr lips~lgort
lips~brgew lips~gewei lips~volum lips~voleh
lips~werks lfimg lips~charg lips~vgbel lips~vgpos likp~kunag likp~kunnr
lips~meins lgmng lips~vrkme lips~matkl lips~umvkz likp~vkorg likp~wadat_ist "取发货记账日期wadat_ist-lkj
vb~kpein vb~kwmeng vb~umziz vb~umzin
FROM lips
INNER JOIN likp ON likp~vbeln = lips~vbeln
INNER JOIN vbap AS vb ON vb~vbeln = lips~vgbel AND vb~posnr = lips~vgpos
INTO CORRESPONDING FIELDS OF TABLE v_item_data
FOR ALL ENTRIES IN v_title_data
WHERE lips~vbeln = v_title_data-vbeln AND lips~matkl IN s_matkl.
ENDIF.
ENDFORM. "SUB_GET_DATA
*&---------------------------------------------------------------------*
*& Form sub_process_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_I_TITLE_DATA text
* -->P_I_ITEM_DATA text
*----------------------------------------------------------------------*
FORM i_item_data_hui.
LOOP AT i_item_data.
MOVE i_item_data-wadat_ist TO wadat_ist1.
* WRITE wadat_ist1+0(6) TO i_item_data-wadat_ist2. "订单发货过账日期取前6位
DATA: l_fiscper3 LIKE t009b-poper,
l_fiscyer LIKE t009b-bdatj,
c_fiscyer(4) TYPE c,
c_fiscper(3) TYPE c,
indate LIKE sy-datum.
CLEAR l_fiscper3.
CLEAR l_fiscyer.
CLEAR indate.
indate = i_item_data-wadat_ist.
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
EXPORTING
i_date = indate "Value in 0CALDAY (Calendar Day)
i_periv = 'Z1' "Value in 0FISCVARNT (Fiscal Year Variant)
IMPORTING
e_buper = l_fiscper3 "Value returned is 3 digit Fiscal Period
e_gjahr = l_fiscyer "Value returned is YYY format for Fiscal Year
EXCEPTIONS
input_false = 1
t009_notfound = 2
t009b_notfound = 3
OTHERS = 4.
c_fiscper = l_fiscper3.
c_fiscyer = l_fiscyer.
CONCATENATE c_fiscyer c_fiscper+1(2) INTO i_item_data-wadat_ist2.
CLEAR wadat_ist1.
******bstkd like vbkd-bstkd, "销售订单文本
SELECT SINGLE bstkd
INTO i_item_data-bstkd
FROM vbkd
WHERE vbeln = i_item_data-vgbel.
* and posnr = i_item_data-posnr.
*取物料的品牌add by LKJ 2008/10/20
SELECT SINGLE mvgr1
INTO i_item_data-mvgr1
FROM mvke
WHERE matnr = i_item_data-matnr
AND vkorg = i_item_data-vkorg.
*取物料的品牌add by LKJ 2008/10/20
SELECT SINGLE bezei
INTO i_item_data-bezei1
FROM tvm1t
WHERE mvgr1 = i_item_data-mvgr1.
i_item_data-bbezei = i_item_data-bezei1.
***************** append i_title_data.
***取送达方名称
SELECT SINGLE name1 FROM kna1 INTO i_item_data-name5 WHERE kunnr = i_item_data-kunnr.
SELECT SINGLE wgbez
INTO i_item_data-wgbez
FROM t023t
WHERE matkl = i_item_data-matkl.
SELECT SINGLE spart
INTO i_item_data-spart
FROM mara
WHERE matnr = i_item_data-matnr
AND matkl = i_item_data-matkl.
SELECT SINGLE vtext
INTO i_item_data-vtext
FROM tspat
WHERE spart = i_item_data-spart.
MODIFY i_item_data.
CLEAR i_item_data.
ENDLOOP.
ENDFORM. "I_ITEM_DATA_HUI
*&---------------------------------------------------------------------*
*& Form sub_process_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->V_TITLE_DATA text
* -->V_ITEM_DATA text
*----------------------------------------------------------------------*
FORM sub_process_data TABLES v_title_data STRUCTURE i_title_data
v_item_data STRUCTURE i_item_data.
DATA: i_lines LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: l_tdname LIKE thead-tdname.
DATA: knumh LIKE konv-knumh. "v1.1 条件记录号
DATA: kosrt LIKE konh-kosrt . "v1.1 查询条款
DATA: kzust LIKE konh-kzust. "v1.1 责任
*处理抬头数据
SORT v_title_data BY vbeln.
SORT v_item_data BY vbeln posnr.
*取办事处编码
LOOP AT v_title_data.
SELECT SINGLE vkbur
FROM knvv
INTO v_title_data-vkbur
WHERE vkorg = v_title_data-vkorg
AND vtweg = v_title_data-vtweg
AND spart = v_title_data-spart
AND kunnr = v_title_data-kunnr.
MODIFY v_title_data.
ENDLOOP.
LOOP AT v_title_data.
READ TABLE v_item_data WITH KEY vbeln = v_title_data-vbeln.
v_title_data-vbelv = v_item_data-vgbel.
* v_title_data-erdat = v_title_data-erdat + 1. "计算发货日期
SELECT SINGLE name1 name2 FROM kna1
INTO (kna1-name1, kna1-name2)
"取客户名称售达方
WHERE kunnr = v_title_data-kunag.
IF sy-subrc = 0.
CONCATENATE kna1-name1 kna1-name2 INTO v_title_data-name1.
ENDIF.
*去发货单开票,过账状态****************************************
*取客户名称地址售达方送达方--------------------
SELECT SINGLE name1 stras FROM kna1 INTO (v_title_data-sedto,
v_title_data-addrs) WHERE kunnr = v_title_data-kunag.
SELECT SINGLE name1 FROM kna1 INTO v_title_data-name5 WHERE kunnr = v_title_data-kunnr.
CLEAR knvk.
*销售大区名称
SELECT SINGLE bztxt
INTO v_title_data-bztxt
FROM t171t
WHERE bzirk = v_title_data-bzirk.
*取客户的承运方 add by LKJ 2008/12/18
SELECT SINGLE lifnr
FROM knvp
INTO v_title_data-lifnr
WHERE knvp~kunnr = v_title_data-kunnr AND
knvp~parvw = 'SP'. "CR货运站的合作伙伴功能标记是SP,不是CR
*取客户的货运站名称、地址和电话 add 2008/12/18 LKJ
SELECT SINGLE name1 stras telf1
FROM lfa1
INTO (v_title_data-text3,v_title_data-text5,v_title_data-text1)
WHERE lfa1~lifnr = v_title_data-lifnr.
***取办事处名称
SELECT SINGLE bezei
INTO v_title_data-bezeii
FROM tvkbt
WHERE vkbur = v_title_data-vkbur.
* 制单人姓名------------------------------------------------
SELECT SINGLE name_last name_first FROM adrp
INNER JOIN usr21 ON usr21~persnumber = adrp~persnumber
INTO (adrp-name_last,adrp-name_first)
WHERE usr21~bname = v_title_data-ernam.
IF sy-subrc = 0.
CONCATENATE adrp-name_last adrp-name_first INTO v_title_data-name2.
ENDIF.
*取联系人姓名-----------------------------------------------------
SELECT SINGLE * FROM knvk WHERE kunnr = v_title_data-kunnr.
* CONCATENATE knvk-name1 knvk-namev INTO v_title_data-pannr.
CONCATENATE knvk-namev knvk-name1 INTO v_title_data-pannr.
CLEAR knvk.
*取订单类型------------------------------------------------------
SELECT SINGLE bezei
FROM tvakt
INNER JOIN vbak ON vbak~auart = tvakt~auart
INTO v_title_data-bezei
WHERE vbak~vbeln = v_item_data-vgbel
AND tvakt~spras = '1'.
***取销售订单请求交货日期
SELECT SINGLE vdatu
FROM vbak
INTO v_title_data-vdatu
WHERE vbak~vbeln = v_item_data-vgbel.
* 处理项目数据
LOOP AT v_item_data WHERE vbeln = v_title_data-vbeln.
*换算体积单位,单位是CM3的转成M3
IF v_item_data-voleh = 'CCM'.
volumx = v_item_data-volum.
v_item_data-volum = volumx / 1000000.
v_item_data-voleh = 'M3'.
ENDIF.
CLEAR volumx.
*取计划行交货日期 add 2008/12/22 LKJ
SELECT SINGLE edatu
FROM vbep
INTO v_item_data-edatu
WHERE vbeln = v_item_data-vgbel AND
posnr = v_item_data-vgpos.
*如果为退货的交货单,把数量和金额取负值--------------------------------
IF v_title_data-lfart = 'LR'.
v_item_data-lfimg = 0 - v_item_data-lfimg.
v_item_data-lgmng = 0 - v_item_data-lgmng.
ENDIF.
*-----------------------------------------------------------------------
SELECT SINGLE bezei
FROM tvakt
INNER JOIN vbak ON vbak~auart = tvakt~auart
INTO v_item_data-bezei
WHERE vbak~vbeln = v_item_data-vgbel
AND tvakt~spras = '1'.
SELECT SINGLE vbak~knumv vbap~posnr
INTO (i_con-knumv, i_con-posnr)
FROM vbak
INNER JOIN vbap ON vbak~vbeln = vbap~vbeln
WHERE vbak~vbeln = v_item_data-vgbel
AND vbap~posnr = v_item_data-vgpos.
* 原始订单金额-------------------------------------------------------------------------
SELECT SINGLE kwert kumza knprs FROM konv
INTO (v_item_data-kbetr20,v_item_data-kumza,v_item_data-knprs)
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'PR01'.
IF sy-subrc = 0.
v_item_data-zheko = 'PR01'.
ELSE.
SELECT SINGLE kwert kumza knprs FROM konv
INTO (v_item_data-kbetr20,v_item_data-kumza,v_item_data-knprs)
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'PR03'.
IF sy-subrc = 0.
v_item_data-zheko = 'PR03'.
ENDIF.
ENDIF.
***************************************************
IF v_title_data-vkorg <> 'L001' AND v_title_data-vkorg <> 'L002'.
IF sy-subrc = 0.
IF v_item_data-knprs NE 'PCS'.
v_item_data-kbetr = v_item_data-kbetr / v_item_data-kumza.
ENDIF.
IF v_item_data-vrkme = 'PCS'.
v_item_data-netwr = v_item_data-lfimg * v_item_data-kbetr / v_item_data-umvkz.
ELSE.
v_item_data-netwr = v_item_data-lfimg * v_item_data-kbetr.
ENDIF.
ENDIF.
IF v_item_data-kpein > 1 .
v_item_data-netwr = v_item_data-netwr / v_item_data-kpein.
ENDIF.
*抓取折扣1-------------------------------------------------------------
SELECT SINGLE kwert FROM konv
INTO v_item_data-kbetr1
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK02'
AND kinak NE 'A'.
IF sy-subrc = '0'.
v_item_data-zheko = 'ZK02'.
netwr = v_item_data-kbetr1.
ELSE.
SELECT SINGLE kwert FROM konv
INTO v_item_data-kbetr1
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK01'
AND kinak NE 'A'.
IF sy-subrc = '0'.
v_item_data-zheko = 'ZK01'.
ENDIF.
netwr = v_item_data-kbetr1.
ENDIF.
*抓取折扣zk05-zk06--add by LKJ 2009/04/09--------------------------------------------
SELECT SINGLE kwert FROM konv
INTO v_item_data-kbetr5
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK05'
AND kinak NE 'A'.
IF sy-subrc = '0'.
v_item_data-zheko = 'ZK05'.
netwr = v_item_data-kbetr5.
ELSE.
SELECT SINGLE kwert FROM konv
INTO v_item_data-kbetr5
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK06'
AND kinak NE 'A'.
IF sy-subrc = '0'.
v_item_data-zheko = 'ZK06'.
ENDIF.
netwr = v_item_data-kbetr5.
ENDIF.
*抓取订单折扣zk09--add by FXL 2009/12/15-----zkbetr8,9-----------netwr8,9-----zheko8,9-------------------
SELECT SINGLE kwert FROM konv
INTO v_item_data-kbetr9
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK09'
AND kinak NE 'A'.
IF sy-subrc = '0'.
v_item_data-zheko9 = 'ZK09'.
ENDIF.
*抓取折扣zk04-zk07--add by LKJ 2008/10/20-------------ZK08 2009/12/16---------------
DATA:kbetr4 LIKE v_item_data-kbetr4.
CLEAR kbetr4.
SELECT kwert FROM konv
INTO kbetr4
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK04'
AND kinak NE 'A'
AND kwert <> 0.
v_item_data-kbetr4 = v_item_data-kbetr4 + kbetr4.
ENDSELECT.
IF sy-subrc = '0'.
v_item_data-zheko4 = 'ZK04'.
netwr = v_item_data-kbetr4.
ELSE.
CLEAR kbetr4.
SELECT kwert FROM konv
INTO kbetr4
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK07'
AND kinak NE 'A'
AND kwert <> 0.
v_item_data-kbetr4 = v_item_data-kbetr4 + kbetr4.
ENDSELECT.
IF sy-subrc = '0'.
v_item_data-zheko4 = 'ZK07'.
ELSE.
* 返利折扣金额ZK08-----------------------------
CLEAR: knumh,kosrt,kzust. "v1.1
SELECT SINGLE kwert knumh FROM konv
INTO (v_item_data-kbetr4,knumh)
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK08'
AND kinak NE 'A'.
IF sy-subrc = '0'.
v_item_data-zheko4 = 'ZK08'.
ENDIF.
ENDIF.
ENDIF.
* --------------Begin V1.1 折扣原因----------------------------------------------
IF v_item_data-zheko4 = 'ZK04' OR v_item_data-zheko4 = 'ZK07'.
SELECT SINGLE kvgr5 FROM vbak
INTO v_item_data-kvgr5
WHERE vbeln = v_item_data-vgbel.
SELECT SINGLE bezei FROM tvv5t
INTO v_item_data-yyms
WHERE kvgr5 = v_item_data-kvgr5 AND spras = sy-langu.
ELSEIF v_item_data-yyms IS INITIAL.
SELECT SINGLE kosrt kzust FROM konh
INTO (kosrt,kzust)
WHERE knumh = knumh .
* IF sy-subrc = 0 .
SELECT SINGLE vtext FROM t686d
INTO v_item_data-yyms
WHERE kzust = kzust AND spras = sy-langu.
CONCATENATE v_item_data-yyms kosrt INTO v_item_data-yyms SEPARATED BY space.
ENDIF.
*抓取折扣2-------------------------------------------------------------
SELECT SINGLE kwert FROM konv
INTO v_item_data-kbetr2
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'ZK03'
AND kinak NE 'A'.
IF sy-subrc = '0'.
v_item_data-zheko5 = 'ZK03'.
v_item_data-netwr5 = v_item_data-kbetr2.
ENDIF.
*特价金额 = ZK01/ZK02/ZK03/ZK05/ZK06 + ZK04/ZK07/ZK08 + ZK09 ---------------
v_item_data-zhekoo = v_item_data-kbetr2 + v_item_data-kbetr4 + v_item_data-kbetr9 + v_item_data-kbetr5 + v_item_data-kbetr1."特价金额
*订单总金额------
v_item_data-kbetr20 = v_item_data-kbetr20 + v_item_data-zhekoo.
*抓取单价-------------------------------------------------------------
v_item_data-kbetr = v_item_data-kbetr20 / v_item_data-kwmeng.
IF v_item_data-vrkme NE 'PCS'.
v_item_data-kwmengx = v_item_data-kwmeng * ( v_item_data-umziz / v_item_data-umzin ).
ELSE.
v_item_data-kwmengx = v_item_data-kwmeng.
ENDIF.
v_item_data-kbetr20 = v_item_data-kbetr20 * v_item_data-lgmng / v_item_data-kwmengx."实际交货金额
*-----各折扣算法------------
v_item_data-kbetr1 = v_item_data-kbetr1 * v_item_data-lgmng / v_item_data-kwmeng.
v_item_data-kbetr5 = v_item_data-kbetr5 * v_item_data-lgmng / v_item_data-kwmeng.
v_item_data-kbetr9 = v_item_data-kbetr9 * v_item_data-lgmng / v_item_data-kwmeng.
v_item_data-kbetr4 = v_item_data-kbetr4 * v_item_data-lgmng / v_item_data-kwmeng.
v_item_data-kbetr2 = v_item_data-kbetr2 * v_item_data-lgmng / v_item_data-kwmeng.
IF v_item_data-kbetr1 EQ 0.
v_item_data-kbetr1 = v_item_data-kbetr5.
ENDIF.
IF netwr1 = 100.
netwr = '0'.
ELSE.
netwr = netwr1.
CONCATENATE netwr '%' INTO netwr.
ENDIF.
CONDENSE netwr NO-GAPS.
v_item_data-rebate2 = netwr.
ELSEIF v_title_data-vkorg = 'L001' OR v_title_data-vkorg = 'L002'.
SELECT SINGLE kbetr kumza knprs FROM konv
INTO (v_item_data-kbetr,v_item_data-kumza,v_item_data-knprs)
WHERE knumv = i_con-knumv
AND kposn = i_con-posnr
AND kschl = 'PR00'.
IF sy-subrc = 0.
IF v_item_data-knprs NE 'PCS'.
v_item_data-kbetr = v_item_data-kbetr / v_item_data-kumza.
ENDIF.
IF v_item_data-vrkme = 'PCS'.
v_item_data-netwr = v_item_data-lfimg * v_item_data-kbetr / v_item_data-umvkz.
ELSE.
v_item_data-netwr = v_item_data-lfimg * v_item_data-kbetr.
ENDIF.
ENDIF.
ENDIF.
*添加交货单信贷状态 add by LKJ 2008/11/27
IF v_title_data-cmgst = ''.
v_title_data-cmgstx = '信用检查未执行/状态未设置'.
ELSEIF v_title_data-cmgst = 'A'.
v_title_data-cmgstx = '信用检查已完成, 单据完备'.
ELSEIF v_title_data-cmgst = 'B'.
v_title_data-cmgstx = '信用检查已完成, 单据不完备'.
ELSEIF v_title_data-cmgst = 'C'.
v_title_data-cmgstx = '信用检查已完成,单据不完备,部分批准'.
ELSEIF v_title_data-cmgst = 'D'.
v_title_data-cmgstx = '信贷代表批准的单据'.
ELSE.
v_title_data-cmgstx = '未知...'.
ENDIF.
*加产业add by LKJ 2008/10/20
IF v_title_data-vkorg = '1010'.
v_title_data-changye = '电工产业'.
ELSEIF v_title_data-vkorg = '1020'.
v_title_data-changye = '照明产业'.
ELSE.
v_title_data-changye = ''.
ENDIF.
SELECT SINGLE * FROM marm WHERE matnr = v_item_data-matnr AND meinh NE 'PCS'.
v_item_data-lgmngx = v_item_data-lgmng * ( marm-umren / marm-umrez ).
v_item_data-kunnr = v_title_data-kunnr.
v_item_data-cmgst = v_title_data-cmgst.
v_item_data-cmgstx = v_title_data-cmgstx. "把抬头数据放到项目明细中,信贷,产业lkj
v_item_data-changye = v_title_data-changye.
v_item_data-pannr = v_title_data-pannr.
v_item_data-lifnr = v_title_data-lifnr. "货运站的名称
v_item_data-text1 = v_title_data-text1. "货运站电话
v_item_data-text3 = v_title_data-text3. "货运站名称
v_item_data-text5 = v_title_data-text5. "货运站地址
v_item_data-name1 = v_title_data-name1.
v_item_data-name2 = v_title_data-name2.
v_item_data-erdat = v_title_data-erdat.
v_item_data-vdatu = v_title_data-vdatu.
i_item_data-vkbur = v_title_data-vkbur.
i_item_data-bezeii = v_title_data-bezeii.
i_item_data-bztxt = v_title_data-bztxt.
* v_title_data-netwr = v_title_data-netwr + v_item_data-netwr.
v_title_data-kbetr20 = v_title_data-kbetr20 + v_item_data-kbetr20.
v_title_data-kbetr = v_item_data-kbetr.
v_title_data-lgmng = v_item_data-lgmng.
v_title_data-kwmeng = v_item_data-kwmeng.
*调整项目号显示
SELECT SINGLE * FROM makt WHERE matnr = v_item_data-matnr
AND spras = '1'.
IF sy-subrc = 0.
v_item_data-maktx = makt-maktx.
"取物料描述
ENDIF.
SHIFT v_item_data-vbeln LEFT DELETING LEADING '0'.
SHIFT v_item_data-posnr LEFT DELETING LEADING '0'.
SHIFT v_item_data-kunag LEFT DELETING LEADING '0'.
SHIFT v_item_data-kunnr LEFT DELETING LEADING '0'.
SHIFT v_item_data-matnr LEFT DELETING LEADING '0'.
SHIFT v_item_data-lifnr LEFT DELETING LEADING '0'.
MODIFY v_item_data.
CLEAR v_item_data.
ENDLOOP.
SHIFT v_title_data-vbeln LEFT DELETING LEADING '0'.
SHIFT v_title_data-kunnr LEFT DELETING LEADING '0'.
SHIFT v_title_data-kunag LEFT DELETING LEADING '0'.
SHIFT v_title_data-vbelv LEFT DELETING LEADING '0'.
SHIFT v_title_data-lifnr LEFT DELETING LEADING '0'.
MODIFY v_title_data.
CLEAR v_title_data.
CLEAR l_tdname.
ENDLOOP.
IF s_regio-low NE '' OR s_regio-high NE ''.
DELETE i_item_data WHERE regio = ''.
ENDIF.
IF s_vkbur-low NE '' OR s_vkbur-high NE ''.
DELETE i_item_data WHERE vkbur = ''.
ENDIF.
ENDFORM. " sub_process_data
*&---------------------------------------------------------------------*
*& Form frm_change_dignn
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_change_dignn.
LOOP AT i_title_data.
SELECT SINGLE regio
INTO i_title_data-regio
FROM kna1
WHERE kunnr = i_title_data-kunnr
AND regio IN s_regio.
** DEL v1.2
* SELECT SINGLE vkbur
* INTO i_title_data-vkbur
* FROM knvv
* WHERE kunnr = i_title_data-kunnr
* AND vkbur IN s_vkbur.
** add v1.2
CLEAR :i_title_data-vkbur,i_title_data-bzirk,i_title_data-spart,i_title_data-vtweg.
SELECT SINGLE knvv~vkbur knvv~bzirk knvv~spart knvv~vtweg
FROM knvv
INTO (i_title_data-vkbur,i_title_data-bzirk,i_title_data-spart,i_title_data-vtweg)
WHERE EXISTS (
SELECT * FROM lips INNER JOIN vbak ON lips~vgbel = vbak~vbeln
WHERE knvv~vkorg = vbak~vkorg
AND knvv~vtweg = vbak~vtweg AND knvv~spart = vbak~spart
AND knvv~kunnr = vbak~kunnr
AND lips~vbeln = i_title_data-vbeln
)
AND kunnr = i_title_data-kunnr
.
MODIFY i_title_data.
CLEAR i_title_data.
ENDLOOP.
IF s_regio-low NE '' OR s_regio-high NE ''.
DELETE i_title_data WHERE regio = ''.
ENDIF.
IF s_vkbur-low NE '' OR s_vkbur-high NE ''.
DELETE i_title_data WHERE vkbur = ''.
ENDIF.
ENDFORM. "FRM_CHANGE_DIGNN
*&---------------------------------------------------------------------*
*& Form frm_change_sign
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_CHANGE) text
*----------------------------------------------------------------------*
FORM frm_change_sign CHANGING value(p_change).
IF p_change CA '-'.
CONCATENATE '-' p_change INTO p_change.
CONDENSE p_change NO-GAPS.
SHIFT p_change RIGHT DELETING TRAILING ' -'.
ELSEIF p_change NA '123456789'.
p_change = ''.
ENDIF.
ENDFORM. "frm_change_sign
*&---------------------------------------------------------------------*
*& Form sub_list_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM sub_item_dataone.
IF s_regio-low NE '' OR s_regio-high NE ''.
DELETE i_item_data WHERE regio = ''.
ENDIF.
IF s_vkbur-low NE '' OR s_vkbur-high NE ''.
DELETE i_item_data WHERE vkbur NE ''.
ENDIF.
ENDFORM. "SUB_ITEM_DATAONE
*&---------------------------------------------------------------------*
*& Form DELETE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM delete_data.
LOOP AT i_item_data.
*取销售订单创建日期
SELECT SINGLE erdat
FROM vbak
INTO i_item_data-erdat1
WHERE vbak~vbeln = i_item_data-vgbel.
SHIFT i_item_data-vgbel LEFT DELETING LEADING '0'.
MODIFY i_item_data.
CLEAR i_item_data.
ENDLOOP.
ENDFORM. "DELETE_DATA
*&---------------------------------------------------------------------*
*& Form sub_item_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM sub_item_data.
DATA temp_waers LIKE konv-waers.
DATA: ex_rate TYPE tcurr-ukurs,
f_factor TYPE tcurr-ffact,
l_factor TYPE tcurr-tfact,
v_date TYPE datum,
audat LIKE vbak-audat, " 订单凭证日期
knumv LIKE vbak-knumv, "定价条件号码
d_erate(12) TYPE c.
LOOP AT i_item_data.
CLEAR: temp_waers,audat,knumv.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_item_data-vgbel
IMPORTING
output = i_item_data-vgbel.
SELECT SINGLE vbak~audat vbak~knumv vbak~waerk
INTO (audat,knumv,temp_waers)
FROM vbak
WHERE vbeln = i_item_data-vgbel.
i_item_data-waerk = temp_waers.
i_item_data-waers2 = 'CNY'.
CALL FUNCTION 'READ_EXCHANGE_RATE'
EXPORTING
client = sy-mandt
* date = audat
date = i_item_data-wadat_ist
foreign_currency = temp_waers
local_currency = 'CNY'
type_of_rate = 'M'
* EXACT_DATE = ' '
IMPORTING
exchange_rate = ex_rate
foreign_factor = f_factor
local_factor = l_factor
valid_from_date = v_date
EXCEPTIONS
no_rate_found = 1
no_factors_found = 2
no_spread_found = 3
derived_2_times = 4
overflow = 5
zero_rate = 6
OTHERS = 7
.
i_item_data-kbetr19 = i_item_data-kbetr20 * ex_rate * l_factor / f_factor.
i_item_data-netwr = i_item_data-netwr / ex_rate.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = i_item_data-vgbel
IMPORTING
output = i_item_data-vgbel.
MODIFY i_item_data.
ENDLOOP.
*choose_data_get2.
REFRESH i_fieldcat.
add_filed 'I_ITEM_DATA' 'VBELN' '交货单号' 'L ' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'ERDAT' '交货单创建日期' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'BEZEI' '订单类型' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'VGBEL' '订单号码' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'ERDAT1' '订单日期' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'VDATU' '请求交货日期' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'EDATU' '首个交货日期' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'VKBUR' '办事处' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_ITEM_DATA' 'BEZEII' '办事处描述' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_ITEM_DATA' 'BZTXT' '销售地区' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_ITEM_DATA' 'POSNR' '项目编号' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'WADAT_IST' '发货过账日期' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'KUNAG' '售达方' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_ITEM_DATA' 'NAME1' '售达方名称' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'PANNR' '客户联系人' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'KUNNR' '送达方' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'NAME5' '送达方名称' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_ITEM_DATA' 'CMGST' '交货信贷状态' 'L' 'CHAR' '' '' . "add by LKJ 2008/11/27
add_filed 'I_ITEM_DATA' 'CMGSTX' '交货信贷状态' 'L' 'CHAR' '' '' . "add by LKJ 2008/11/27
add_filed 'I_ITEM_DATA' 'LIFNR' '货运站' 'L' 'CHAR' '' '' . "add by LKJ 2008/12/18
add_filed 'I_ITEM_DATA' 'TEXT3' '货运站名称' 'L' 'CHAR' '' '' . "add by LKJ 2008/12/18
add_filed 'I_ITEM_DATA' 'TEXT5' '货运站地址' 'L' 'CHAR' '' '' . "add by LKJ 2008/12/18
add_filed 'I_ITEM_DATA' 'TEXT1' '货运站电话' 'L' 'CHAR' '' '' . "add by LKJ 2008/12/18
add_filed 'I_ITEM_DATA' 'NAME2' '制单人' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'MATNR' '产品编号' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'MAKTX' '产品名称' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'CHANGYE' '产业' 'L' 'CHAR' '' '' . "add by LKJ 2008/10/20
add_filed 'I_ITEM_DATA' 'BEZEI1' '品牌' 'L' 'CHAR' '' '' . "add by LKJ 2008/10/20
add_filed 'I_ITEM_DATA' 'SPART' '产品组' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'VTEXT' '产品组描述' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'MATKL' '物料组' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'WGBEZ' '物料组描述' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'LGMNG' '交货数量' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'LGMNGX' '交货件数' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'MEINS' '单位' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'VOLUM' '体积' 'L' 'CHAR' '' '' . "add by lkj 08/10/07
add_filed 'I_ITEM_DATA' 'VOLEH' '体积单位' 'L' 'CHAR' '' '' . "add by lkj 08/10/07
add_filed 'I_ITEM_DATA' 'BRGEW' '毛重' 'L' 'CHAR' '' '' . "add by lkj 08/10/07
add_filed 'I_ITEM_DATA' 'GEWEI' '重量单位' 'L' 'CHAR' '' '' . "add by lkj 08/10/07
add_filed 'I_ITEM_DATA' 'ZHEKO' '经销折扣' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'KBETR1' '经销折扣金额' 'L' 'CHAR' '' '' . "add by lkj 09/02/24
add_filed 'I_ITEM_DATA' 'ZHEKO4' '订单折扣' 'L' 'CHAR' '' '' . "add by LKJ 2008/10/20
add_filed 'I_ITEM_DATA' 'YYMS' '订单折扣性质' 'L' 'CHAR' '' ''."add V1.1
add_filed 'I_ITEM_DATA' 'KBETR4' '订单折扣金额' 'L' 'CHAR' '' '' . "add by lkj 09/02/24
add_filed 'I_ITEM_DATA' 'ZHEKO9' '物流商折扣' 'L' 'CHAR' '' '' . "add by FOK 2009/12/15
add_filed 'I_ITEM_DATA' 'KBETR9' '物流商折扣金额' 'L' 'CHAR' '' '' . "add by FOK 2009/12/15
add_filed 'I_ITEM_DATA' 'ZHEKO5' '退货扣点' 'L' 'CHAR' '' '' . "add by kevin 2009/06/23
add_filed 'I_ITEM_DATA' 'NETWR5' '退货扣点金额' 'L' 'CHAR' '' '' . "add by kevin 2009/06/23
add_filed 'I_ITEM_DATA' 'KBETR20' '订单总计金额(原)' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'WADAT_IST2' '发票所属时期' 'L' 'CHAR' '' '' .
add_filed 'I_ITEM_DATA' 'WAERK' '外币币别' 'L' 'CHAR' '' ''.
add_filed 'I_ITEM_DATA' 'KBETR19' '本币订单金额' 'L' 'CHAR' '' ''.
add_filed 'I_ITEM_DATA' 'WAERS2' '本币币别' 'L' 'CHAR' '' ''.
add_filed 'I_ITEM_DATA' 'BBEZEI' '物料定价组' 'L' 'CHAR' '' ''.
add_filed 'I_ITEM_DATA' 'BSTKD' '订单文本' 'L' 'CHAR' '' ''.
display_data i_item_data ''.
ENDFORM. "sub_list_data
*&---------------------------------------------------------------------*
*& Form sub_title_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM sub_title_data.
******************************ADD BY KEVIN 2009/07/31***********************************
DATA temp_waers LIKE konv-waers.
DATA: ex_rate TYPE tcurr-ukurs,
f_factor TYPE tcurr-ffact,
l_factor TYPE tcurr-tfact,
v_date TYPE datum,
audat LIKE vbak-audat, " 订单凭证日期
knumv LIKE vbak-knumv, "定价条件号码
d_erate(12) TYPE c.
LOOP AT i_title_data.
CLEAR: temp_waers,audat,knumv.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_title_data-vbelv
IMPORTING
output = i_title_data-vbelv.
SELECT SINGLE vbak~audat vbak~knumv vbak~waerk
INTO (audat,knumv,temp_waers)
FROM vbak
WHERE vbeln = i_title_data-vbelv.
i_title_data-waers = temp_waers.
i_title_data-waers2 = 'CNY'.
CALL FUNCTION 'READ_EXCHANGE_RATE'
EXPORTING
client = sy-mandt
* date = audat
date = i_title_data-wadat_ist
foreign_currency = temp_waers
local_currency = 'CNY'
type_of_rate = 'M'
* EXACT_DATE = ' '
IMPORTING
exchange_rate = ex_rate
foreign_factor = f_factor
local_factor = l_factor
valid_from_date = v_date
EXCEPTIONS
no_rate_found = 1
no_factors_found = 2
no_spread_found = 3
derived_2_times = 4
overflow = 5
zero_rate = 6
OTHERS = 7
.
i_title_data-kbetr19 = i_title_data-kbetr20 * ex_rate * l_factor / f_factor.
i_title_data-netwr = i_title_data-netwr / ex_rate.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = i_title_data-vbelv
IMPORTING
output = i_title_data-vbelv.
MODIFY i_title_data.
ENDLOOP.
******************************END BY KEVIN**********************************
DELETE i_title_data WHERE vbelv = ''.
REFRESH i_fieldcat.
add_filed 'I_TITLE_DATA' 'VBELN' '交货单号' 'L ' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'ERDAT' '交货单创建日期' 'L ' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'CHANGYE' '产业' 'L' 'CHAR' '' '' . "add by LKJ 2008/10/20
add_filed 'I_TITLE_DATA' 'WADAT_IST' '发货过账日期' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'VBELV' '订单号码' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'BEZEI' '订单类型' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'KUNAG' '售达方' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_TITLE_DATA' 'NAME1' '售达方名称' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'PANNR' '客户联系人' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'KUNNR' '送达方' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'NAME5' '送达方名称' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_TITLE_DATA' 'CMGST' '交货信贷状态' 'L' 'CHAR' '' '' . "add by LKJ 2008/11/27
add_filed 'I_TITLE_DATA' 'CMGSTX' '交货信贷状态' 'L' 'CHAR' '' '' . "add by LKJ 2008/11/27
add_filed 'I_TITLE_DATA' 'LIFNR' '货运站' 'L' 'CHAR' '' '' . "add by LKJ 2008/12/18
add_filed 'I_TITLE_DATA' 'TEXT3' '货运站名称' 'L' 'CHAR' '' '' . "add by LKJ 2008/12/18
add_filed 'I_TITLE_DATA' 'TEXT5' '货运站地址' 'L' 'CHAR' '' '' . "add by LKJ 2008/12/18
add_filed 'I_TITLE_DATA' 'TEXT1' '货运站电话' 'L' 'CHAR' '' '' . "add by LKJ 2008/12/18
add_filed 'I_TITLE_DATA' 'VKBUR' '办事处' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_TITLE_DATA' 'BEZEII' '办事处描述' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_TITLE_DATA' 'BZTXT' '销售地区' 'L' 'CHAR' '' '' . "kaijunli
add_filed 'I_TITLE_DATA' 'NAME2' '制单人' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'KBETR20' '金额(原)' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'FKSTK' '开票状态' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'WBSTK' '过帐状态' 'L' 'CHAR' '' '' .
add_filed 'I_TITLE_DATA' 'WAERS' '外币币别' 'L' 'CHAR' '' ''.
add_filed 'I_TITLE_DATA' 'KBETR19' '本币订单金额' 'L' 'CHAR' '' ''.
add_filed 'I_TITLE_DATA' 'WAERS2' '本币币别' 'L' 'CHAR' '' ''.
display_data i_title_data ''.
ENDFORM. "sub_list_data
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
CASE rs_selfield-sel_tab_field.
WHEN 'I_TITLE_DATA-VBELN'.
SET PARAMETER ID 'VL' FIELD rs_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
WHEN 'I_ITEM_DATA-VBELN'.
SET PARAMETER ID 'VL' FIELD rs_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN OTHERS.
ENDCASE.
ENDFORM. "user_command
- SD 送货清单报表
- 送货
- 送货
- 送货
- SD常用TCODE清单
- SD 销售价格查询报表
- 分栏报表-物品清单报表实现
- 分栏报表-物品清单报表实现
- winfor应用程序打印报表清单
- ActiveReports 报表应用教程 (2)---清单类报表
- ActiveReports 报表应用教程 (2)---清单类报表
- ActiveReports 报表应用教程 (2)---清单类报表
- 订单送货
- ccf 送货
- ccf 送货
- ccf送货
- ccf 送货
- CCF 送货
- 投稿准备
- (转)我所积累的20条编成经验
- Android-NDK-r4b学习之概述
- 火狐和谷歌不支持Cursor:hand的写法的解决方法
- Oracle 临时表的概念
- SD 送货清单报表
- ARM编译问题 invalid constant -- `mov r1,#0x36164'
- 查何查找BAPI
- 代理模式
- NandFlash系列之二:S3C2410读写Nand Flash分析
- java RandomAccessFile读取文件追加内容
- c语言预处理--宏定义
- delphi 数据库的动态建立
- 友元函数、友元类、访问私有数据成员、友元关系