Hi,
I have a query in my report that where the A/c Document numbers have the multiple line items, it goes in loop..means it print the value multiple times like: -
5500004344...............4500
5500004345...............5000
5500004345...............5100
5500004345...............5200
5500004346...............5100
It is taking the 5500004345 value 5100, in the 5500004346 document number.(saw in debugging time)..
But when it have the single document number, it is showing the correct value...
please check my code:----
********************************************************************************
REPORT zak_mat_pur_rudrapur_new NO STANDARD PAGE HEADING LINE-SIZE 125 .
TABLES : mseg, ekpo, mkpf, rseg, bkpf, bseg, lfa1.
TYPE-POOLS : slis.
DATA : BEGIN OF itab OCCURS 0,
belnr LIKE bkpf-belnr,
gjahr LIKE bkpf-gjahr,
budat LIKE bkpf-budat,
awkey LIKE bkpf-awkey,
belnr1(10) TYPE c, " LIKE rseg-belnr,
gjahr1 LIKE rseg-gjahr,
ebeln LIKE rseg-ebeln,
ebelp LIKE rseg-ebelp,
wrbtr LIKE rseg-wrbtr,
menge LIKE rseg-menge,
bstme LIKE rseg-bstme,
lfbnr LIKE rseg-lfbnr,
ebeln1 LIKE ekpo-ebeln,
ebelp1 LIKE ekpo-ebelp,
txz01 LIKE ekpo-txz01,
mblnr LIKE mseg-mblnr,
lifnr LIKE mseg-lifnr,
lfbnr1 LIKE mseg-lfbnr,
rate TYPE p DECIMALS 2,
name1(40) TYPE c , " like lfa1-lifnr,
dmbtr LIKE bseg-dmbtr,
dmbtr1 LIKE bseg-dmbtr,
sum TYPE p DECIMALS 2,
sum1 TYPE p DECIMALS 2,
rate1 TYPE p DECIMALS 2,
lfpos LIKE rseg-lfpos,
END OF itab.
DATA : BEGIN OF itab2 OCCURS 0,
belnr LIKE bkpf-belnr,
gjahr LIKE bkpf-gjahr,
budat LIKE bkpf-budat,
awkey LIKE bkpf-awkey,
belnr1(10) TYPE c, " LIKE rseg-belnr,
gjahr1 LIKE rseg-gjahr,
ebeln LIKE rseg-ebeln,
ebelp LIKE rseg-ebelp,
wrbtr LIKE rseg-wrbtr,
menge LIKE rseg-menge,
bstme LIKE rseg-bstme,
lfbnr LIKE rseg-lfbnr,
ebeln1 LIKE ekpo-ebeln,
ebelp1 LIKE ekpo-ebelp,
txz01 LIKE ekpo-txz01,
mblnr LIKE mseg-mblnr,
lifnr LIKE mseg-lifnr,
lfbnr1 LIKE mseg-lfbnr,
rate TYPE p DECIMALS 2,
name1(40) TYPE c , " like lfa1-lifnr,
dmbtr LIKE bseg-dmbtr,
dmbtr1 LIKE bseg-dmbtr,
sum TYPE p DECIMALS 2,
sum1 TYPE p DECIMALS 2,
rate1 TYPE p DECIMALS 2,
lfpos LIKE rseg-lfpos,
END OF itab2.
************************************************************************
DATA : w_container TYPE scrfname VALUE 'CL_GRID',
w_cprog TYPE lvc_s_layo,
g_repid LIKE sy-repid,
w_save TYPE c,
w_exit TYPE c,
cl_grid TYPE REF TO cl_gui_alv_grid,
cl_custom_container TYPE REF TO cl_gui_custom_container,
it_fld_catalog TYPE slis_t_fieldcat_alv,
wa_fld_catalog TYPE slis_t_fieldcat_alv WITH HEADER LINE ,
layout TYPE slis_layout_alv,
col_pos LIKE sy-cucol ,
alvfc TYPE slis_t_fieldcat_alv.
************************************************************************
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : belnr FOR bkpf-belnr.
*SELECT-OPTIONS : gjahr FOR bkpf-gjahr OBLIGATORY.
PARAMETERS : gjahr LIKE bkpf-gjahr OBLIGATORY.
*SELECT-OPTIONS : budat FOR bkpf-budat.
SELECTION-SCREEN : END OF BLOCK b1.
************************************************************************
PERFORM fill_catalog1 USING:
'LIFNR' 'ITAB2' 'Vendor',
'NAME1' 'ITAB2' 'Name1',
'BELNR' 'ITAB2' 'MIRO Doc. No.' ,
'BUDAT' 'ITAB2' 'Posting Date',
'GJAHR' 'ITAB2' 'Year',
'BELNR1' 'ITAB2' 'A/c Doc. No.',
'LFBNR' 'ITAB2' 'Ref. Document(103)',
'MBLNR' 'ITAB2' 'Material Doc.(105)',
'EBELN' 'ITAB2' 'PO Number',
'EBELP' 'ITAB2' 'Line Item',
'TXZ01' 'ITAB2' 'Material Text',
'MENGE' 'ITAB2' 'Quantity',
'BSTME' 'ITAB2' 'Unit',
*'RATE' 'ITAB2' 'Rate',
'RATE1' 'ITAB2' 'RATE1',
'WRBTR' 'ITAB2' 'Amount',
'DMBTR' 'ITAB2' 'Variance A',
'DMBTR1' 'ITAB2' 'Variance B',
'SUM' 'ITAB2' 'Total Amt.',
'SUM1' 'ITAB2' 'Total Amt.1'.
************************************************************************
SELECT belnr gjahr budat awkey INTO CORRESPONDING FIELDS OF TABLE itab FROM bkpf WHERE belnr IN belnr AND gjahr = gjahr.
IF sy-subrc <> 0.
MESSAGE 'DATA NOT FOUND.' TYPE 'I'(001).
ENDIF.
SORT itab BY belnr.
LOOP AT itab.
SPLIT itab-awkey AT space INTO: itab-belnr1 itab-gjahr1.
SELECT belnr gjahr ebeln ebelp wrbtr menge bstme lfbnr lfpos FROM rseg INTO (itab2-belnr1, itab2-gjahr1, itab2-ebeln,
itab2-ebelp, itab2-wrbtr, itab2-menge, itab2-bstme, itab2-lfbnr, itab2-lfpos) WHERE belnr = itab-belnr1 AND gjahr = itab-gjahr .
itab2-belnr = itab-belnr.
itab2-gjahr = itab-gjahr.
itab2-budat = itab-budat.
itab2-awkey = itab-awkey.
SELECT SINGLE ebeln ebelp txz01 FROM ekpo INTO (itab2-ebeln1, itab2-ebelp1, itab2-txz01) WHERE ebeln = itab2-ebeln AND ebelp = itab2-ebelp.
SELECT SINGLE mblnr lifnr FROM mseg INTO (itab2-mblnr, itab2-lifnr) WHERE lfbnr = itab2-lfbnr AND bwart EQ '105'.
SELECT SINGLE name1 FROM lfa1 INTO itab2-name1 WHERE lifnr = itab2-lifnr .
SELECT SINGLE dmbtr FROM bseg INTO itab2-dmbtr WHERE belnr = itab2-belnr AND gjahr = itab2-gjahr AND buzid = 'S' AND ebelp = itab2-ebelp.
itab2-rate = itab2-wrbtr / itab2-menge.
itab2-sum = itab2-wrbtr + itab2-dmbtr + itab2-dmbtr1.
itab2-rate1 = itab2-sum / itab2-menge.
*itab2-sum1 = itab2-wrbtr + itab2-dmbtr1.
APPEND itab2.
ENDSELECT.
ENDLOOP.
DATA : cnt TYPE i value 1.
LOOP AT itab2.
cnt = cnt + 1.
SELECT dmbtr FROM bseg INTO itab2-dmbtr1 WHERE belnr = itab2-belnr AND gjahr = itab2-gjahr AND buzid = 'T' AND mwart = 'V'.
MODIFY itab2 INDEX cnt TRANSPORTING dmbtr1.
cnt = cnt + 1.
ENDSELECT.
ENDLOOP.
************************************************************************
layout-zebra = 'X' .
layout-colwidth_optimize(1) = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZAK_MAT_PUR_RUDRAPUR_NEW'
is_layout = layout
it_fieldcat = it_fld_catalog
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = itab2
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
&----
*& Form FILL_CATALOG1
&----
text
----
-->P_FIELDNAME text
-->P_REF_TABLE text
-->P_SCRTEXT text
----
FORM fill_catalog1 USING p_fieldname TYPE any
p_ref_table TYPE any
p_scrtext TYPE any.
CLEAR : wa_fld_catalog.
wa_fld_catalog-fieldname = p_fieldname.
wa_fld_catalog-tabname = p_ref_table.
wa_fld_catalog-seltext_s = p_scrtext.
wa_fld_catalog-seltext_m = p_scrtext.
wa_fld_catalog-seltext_l = p_scrtext.
wa_fld_catalog-do_sum = 'X'.
wa_fld_catalog-outputlen = 15.
wa_fld_catalog-no_zero = 'X'.
APPEND wa_fld_catalog TO it_fld_catalog.
ENDFORM. " fill_catalog1
********************************************************************************
please help me....