data: w1 type i.
data p_table1 type sdpartner_enhanced_kupav
occurs 10 with header line.
data p_table2 type tpaer
occurs 10 with header line.
if lm_kunnr = space.
message e067(zz).
endif.
data p_table1 type sdpartner_enhanced_kupav
occurs 10 with header line.
data p_table2 type tpaer
occurs 10 with header line.
if lm_kunnr = space.
message e067(zz).
endif.
select single * from knvp where kunnr = lm_kunnr
and vkorg = pm_vkovg and parvw = 'AG'.
if sy-subrc <> 0.
message e081(zz) with pm_vkovg lm_kunnr.
endif.
and vkorg = pm_vkovg and parvw = 'AG'.
if sy-subrc <> 0.
message e081(zz) with pm_vkovg lm_kunnr.
endif.
clear w1.
if p_kunnr <> space.
select single * from knvp where kunnr = lm_kunnr
and vkorg = pm_vkovg and parvw = 'WE' and
kunn2 = p_kunnr.
if sy-subrc <> 0.
message e290(zz) with p_kunnr.
endif.
else.
select * from knvp
where kunnr = lm_kunnr and vkorg = pm_vkovg
and parvw = 'WE'.
w1 = w1 + 1.
p_kunnr = knvp-kunn2.
move-corresponding knvp to p_table1.
append p_table1.
clear p_table1.
endselect.
if w1 = 1.
delete p_table1 where parvw = 'WE'.
else.
select * from tpaer where pargr = 'WE'.
if tpaer-pargr = tpaer-parvw.
move tpaer to p_table2.
p_table2-parei = 'X'.
append p_table2.
clear p_table2.
endif.
endselect.
clear p_kunnr.
endif.
endif.
if p_kunnr <> space.
select single * from knvp where kunnr = lm_kunnr
and vkorg = pm_vkovg and parvw = 'WE' and
kunn2 = p_kunnr.
if sy-subrc <> 0.
message e290(zz) with p_kunnr.
endif.
else.
select * from knvp
where kunnr = lm_kunnr and vkorg = pm_vkovg
and parvw = 'WE'.
w1 = w1 + 1.
p_kunnr = knvp-kunn2.
move-corresponding knvp to p_table1.
append p_table1.
clear p_table1.
endselect.
if w1 = 1.
delete p_table1 where parvw = 'WE'.
else.
select * from tpaer where pargr = 'WE'.
if tpaer-pargr = tpaer-parvw.
move tpaer to p_table2.
p_table2-parei = 'X'.
append p_table2.
clear p_table2.
endif.
endselect.
clear p_kunnr.
endif.
endif.
clear w1.
if p_py <> space.
select single * from knvp where kunnr = lm_kunnr
and vkorg = pm_vkovg and parvw = 'RG'
and kunn2 = p_py.
if sy-subrc <> 0.
message e292(zz) with p_py.
endif.
else.
select * from knvp
where kunnr = lm_kunnr and vkorg = pm_vkovg
and parvw = 'RG'.
w1 = w1 + 1.
p_py = knvp-kunn2.
move-corresponding knvp to p_table1.
append p_table1.
clear p_table1.
endselect.
loop at p_table1.
select single * from kna1 where kunnr = p_table1-kunn2.
if sy-subrc = 0.
move-corresponding kna1 to p_table1.
modify p_table1.
endif.
endloop.
if p_py <> space.
select single * from knvp where kunnr = lm_kunnr
and vkorg = pm_vkovg and parvw = 'RG'
and kunn2 = p_py.
if sy-subrc <> 0.
message e292(zz) with p_py.
endif.
else.
select * from knvp
where kunnr = lm_kunnr and vkorg = pm_vkovg
and parvw = 'RG'.
w1 = w1 + 1.
p_py = knvp-kunn2.
move-corresponding knvp to p_table1.
append p_table1.
clear p_table1.
endselect.
loop at p_table1.
select single * from kna1 where kunnr = p_table1-kunn2.
if sy-subrc = 0.
move-corresponding kna1 to p_table1.
modify p_table1.
endif.
endloop.
if w1 = 1.
delete p_table1 where parvw = 'RG'.
else.
select * from tpaer where pargr = 'RG'.
if tpaer-pargr = tpaer-parvw.
move tpaer to p_table2.
p_table2-parei = 'X'.
append p_table2.
clear p_table2.
endif.
endselect.
clear p_py.
endif.
endif.
delete p_table1 where parvw = 'RG'.
else.
select * from tpaer where pargr = 'RG'.
if tpaer-pargr = tpaer-parvw.
move tpaer to p_table2.
p_table2-parei = 'X'.
append p_table2.
clear p_table2.
endif.
endselect.
clear p_py.
endif.
endif.
clear w1.
if p_bp <> space.
select single * from knvp where kunnr = lm_kunnr
and vkorg = pm_vkovg and parvw = 'RE'
and kunn2 = p_bp.
if sy-subrc <> 0.
message e291(zz) with p_bp.
endif.
else.
select * from knvp
where kunnr = lm_kunnr and vkorg = pm_vkovg
and parvw = 'RE'.
w1 = w1 + 1.
p_bp = knvp-kunn2.
move-corresponding knvp to p_table1.
append p_table1.
clear p_table1.
endselect.
if w1 = 1.
delete p_table1 where parvw = 'RE'.
else.
select * from tpaer where pargr = 'RE'.
if tpaer-pargr = tpaer-parvw.
move tpaer to p_table2.
p_table2-parei = 'X'.
append p_table2.
clear p_table2.
endif.
endselect.
clear p_bp.
endif.
endif.
if p_bp <> space.
select single * from knvp where kunnr = lm_kunnr
and vkorg = pm_vkovg and parvw = 'RE'
and kunn2 = p_bp.
if sy-subrc <> 0.
message e291(zz) with p_bp.
endif.
else.
select * from knvp
where kunnr = lm_kunnr and vkorg = pm_vkovg
and parvw = 'RE'.
w1 = w1 + 1.
p_bp = knvp-kunn2.
move-corresponding knvp to p_table1.
append p_table1.
clear p_table1.
endselect.
if w1 = 1.
delete p_table1 where parvw = 'RE'.
else.
select * from tpaer where pargr = 'RE'.
if tpaer-pargr = tpaer-parvw.
move tpaer to p_table2.
p_table2-parei = 'X'.
append p_table2.
clear p_table2.
endif.
endselect.
clear p_bp.
endif.
endif.
describe table p_table1 lines w1.
if w1 > 1.
call function 'SD_PARTNER_SELECTION'
exporting
popup_start_column = 5
popup_start_line = 5
* NO_POPUP_IF_COMPLETE =
* FREEATTRIB_TEXT_L =
* FREEATTRIB_TEXT_M =
* FREEATTRIB_TEXT_S =
* FREEATTRIB_TEXT_HEAD =
freeattrib_show = ''
tables
selkz_kupav = p_table1
prtnr_eindeutig_pflicht = p_table2
exceptions
programminternerfehler = 1
eing_nicht_konsistent = 2
user_hat_abgebrochen = 3
others = 4.
if sy-subrc = 0.
loop at p_table1 where selkz = 'X'.
if p_table1-parvw = 'WE'.
p_kunnr = p_table1-kunn2.
endif.
if p_table1-parvw = 'RG'.
p_py = p_table1-kunn2.
endif.
if p_table1-parvw = 'RE'.
p_bp = p_table1-kunn2.
endif.
endloop.
endif.
endif.
if lm_bstdk = '00000000'.
message e999(zz) with '請輸入採購單日期'.
endif.
if lm_ketda = '00000000'.
message e999(zz) with '請輸入請求交貨日期'.
endif.
if w1 > 1.
call function 'SD_PARTNER_SELECTION'
exporting
popup_start_column = 5
popup_start_line = 5
* NO_POPUP_IF_COMPLETE =
* FREEATTRIB_TEXT_L =
* FREEATTRIB_TEXT_M =
* FREEATTRIB_TEXT_S =
* FREEATTRIB_TEXT_HEAD =
freeattrib_show = ''
tables
selkz_kupav = p_table1
prtnr_eindeutig_pflicht = p_table2
exceptions
programminternerfehler = 1
eing_nicht_konsistent = 2
user_hat_abgebrochen = 3
others = 4.
if sy-subrc = 0.
loop at p_table1 where selkz = 'X'.
if p_table1-parvw = 'WE'.
p_kunnr = p_table1-kunn2.
endif.
if p_table1-parvw = 'RG'.
p_py = p_table1-kunn2.
endif.
if p_table1-parvw = 'RE'.
p_bp = p_table1-kunn2.
endif.
endloop.
endif.
endif.
if lm_bstdk = '00000000'.
message e999(zz) with '請輸入採購單日期'.
endif.
if lm_ketda = '00000000'.
message e999(zz) with '請輸入請求交貨日期'.
endif.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21171916/viewspace-665995/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21171916/viewspace-665995/