‎2007 Jun 08 12:41 PM
Hi all ,
basically i have two internal table it_clearance and it_fnl.
in it_clearance i do not want to include field called SPART and in it_fnl i want to include field by getting its contents from MARA Table and join the field to it_fnl wwhich already have contents of it_clearance in it... just check the code below and please help me guys...... Problem solving help is highly rewarded...
REPORT zsd_clearance NO STANDARD PAGE HEADING LINE-SIZE 300 LINE-COUNT 55(2).
Tables----------------------------------------------------------------*
TABLES : j_1iexcdtl,
t001w.
.
Internal Tables -----------------------------------------------------*
DATA : BEGIN OF it_clearance OCCURS 0,
werks LIKE j_1iexcdtl-werks,
matnr LIKE j_1iexcdtl-matnr,
kunag LIKE j_1iexchdr-kunag,
exdat LIKE j_1iexcdtl-exdat,
menge LIKE j_1iexcdtl-menge,
zmmyy TYPE j_1iexcdtl-exdat,
spart LIKE mara-spart,
END OF it_clearance.
DATA : BEGIN OF it_mth OCCURS 0,
kunag LIKE j_1iexchdr-kunag,
zmmyy(6) ,
END OF it_mth.
data : it_fnl like it_clearance occurs 0 with header line.
DATA: v_from(8),
zmy(8),
ymmyy(8),
zspart like mara-spart,
zmenge LIKE J_1Iexcdtl-menge,
ymenge LIKE J_1Iexcdtl-menge,
v_depo(90).
Selection Parameters ***********************************************
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_exdat for j_1iexcdtl-exdat.
*PARAMETERS : s_kunag type j_1iexchdr-kunag .
SELECTION-SCREEN : END OF BLOCK b1.
**********************************************************************
*******************************SELECTION-SCREEN**************************
AT SELECTION-SCREEN.
Validate test for Plant in selections
IF NOT s_werks IS INITIAL.
SELECT SINGLE * FROM t001w
WHERE werks = s_werks.
IF sy-subrc NE 0.
MESSAGE e600(fr) WITH 'This Plant '
s_werks ' does not exist.'
ENDIF.
ENDIF.
Start of Selection ********************************
START-OF-SELECTION.
PERFORM clear_all.
perform get_data.
***************************************************************************
Top of page-------------------------------------------------------------*
TOP-OF-PAGE.
WRITE :/45 'ADITYA BIRLA NUVO LIMITED. (UNIT : INDIAN RAYON) Run Date : ' ,sy-datum, 'Page No : ',sy-pagno.
ULINE AT /(185).
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE 😕 'Dealer',10 'Plant',
20 'Colour',
40 'Type',
25 'Apr',
35 'May',
45 'Jun',
55 'Jul',
65 'Aug',
75 'Sep',
85 'Oct',
95 'Nov',
105 'Dec',
115 'Jan',
125 'Feb',
135 'Mar',
140 'Total'.
FORMAT COLOR OFF.
ULINE AT /(185).
End of page -----------------------------------------------------------------*
END-OF-PAGE.
ULINE (185).
&----
*& Form clear_all
&----
Clear All Iternal tables and Varialbes
----
FORM clear_all .
REFRESH: it_clearance.
ENDFORM. " clear_all
&----
*& Form get_data
&----
Get the Datas for Dealer Performance Report
----
FORM get_data .
SELECT awerks bmatnr akunag aexdat sum( b~menge ) as menge
into corresponding fields of table it_clearance
from j_1iexcdtl as b inner join j_1iexchdr as a
on awerks eq bwerks
and aexnum eq bexnum
and aexdat eq bexdat
and adocno eq bdocno
and adocyr eq bdocyr
WHERE a~werks = '1010'
and a~kunag in s_kunag
and a~exdat in s_exdat
and a~exgrp = '11'
and a~srgrp = '08'
group by awerks bmatnr akunag aexdat.
IF SY-DBCNT EQ 0.
WRITE:/1 ' NO RECORDS FOUND'.
ENDIF.
CHECK NOT it_clearance[] IS INITIAL .
DELETE it_clearance where matnr = ''.
it_fnl[] = it_clearance[].
Select spart from mara
into corresponding fields of table it_fnl
for all entries in it_clearance
where matnr = it_clearance-matnr.
modify table it_fnl.
SORT it_fnl BY kunag exdat.
LOOP AT it_fnl.
CONCATENATE it_fnl-exdat6(2) it_fnl-exdat4(2) INTO zmy.
it_mth-kunag = it_fnl-kunag.
it_mth-zmmyy = it_fnl-zmmyy.
MOVE: zmy TO it_fnl-zmmyy.
MODIFY TABLE it_fnl.
APPEND it_mth.
ENDLOOP.
SORT it_fnl BY kunag zmmyy.
SORT it_mth BY kunag zmmyy.
DELETE ADJACENT DUPLICATES FROM it_mth .
LOOP AT it_mth.
LOOP AT it_fnl WHERE kunag EQ it_mth-kunag
AND zmmyy EQ it_mth-zmmyy.
zmenge = zmenge + it_fnl-menge.
ymenge = ymenge + it_fnl-menge.
WRITE: /1 it_fnl-kunag,' ',zmy,' ',it_fnl-spart,' ',it_fnl-exdat,' ',zmenge.
ENDLOOP.
zmenge = ' '.
ymenge = ' '.
SKIP.
ENDLOOP.
SKIP.
SKIP.
ULINE.
WRITE: /1 'Grand total :' ,' ',ymenge.
ENDFORM. " get_data
regards,
Naveen Kumar T.
‎2007 Jun 11 6:19 AM
hi,
remove spart LIKE mara-spart from it_clearance and use another internal table.
data : begin of it_mara occurs 0,
matnr LIKE mara-matnr,
spart LIKE mara-spart
end of it_mara.
DATA : BEGIN OF it_clearance OCCURS 0,
werks LIKE j_1iexcdtl-werks,
matnr LIKE j_1iexcdtl-matnr,
kunag LIKE j_1iexchdr-kunag,
exdat LIKE j_1iexcdtl-exdat,
menge LIKE j_1iexcdtl-menge,
zmmyy TYPE j_1iexcdtl-exdat,
END OF it_clearance
*select statement
Select matnr spart from mara
into table it_mara
for all entries in it_clearance
where matnr = it_clearance-matnr.
if sy-subrc = 0.
delete adjacent duplicates from it_mara comparing matnr.
endif.
for populating final internal table
in this loop make changes
LOOP AT it_fnl.
CONCATENATE it_fnl-exdat6(2) it_fnl-exdat4(2) INTO zmy.
it_mth-kunag = it_fnl-kunag.
it_mth-zmmyy = it_fnl-zmmyy.
MOVE: zmy TO it_fnl-zmmyy.
MODIFY TABLE it_fnl.
APPEND it_mth.
ENDLOOP
replace above loop by this one.
sort it_fnl by matnr.
sort it_mata by matnr.
loop at it_fnl.
read table it_mara with key matnr = it_fnl-matnr binary search.
if sy-subrc = 0.
it_fnl-spart = it_mara-spart.
endif.
CONCATENATE it_fnl-exdat6(2) it_fnl-exdat4(2) INTO zmy.
it_mth-kunag = it_fnl-kunag.
it_mth-zmmyy = it_fnl-zmmyy.
MOVE: zmy TO it_fnl-zmmyy.
MODIFY TABLE it_fnl.
APPEND it_mth.
ENDLOOP
‎2007 Jun 11 6:19 AM
hi,
remove spart LIKE mara-spart from it_clearance and use another internal table.
data : begin of it_mara occurs 0,
matnr LIKE mara-matnr,
spart LIKE mara-spart
end of it_mara.
DATA : BEGIN OF it_clearance OCCURS 0,
werks LIKE j_1iexcdtl-werks,
matnr LIKE j_1iexcdtl-matnr,
kunag LIKE j_1iexchdr-kunag,
exdat LIKE j_1iexcdtl-exdat,
menge LIKE j_1iexcdtl-menge,
zmmyy TYPE j_1iexcdtl-exdat,
END OF it_clearance
*select statement
Select matnr spart from mara
into table it_mara
for all entries in it_clearance
where matnr = it_clearance-matnr.
if sy-subrc = 0.
delete adjacent duplicates from it_mara comparing matnr.
endif.
for populating final internal table
in this loop make changes
LOOP AT it_fnl.
CONCATENATE it_fnl-exdat6(2) it_fnl-exdat4(2) INTO zmy.
it_mth-kunag = it_fnl-kunag.
it_mth-zmmyy = it_fnl-zmmyy.
MOVE: zmy TO it_fnl-zmmyy.
MODIFY TABLE it_fnl.
APPEND it_mth.
ENDLOOP
replace above loop by this one.
sort it_fnl by matnr.
sort it_mata by matnr.
loop at it_fnl.
read table it_mara with key matnr = it_fnl-matnr binary search.
if sy-subrc = 0.
it_fnl-spart = it_mara-spart.
endif.
CONCATENATE it_fnl-exdat6(2) it_fnl-exdat4(2) INTO zmy.
it_mth-kunag = it_fnl-kunag.
it_mth-zmmyy = it_fnl-zmmyy.
MOVE: zmy TO it_fnl-zmmyy.
MODIFY TABLE it_fnl.
APPEND it_mth.
ENDLOOP