12-02-2011 4:46 AM
There is a issue in the report
Based on material and date and displays the previous day maximum sale
The issue is whenever i run the report in give a single Document Date on selection screen it works fine but whenever i run the report in a range it shows the previous date of the range like when i run the report with
Document date - 05.07.2007, its working fine but and showing 04.07.2007 as previous day
when run the report
Document date - 01.07.2007 to 31.07.2007, its displaying 30.07.2007 for all records and not displaying different results based on doc date,
like it should show for 31.07.2007 --- 30.07.2007 and
30.07.2007 --- 29.07.2007
29.07.2007 --- 28.07.2007
CODE :-
**************************************************************************
FORM data_retrieval.
SELECT MSEGMATNR MSEGMBLNR MSEGMENGE MSEGMEINS MSEGCHARG MSEGLGORT MSEGBWART MSEGWERKS MSEGLIFNR MSEGEBELN MSEGBPRME MSEGDMBTR MSEGEXBWR MSEGVKWRT MSEG~SHKZG
MKPFBLDAT MKPFBUDAT MKPFMBLNR MKPFBKTXT MKPFXABLN MKPFCPUDT MKPFXBLNR MKPFMJAHR
INTO CORRESPONDING FIELDS OF TABLE itab FROM MSEG
JOIN MKPF
ON MSEGMBLNR = MKPFMBLNR
where MSEG~MATNR IN S_MATNR
AND MSEG~WERKS IN S_WERKS
AND MSEG~LGORT IN S_LGORT
AND MSEG~CHARG IN S_CHARG
AND MSEG~LIFNR IN S_LIFNR
AND MSEG~KUNNR IN S_KUNNR
AND MSEG~BWART IN S_BWART
AND MSEG~SOBKZ IN S_SOBKZ
AND MKPF~BUDAT IN S_BUDAT
AND MKPF~BLDAT IN S_BLDAT .
IF ITAB[] IS NOT INITIAL.
select matnr vbeln netwr UMKZWI1_01 fkdat ummenge VKORG VGBEL from s961
into corresponding fields of table IT_S961 FOR ALL ENTRIES IN itab
where matnr = itab-matnr and fkdat < itab-bldat.
ENDIF.
SORT IT_S961 descending BY matnr fkdat ummenge .
**
LOOP AT itab INTO wa_itab.
READ TABLE IT_S961 WITH KEY MATNR = WA_ITAB-MATNR BINARY SEARCH.
IF sy-subrc = 0.
wa_itab-VBELN = IT_S961-VBELN.
wa_itab-NETWR = IT_S961-NETWR.
wa_itab-UMKZWI1_01 = IT_S961-UMKZWI1_01.
wa_itab-UMMENGE = IT_S961-UMMENGE.
wa_itab-VKORG = IT_S961-VKORG.
wa_itab-VGBEL = IT_S961-VGBEL.
wa_itab-FKDAT = IT_S961-FKDAT.
ENDIF.
MODIFY itab FROM wa_itab TRANSPORTING VBELN NETWR UMKZWI1_01 FKDAT UMMENGE VKORG VGBEL.
CLEAR : wa_itab.
ENDLOOP.
12-02-2011 5:01 AM
hi ,
"Just take another date column and pass one date minus from document date and display .
loop at itab .
itab-budat " document date
itab-previous_dt = itab-budat- 1 .
modify itab transporting previous_dt .
endloop.
regards
Deepak.
12-02-2011 5:01 AM
hi ,
"Just take another date column and pass one date minus from document date and display .
loop at itab .
itab-budat " document date
itab-previous_dt = itab-budat- 1 .
modify itab transporting previous_dt .
endloop.
regards
Deepak.
12-02-2011 5:38 AM
Hi,
Now I want to get the values of the maximum Qty for previous date sale from table S961
select matnr vbeln netwr UMKZWI1_01 fkdat ummenge VKORG VGBEL from s961
into corresponding fields of table IT_S961 FOR ALL ENTRIES IN itab
where matnr = itab-matnr and fkdat = itab-previous_dt.
Regards,
Nishant
12-02-2011 5:54 AM
Hi
You can Use select Max for selection of maximum value.
Regards
Ajit
12-02-2011 8:04 AM
Hi,
I have written the following statement , data is there in the table but its not displaying any data in the report..
select matnr vbeln netwr UMKZWI1_01 fkdat ummenge VKORG VGBEL from s961
into corresponding fields of table IT_S961 FOR ALL ENTRIES IN itab
where matnr = itab-matnr
and fkdat EQ itab-previous_dt and ummenge = ( SELECT MAX( ummenge ) FROM s961 where matnr = itab-matnr and fkdat = itab-previous_dt ).
Regards,
Nishant
12-02-2011 10:30 AM
Hi ,
select matnr vbeln netwr UMKZWI1_01 fkdat ummenge VKORG VGBEL from s961
into corresponding fields of table IT_S961 FOR ALL ENTRIES IN itab
where matnr = itab-matnr
and fkdat EQ itab-previous_dt .
sort it_s961 by matnr vbeln fkdat previous_dt ummenge desc . " here you will get data desc menge .
here you will get max value in first record for matnr vbeln fkdat previous_dt.
regards
Deepak.
12-02-2011 10:54 AM
Hi,
Still values are not coming
SELECT matnr fkdat ummenge vbeln vkorg vgbel netwr umkzwi1_01 FROM s961
INTO CORRESPONDING FIELDS OF TABLE it_s961 FOR ALL ENTRIES IN itab
WHERE matnr = itab-matnr
AND fkdat EQ itab-previous_dt.
ENDIF.
sort it_s961 by matnr vbeln fkdat previous_dt ummenge descending .
LOOP AT itab INTO wa_itab.
READ TABLE it_s961 WITH KEY matnr = wa_itab-matnr BINARY SEARCH.
IF sy-subrc = 0.
wa_itab-vbeln = it_s961-vbeln.
wa_itab-netwr = it_s961-netwr.
wa_itab-umkzwi1_01 = it_s961-umkzwi1_01.
wa_itab-ummenge = it_s961-ummenge.
wa_itab-vkorg = it_s961-vkorg.
wa_itab-vgbel = it_s961-vgbel.
wa_itab-fkdat = it_s961-fkdat.
ENDIF.
MODIFY itab FROM wa_itab TRANSPORTING fkdat ummenge vbeln netwr umkzwi1_01 vkorg vgbel.
CLEAR : wa_itab.
ENDLOOP.
12-02-2011 5:01 AM
12-02-2011 5:04 AM
Hi,
Try using "WHERE" clause in "MODIFY" statement based on document date field.
Regards,
Sharin.