‎2008 Feb 25 9:18 AM
Dear all ,
i have developed one report , where in customer pays through different modes ,
different modes here means , customer can pay through check , through coupon etc...
in my code i have hard coded account no's , so that entry will go to the corresponding account...
after all i am all the accounts..
but i need to insert posting key field so that when posting key is 50 the value should be minus..
can anybody tell me how to map it in coding
here is the code...
form get_plant_name .
select werks name1 kunnr
from t001w
into corresponding fields of table it_t001w
where werks in s_werks.
endform. " get_plant_name
&----
*& Form get_sales_data
&----
text
----
form get_sales_data.
select * from zpayment_mode
into corresponding fields of table it_custacc
where werks in s_werks
and kunnr in s_kunnr.
if sy-subrc = 0.
loop at it_custacc.
concatenate it_custacc-werks p_bldat into g_ref separated by space.
it_ref-werks = it_custacc-werks.
it_ref-xblnr = g_ref.
append it_ref.
clear it_ref.
endloop.
endif.
select belnr gjahr budat xblnr
from bkpf
into corresponding fields of table it_bkpf
for all entries in it_ref
where xblnr = it_ref-xblnr
and budat = p_bldat
and bukrs = '1800'
and blart = 'DG'.
if sy-subrc = 0.
select belnr hkont kunnr wrbtr
from bseg
into corresponding fields of table it_bseg
for all entries in it_bkpf
where bukrs = '1800'
and belnr = it_bkpf-belnr
and gjahr = it_bkpf-gjahr.
endif.
endform. " get_sales_data
&----
*& Form get_display_data
&----
text
----
form get_display_data .
clear v_belnr.
*loop at it_bkpf.
loop at it_custacc.
loop at it_t001w where werks = it_custacc-werks.
it_display-werks = it_custacc-werks.
it_display-kunnr = it_custacc-kunnr.
it_display-name1 = it_t001w-name1.
read table it_bseg with key hkont = it_custacc-hkont.
v_belnr = it_bseg-belnr.
it_display-wrbtr = it_bseg-wrbtr.
it_display-hkont = it_custacc-hkont.
loop at it_bseg where belnr = v_belnr.
case it_bseg-hkont.
when '0024560005'.
move it_bseg-wrbtr to it_display-wrbtr1.
when '0024560004'.
move it_bseg-wrbtr to it_display-wrbtr2.
when '0014890016'.
move it_bseg-wrbtr to it_display-wrbtr3.
when '0024560001'.
move it_bseg-wrbtr to it_display-wrbtr4.
when '0014890018'.
move it_bseg-wrbtr to it_display-wrbtr5.
when '0024560002'.
move it_bseg-wrbtr to it_display-wrbtr6.
when '0024560021'.
move it_bseg-wrbtr to it_display-wrbtr7.
when '0024560000'.
move it_bseg-wrbtr to it_display-wrbtr8.
when '0024560016'.
move it_bseg-wrbtr to it_display-wrbtr9.
when '0024560017'.
move it_bseg-wrbtr to it_display-wrbtr10.
when '0024560018'.
move it_bseg-wrbtr to it_display-wrbtr11.
when '0024560019'.
move it_bseg-wrbtr to it_display-wrbtr12.
when '0024560011'.
move it_bseg-wrbtr to it_display-wrbtr13.
when '0024560010'.
move it_bseg-wrbtr to it_display-wrbtr14.
when '0024560009'.
move it_bseg-wrbtr to it_display-wrbtr15.
when '0024560007'.
move it_bseg-wrbtr to it_display-wrbtr16.
when '0024560008'.
move it_bseg-wrbtr to it_display-wrbtr17.
when '0024560006'.
move it_bseg-wrbtr to it_display-wrbtr18.
when '0024560015'.
move it_bseg-wrbtr to it_display-wrbtr19.
when '0024560020'.
move it_bseg-wrbtr to it_display-wrbtr20.
when '0024560012'.
move it_bseg-wrbtr to it_display-wrbtr21.
when '0024560013'.
move it_bseg-wrbtr to it_display-wrbtr22.
when '0014890024'.
move it_bseg-wrbtr to it_display-wrbtr23.
when '0043201110'.
move it_bseg-wrbtr to it_display-wrbtr24.
when '0014890018'.
move it_bseg-wrbtr to it_display-wrbtr25.
when 'others'.
continue.
endcase.
*endloop.
it_display-wrbtr30 = it_display-wrbtr + it_display-wrbtr1 + it_display-wrbtr2 + it_display-wrbtr3 + it_display-wrbtr4 +
it_display-wrbtr5 + it_display-wrbtr6 + it_display-wrbtr7 + it_display-wrbtr8 + it_display-wrbtr9 +
it_display-wrbtr10 + it_display-wrbtr11 + it_display-wrbtr12 + it_display-wrbtr13 + it_display-wrbtr14 +
it_display-wrbtr15 + it_display-wrbtr16 + it_display-wrbtr17 + it_display-wrbtr18 + it_display-wrbtr19 +
it_display-wrbtr20 + it_display-wrbtr21 + it_display-wrbtr22 + it_display-wrbtr23 + it_display-wrbtr24 +
it_display-wrbtr25.
endloop.
read table it_bkpf with key belnr = it_bseg-belnr.
it_display-bldat = it_bkpf-budat.
v_werks = it_bkpf-xblnr+0(4).
append it_display.
clear: it_display,
it_bseg,
it_bkpf,
it_t001w.
endloop.
endloop.
DELETE it_display WHERE wrbtr = 0.
endform. " get_display_data
‎2008 Feb 25 9:30 AM
Hi,
find my response in 'BOLD'
form get_plant_name .
select werks name1 kunnr
from t001w
into corresponding fields of table it_t001w
where werks in s_werks.
endform. " get_plant_name
&----
*& Form get_sales_data
&----
text
-
form get_sales_data.
select * from zpayment_mode
into corresponding fields of table it_custacc
where werks in s_werks
and kunnr in s_kunnr.
if sy-subrc = 0.
loop at it_custacc.
concatenate it_custacc-werks p_bldat into g_ref separated by space.
it_ref-werks = it_custacc-werks.
it_ref-xblnr = g_ref.
append it_ref.
clear it_ref.
endloop.
endif.
select belnr gjahr budat xblnr
from bkpf
into corresponding fields of table it_bkpf
for all entries in it_ref
where xblnr = it_ref-xblnr
and budat = p_bldat
and bukrs = '1800'
and blart = 'DG'.
if sy-subrc = 0.
select belnr hkont kunnr wrbtr bschl
from bseg
into corresponding fields of table it_bseg
for all entries in it_bkpf
where bukrs = '1800'
and belnr = it_bkpf-belnr
and gjahr = it_bkpf-gjahr.
endif.
endform. " get_sales_data
&----
*& Form get_display_data
&----
text
-
form get_display_data .
clear v_belnr.
*loop at it_bkpf.
loop at it_custacc.
loop at it_t001w where werks = it_custacc-werks.
it_display-werks = it_custacc-werks.
it_display-kunnr = it_custacc-kunnr.
it_display-name1 = it_t001w-name1.
read table it_bseg with key hkont = it_custacc-hkont.
v_belnr = it_bseg-belnr.
it_display-wrbtr = it_bseg-wrbtr.
it_display-hkont = it_custacc-hkont.
loop at it_bseg where belnr = v_belnr.
case it_bseg-hkont.
when '0024560005'.
move it_bseg-wrbtr to it_display-wrbtr1.
when '0024560004'.
move it_bseg-wrbtr to it_display-wrbtr2.
when '0014890016'.
move it_bseg-wrbtr to it_display-wrbtr3.
when '0024560001'.
move it_bseg-wrbtr to it_display-wrbtr4.
when '0014890018'.
move it_bseg-wrbtr to it_display-wrbtr5.
when '0024560002'.
move it_bseg-wrbtr to it_display-wrbtr6.
when '0024560021'.
move it_bseg-wrbtr to it_display-wrbtr7.
when '0024560000'.
move it_bseg-wrbtr to it_display-wrbtr8.
when '0024560016'.
move it_bseg-wrbtr to it_display-wrbtr9.
when '0024560017'.
move it_bseg-wrbtr to it_display-wrbtr10.
when '0024560018'.
move it_bseg-wrbtr to it_display-wrbtr11.
when '0024560019'.
move it_bseg-wrbtr to it_display-wrbtr12.
when '0024560011'.
move it_bseg-wrbtr to it_display-wrbtr13.
when '0024560010'.
move it_bseg-wrbtr to it_display-wrbtr14.
when '0024560009'.
move it_bseg-wrbtr to it_display-wrbtr15.
when '0024560007'.
move it_bseg-wrbtr to it_display-wrbtr16.
when '0024560008'.
move it_bseg-wrbtr to it_display-wrbtr17.
when '0024560006'.
move it_bseg-wrbtr to it_display-wrbtr18.
when '0024560015'.
move it_bseg-wrbtr to it_display-wrbtr19.
when '0024560020'.
move it_bseg-wrbtr to it_display-wrbtr20.
when '0024560012'.
move it_bseg-wrbtr to it_display-wrbtr21.
when '0024560013'.
move it_bseg-wrbtr to it_display-wrbtr22.
when '0014890024'.
move it_bseg-wrbtr to it_display-wrbtr23.
when '0043201110'.
move it_bseg-wrbtr to it_display-wrbtr24.
when '0014890018'.
move it_bseg-wrbtr to it_display-wrbtr25.
when 'others'.
continue.
endcase.
*endloop.
*if it_bseg-bschl = '50'.
it_display-wrbtr30 = it_display-wrbtr - it_display-wrbtr1 - it_display-wrbtr2 - it_display-wrbtr3 - it_display-wrbtr4 -
it_display-wrbtr5 - it_display-wrbtr6 - it_display-wrbtr7 - it_display-wrbtr8 - it_display-wrbtr9 -
it_display-wrbtr10 - it_display-wrbtr11 - it_display-wrbtr12 - it_display-wrbtr13 - it_display-wrbtr14 -
it_display-wrbtr15 - it_display-wrbtr16 - it_display-wrbtr17 - it_display-wrbtr18 - it_display-wrbtr19 -
it_display-wrbtr20 - it_display-wrbtr21 - it_display-wrbtr22 - it_display-wrbtr23 - it_display-wrbtr24 -
it_display-wrbtr25.*
else.
it_display-wrbtr30 = it_display-wrbtr + it_display-wrbtr1 + it_display-wrbtr2 + it_display-wrbtr3 + it_display-wrbtr4 +
it_display-wrbtr5 + it_display-wrbtr6 + it_display-wrbtr7 + it_display-wrbtr8 + it_display-wrbtr9 +
it_display-wrbtr10 + it_display-wrbtr11 + it_display-wrbtr12 + it_display-wrbtr13 + it_display-wrbtr14 +
it_display-wrbtr15 + it_display-wrbtr16 + it_display-wrbtr17 + it_display-wrbtr18 + it_display-wrbtr19 +
it_display-wrbtr20 + it_display-wrbtr21 + it_display-wrbtr22 + it_display-wrbtr23 + it_display-wrbtr24 +
it_display-wrbtr25.
endif.
endloop.
read table it_bkpf with key belnr = it_bseg-belnr.
it_display-bldat = it_bkpf-budat.
v_werks = it_bkpf-xblnr+0(4).
append it_display.
clear: it_display,
it_bseg,
it_bkpf,
it_t001w.
endloop.
endloop.
DELETE it_display WHERE wrbtr = 0.
endform. " get_display_data
‎2008 Feb 25 9:31 AM
‎2008 Feb 25 9:42 AM
Hi,
select belnr hkont SHKZG kunnr wrbtr
from bseg
into corresponding fields of table it_bseg
for all entries in it_bkpf
where bukrs = '1800'
and belnr = it_bkpf-belnr
and gjahr = it_bkpf-gjahr.
endif.
loop at it_bseg where belnr = v_belnr.
IF IT_BSEG-SHKZG = 'H'.
IT_BSEG-WRBTR = IT_BSEG-WRBTR * -1 .
ENDIF.
case it_bseg-hkont.
when '0024560005'.
move it_bseg-wrbtr to it_display-wrbtr1.
when '0024560004'.
move it_bseg-wrbtr to it_display-wrbtr2.
when '0014890016'.
move it_bseg-wrbtr to it_display-wrbtr3.
when '0024560001'.
......
.....
.....
ENDLOOP.
Regards,
Paras
‎2008 Feb 25 9:48 AM
Hi,
find my response in 'BOLD'
form get_plant_name .
select werks name1 kunnr
from t001w
into corresponding fields of table it_t001w
where werks in s_werks.
endform. " get_plant_name
&----
*& Form get_sales_data
&----
text
-
form get_sales_data.
select * from zpayment_mode
into corresponding fields of table it_custacc
where werks in s_werks
and kunnr in s_kunnr.
if sy-subrc = 0.
loop at it_custacc.
concatenate it_custacc-werks p_bldat into g_ref separated by space.
it_ref-werks = it_custacc-werks.
it_ref-xblnr = g_ref.
append it_ref.
clear it_ref.
endloop.
endif.
select belnr gjahr budat xblnr
from bkpf
into corresponding fields of table it_bkpf
for all entries in it_ref
where xblnr = it_ref-xblnr
and budat = p_bldat
and bukrs = '1800'
and blart = 'DG'.
if sy-subrc = 0.
select belnr hkont kunnr wrbtr bschl
from bseg
into corresponding fields of table it_bseg
for all entries in it_bkpf
where bukrs = '1800'
and belnr = it_bkpf-belnr
and gjahr = it_bkpf-gjahr.
endif.
endform. " get_sales_data
&----
*& Form get_display_data
&----
text
-
form get_display_data .
clear v_belnr.
*loop at it_bkpf.
loop at it_custacc.
loop at it_t001w where werks = it_custacc-werks.
it_display-werks = it_custacc-werks.
it_display-kunnr = it_custacc-kunnr.
it_display-name1 = it_t001w-name1.
read table it_bseg with key hkont = it_custacc-hkont.
v_belnr = it_bseg-belnr.
it_display-wrbtr = it_bseg-wrbtr.
it_display-hkont = it_custacc-hkont.
loop at it_bseg where belnr = v_belnr.
case it_bseg-hkont.
when '0024560005'.
move it_bseg-wrbtr to it_display-wrbtr1.
when '0024560004'.
move it_bseg-wrbtr to it_display-wrbtr2.
when '0014890016'.
move it_bseg-wrbtr to it_display-wrbtr3.
when '0024560001'.
move it_bseg-wrbtr to it_display-wrbtr4.
when '0014890018'.
move it_bseg-wrbtr to it_display-wrbtr5.
when '0024560002'.
move it_bseg-wrbtr to it_display-wrbtr6.
when '0024560021'.
move it_bseg-wrbtr to it_display-wrbtr7.
when '0024560000'.
move it_bseg-wrbtr to it_display-wrbtr8.
when '0024560016'.
move it_bseg-wrbtr to it_display-wrbtr9.
when '0024560017'.
move it_bseg-wrbtr to it_display-wrbtr10.
when '0024560018'.
move it_bseg-wrbtr to it_display-wrbtr11.
when '0024560019'.
move it_bseg-wrbtr to it_display-wrbtr12.
when '0024560011'.
move it_bseg-wrbtr to it_display-wrbtr13.
when '0024560010'.
move it_bseg-wrbtr to it_display-wrbtr14.
when '0024560009'.
move it_bseg-wrbtr to it_display-wrbtr15.
when '0024560007'.
move it_bseg-wrbtr to it_display-wrbtr16.
when '0024560008'.
move it_bseg-wrbtr to it_display-wrbtr17.
when '0024560006'.
move it_bseg-wrbtr to it_display-wrbtr18.
when '0024560015'.
move it_bseg-wrbtr to it_display-wrbtr19.
when '0024560020'.
move it_bseg-wrbtr to it_display-wrbtr20.
when '0024560012'.
move it_bseg-wrbtr to it_display-wrbtr21.
when '0024560013'.
move it_bseg-wrbtr to it_display-wrbtr22.
when '0014890024'.
move it_bseg-wrbtr to it_display-wrbtr23.
when '0043201110'.
move it_bseg-wrbtr to it_display-wrbtr24.
when '0014890018'.
move it_bseg-wrbtr to it_display-wrbtr25.
when 'others'.
continue.
endcase.
*endloop.
it_display-wrbtr30 = it_display-wrbtr + it_display-wrbtr1 + it_display-wrbtr2 + it_display-wrbtr3 + it_display-wrbtr4 +
it_display-wrbtr5 + it_display-wrbtr6 + it_display-wrbtr7 + it_display-wrbtr8 + it_display-wrbtr9 +
it_display-wrbtr10 + it_display-wrbtr11 + it_display-wrbtr12 + it_display-wrbtr13 + it_display-wrbtr14 +
it_display-wrbtr15 + it_display-wrbtr16 + it_display-wrbtr17 + it_display-wrbtr18 + it_display-wrbtr19 +
it_display-wrbtr20 + it_display-wrbtr21 + it_display-wrbtr22 + it_display-wrbtr23 + it_display-wrbtr24 +
it_display-wrbtr25.
if it_bseg-bschl = '50'.
it_display-wrbtr30 = it_display-wrbtr30 * -1.*
endif.
endloop.
read table it_bkpf with key belnr = it_bseg-belnr.
it_display-bldat = it_bkpf-budat.
v_werks = it_bkpf-xblnr+0(4).
append it_display.
clear: it_display,
it_bseg,
it_bkpf,
it_t001w.
endloop.
endloop.
DELETE it_display WHERE wrbtr = 0.
endform. " get_display_data