Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Report is not displaying 'previous day maximum sale' correctly

Former Member
0 Kudos

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.

1 ACCEPTED SOLUTION

deepak_dhamat
Active Contributor
0 Kudos

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.

8 REPLIES 8

deepak_dhamat
Active Contributor
0 Kudos

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.

0 Kudos

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

0 Kudos

Hi

You can Use select Max for selection of maximum value.

Regards

Ajit

0 Kudos

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

0 Kudos

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.

0 Kudos

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.

Former Member
0 Kudos

Hi

You can use

AT END OF 'DATE'.

ENDAT.

Regards

Ajit

Former Member
0 Kudos

Hi,

Try using "WHERE" clause in "MODIFY" statement based on document date field.

Regards,

Sharin.