‎2009 Jan 13 6:40 AM
can anyone tel whats the mistake in this program
tables : mseg, mkpf, mara.
************************INSERTION FOR ALV********************************
type-pools:slis.
data : ist_list_topofpage type slis_t_listheader .
data : s_list_topofpage type slis_listheader.
data: i_fieldcat type slis_t_fieldcat_alv.
data : x_fieldcat type slis_fieldcat_alv.
data : fieldcat1 type slis_t_fieldcat_alv with header line.
********************DECLARATION******************************************
types : begin of ty_mkpf,
budat type budat,
mblnr type mblnr,
end of ty_mkpf.
data : it_mkpf type TABLE OF ty_mkpf,
wa_mkpf type ty_mkpf.
types : begin of ty_mseg,
mblnr type mblnr,
matnr type matnr,
werks type werks_d,
menge type menge_d,
dmbtr type dmbtr,
bwart type bwart,
end of ty_mseg.
data : it_mseg type TABLE OF ty_mseg,
wa_mseg type ty_mseg.
types : begin of ty_mara,
matnr type matnr,
mtart type mtart,
end of ty_mara.
data : it_mara type TABLE OF ty_mara ,
wa_mara type ty_mara.
data : begin of it_final occurs 0,
mtart like mara-mtart,
menge like mseg-menge,
dmbtr like mseg-dmbtr,
bwart like mseg-bwart,
werks like mseg-werks,
matnr like mseg-matnr,
mblnr like mkpf-mblnr,
budat like mkpf-budat,
flag3 TYPE i, " value 1,
end of it_final.
*data : it_final type TABLE OF ty_final,
data: wa_final like it_final.
data : flag type f,
flag1 type f,
flag3 type f,
flag4 type f,
flag5 type f,
flag6 type f,
flag7 type f.
**********************************INITIALIZATION*********************"
flag = 0.
flag1 = 0.
flag3 = 0.
flag4 = 0.
flag5 = 0.
flag6 = 0.
flag7 = 0.
******************selection screen****************************
selection-screen begin of block b1 with frame title txt_001.
select-options : plant for mseg-werks,
date for mkpf-budat. "+4(2).
MONTH FOR MONTH_NAMES_GET.
selection-screen end of block b1.
********************************************************************
start-of-selection.
perform get_data.
perform fieldcat.
perform list_display.
&----
*& Form get_data
&----
text
----
form get_data.
select mblnr budat from mkpf into CORRESPONDING FIELDS OF TABLE it_mkpf
where budat in date.
if not it_mkpf is initial.
select mblnr werks matnr menge dmbtr bwart from mseg into corresponding fields of TABLE it_mseg
where werks in plant and mblnr = wa_mkpf-mblnr
or ( bwart = '102' or bwart = '101' or bwart = '601' or bwart = '602' ).
if wa_mseg-bwart = '101'.
flag = flag + wa_mseg-dmbtr.
elseif wa_mseg-bwart = '102'.
flag1 = flag1 + wa_mseg-dmbtr.
elseif wa_mseg-bwart = '601' .
flag4 = flag4 + wa_mseg-bwart.
elseif wa_mseg-bwart = '602' .
flag5 = flag5 + wa_mseg-bwart.
endif.
flag3 = flag - flag1.
flag6 = flag4 - flag5.
endif.
*if not it_mseg is initial.
select matnr mtart from mara into corresponding fields of TABLE it_mara
where matnr = wa_mseg-matnr.
*endif.
loop at it_mkpf into wa_mkpf.
wa_final-mblnr = wa_mkpf-mblnr.
wa_final-budat = wa_mkpf-budat.
READ TABLE it_mseg into wa_mseg with key mblnr = wa_mkpf-mblnr.
wa_final-menge = wa_mseg-menge.
wa_final-dmbtr = wa_mseg-dmbtr.
wa_final-bwart = wa_mseg-bwart.
wa_final-werks = wa_mseg-werks.
wa_final-matnr = wa_mseg-matnr.
READ TABLE it_mara into wa_mara with key matnr = wa_mseg-matnr.
wa_final-mtart = wa_mara-mtart.
APPEND wa_final to it_final.
endloop.
endform. "get_data
&----
*& Form fieldcat
&----
text
----
form fieldcat.
perform fieldcat1 using : 'MTART' 'material type' '1',
'MENGE' 'menge' '2',
'DMTR' 'amt in local value' '3',
'BWART' 'movements' '4',
'MBLNR' 'MBLNR' '5',
'WERKS' 'PLANT' '6',
'MATNR' 'NUMBER' '7',
'BUDAT' 'DATE' '8'.
'flag3' 'sum' '5' ' '.
endform. "fieldcat
&----
*& Form fieldcat1
&----
text
----
-->FIELDNAME text
-->SELTEXT_M text
-->COL_POS text
-->SUM text
----
form fieldcat1 using fieldname
seltext_m
col_pos.
sum.
fieldcat1-fieldname = fieldname.
fieldcat1-seltext_m = seltext_m.
fieldcat1-col_pos = col_pos.
fieldcat1-do_sum = sum.
append fieldcat1 . " to fieldcat1.
clear fieldcat1.
endform. "fieldcat1
&----
*& Form LIST_display
&----
text
----
form list_display.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
it_fieldcat = fieldcat1[]
tables
t_outtab = it_final.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. "list_display
"LIST_display
‎2009 Jan 13 6:55 AM
Hi Sunita ,
your problem is due to the field DMBTR .
'DMTR' 'amt in local value' '3',
please convert this field as char format or string before moving it into final internal table than pass it to
fieldcatalog your prob will solved definately .if not than please send the runtime error description .
Regards ,
Nilesh Jain .
‎2009 Jan 13 6:41 AM
Hi,
Can you provide us the Runtime Error ..... so that it will be helpful to help you faster....
Regards,
Venkatesh
‎2009 Jan 13 6:42 AM
Hi,
Instead of pasting code like this, can you tell me what is your run rime error or your problem?
So that it can be solved
Thanks,
Srilakshmi.
‎2009 Jan 13 6:44 AM
Hi,
the fieldname in the fieldcatalog table should be in capital letters.
'flag3' 'sum' '5' ' '.
it should be 'FLAG3' 'sum' '5' ''.
regards,
Santosh Thorat
‎2009 Jan 13 6:46 AM
Hi,
I think the run time error because of DMBTR,
While passing , u used this field in field catlog as DMTR
use exact field name DMBTR.
‎2009 Jan 13 6:47 AM
Hi Sunitha
Perform a sy-subrc check after each READ statement.
Thanks
Pushpraj
‎2009 Jan 13 6:55 AM
Hi Sunita ,
your problem is due to the field DMBTR .
'DMTR' 'amt in local value' '3',
please convert this field as char format or string before moving it into final internal table than pass it to
fieldcatalog your prob will solved definately .if not than please send the runtime error description .
Regards ,
Nilesh Jain .
‎2009 Jan 13 7:00 AM
Hi,
Some statements are missing in the code
SELECT mblnr werks matnr menge dmbtr bwart FROM mseg INTO CORRESPONDING FIELDS OF TABLE it_mseg
WHERE werks IN plant AND mblnr = wa_mkpf-mblnr " value will be blank as u are not looping or using FOR ENTRIES for table it_mkpf
OR ( bwart = '102' OR bwart = '101' OR bwart = '601' OR bwart = '602' ).
" for below code no how the value in the wa_mseg-dmbtr will get without looping it_mseg?
IF wa_mseg-bwart = '101'.
flag = flag + wa_mseg-dmbtr.
ELSEIF wa_mseg-bwart = '102'.
flag1 = flag1 + wa_mseg-dmbtr.
ELSEIF wa_mseg-bwart = '601' .
flag4 = flag4 + wa_mseg-bwart.
ELSEIF wa_mseg-bwart = '602' .
flag5 = flag5 + wa_mseg-bwart.
ENDIF.
flag3 = flag - flag1.
flag6 = flag4 - flag5.
* * endif.
*if not it_mseg is initial.
SELECT matnr mtart FROM mara INTO CORRESPONDING FIELDS OF TABLE it_mara
WHERE matnr = wa_mseg-matnr.
Edited by: Bala Krishna on Jan 13, 2009 12:31 PM
‎2009 Jan 13 7:32 AM
Hi Sunitha,
As also said by others problem is with the 'DMBTR' field
form fieldcat.
perform fieldcat1 using : 'MTART' 'material type' '1',
'MENGE' 'menge' '2',
'DMBTR' 'amt in local value' '3', " have made the change here
'BWART' 'movements' '4',
'MBLNR' 'MBLNR' '5',
'WERKS' 'PLANT' '6',
'MATNR' 'NUMBER' '7',
'BUDAT' 'DATE' '8'.
*'flag3' 'sum' '5' ' '.
endform. "fieldcatWith luck,
Pritam.