Application Development and Automation 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: 
Read only

Regarding Output problem

Former Member
0 Likes
1,024

Hi Guriji's

I made a one report for display the last consumption period of material and show last day of consumption . according to my coding it will show last consumption period of material based on the date, that means in different-2 date this material is consumed . But my requirement is this it will pick only the latest date for this particular material and last consumption day.

so plz tell me where i the problem in my coding.

REPORT Z_MC46 NO STANDARD PAGE HEADING LINE-SIZE 232.

TABLES: ZV_MC46. " view"

DATA: BEGIN OF T_ITAB OCCURS 0,

MATNR TYPE ZV_MC46-MATNR,

MAKTX TYPE ZV_MC46-MAKTX,

SALK3 TYPE ZV_MC46-SALK3,

MATKL TYPE ZV_MC46-MATKL,

MTART TYPE ZV_MC46-MTART,

EKGRP TYPE ZV_MC46-EKGRP,

LBKUM TYPE ZV_MC46-LBKUM,

BWART TYPE ZV_MC46-BWART,

BUDAT TYPE ZV_MC46-BUDAT,

DATE LIKE SY-DATUM,

END OF T_ITAB.

START-OF-SELECTION.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: W_WERKS FOR ZV_MC46-WERKS.

PARAMETERS: DAYS(4).

SELECTION-SCREEN END OF BLOCK B1.

IF DAYS IS NOT INITIAL.

SELECTION-SCREEN END OF BLOCK B1.

IF DAYS IS NOT INITIAL.

SELECT MATNR MAKTX SALK3 MATKL MTART EKGRP LBKUM BWART BUDAT FROM ZV_MC46 INTO CORRESPONDING FIELDS OF TABLE T_ITAB

WHERE WERKS IN W_WERKS AND BUDAT BETWEEN ZV_MC46-BUDAT AND SY-DATUM . " BUDAT IN B_BUDAT.

DELETE ADJACENT DUPLICATES FROM T_ITAB.

ENDIF.

WRITE:/1 'MATNR',

14 'MAKTX',

48 'LBKUM',

64 'MATKL',

75 'MTART',

83 'EKGRP',

100 'SALK3',

  • 112 'MBLNR',

124 'BWART',

132 'LAST DATE',

145 'BUDAT',

158 'DAYS'.

SKIP 1.

SORT T_ITAB BY BUDAT MATNR.

LOOP AT T_ITAB.

AT END OF BUDAT .

DELETE ADJACENT DUPLICATES FROM T_ITAB.

IF T_ITAB IS NOT INITIAL.

DAYS = SY-DATUM - T_ITAB-BUDAT.

WRITE:/1 T_ITAB-MATNR,

14 T_ITAB-MAKTX,

40 T_ITAB-LBKUM,

64 T_ITAB-MATKL,

75 T_ITAB-MTART,

83 T_ITAB-EKGRP,

92 T_ITAB-SALK3,

125 T_ITAB-BWART,

132 ZV_MC46-BUDAT,

145 T_ITAB-BUDAT,

158 DAYS.

ENDIF.

ENDAT.

ENDLOOP.

thanks ...

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
980

Hi,

You could just try the following,


REPORT Z_MC46 NO STANDARD PAGE HEADING LINE-SIZE 232.
TABLES: ZV_MC46. " view"

DATA: BEGIN OF T_ITAB OCCURS 0,
MATNR TYPE ZV_MC46-MATNR,
MAKTX TYPE ZV_MC46-MAKTX,
SALK3 TYPE ZV_MC46-SALK3,
MATKL TYPE ZV_MC46-MATKL,
MTART TYPE ZV_MC46-MTART,
EKGRP TYPE ZV_MC46-EKGRP,
LBKUM TYPE ZV_MC46-LBKUM,
BWART TYPE ZV_MC46-BWART,
BUDAT TYPE ZV_MC46-BUDAT,
DATE LIKE SY-DATUM,
END OF T_ITAB.


START-OF-SELECTION.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: W_WERKS FOR ZV_MC46-WERKS.
PARAMETERS: DAYS(4).
SELECTION-SCREEN END OF BLOCK B1.
IF DAYS IS NOT INITIAL.
SELECTION-SCREEN END OF BLOCK B1.
IF DAYS IS NOT INITIAL.

SELECT MATNR MAKTX SALK3 MATKL MTART EKGRP LBKUM BWART BUDAT 
FROM ZV_MC46 
INTO CORRESPONDING FIELDS OF TABLE T_ITAB
WHERE WERKS IN W_WERKS AND 
BUDAT BETWEEN ZV_MC46-BUDAT AND SY-DATUM . " BUDAT IN B_BUDAT.
ENDIF.

WRITE:/1 'MATNR',
14 'MAKTX',
48 'LBKUM', 
64 'MATKL',
75 'MTART',
83 'EKGRP',
100 'SALK3',
* 112 'MBLNR',
124 'BWART',
132 'LAST DATE',
145 'BUDAT',
158 'DAYS'.
SKIP 1.

SORT T_ITAB BY BUDAT MATNR DESCENDING.
DELETE ADJACENT DUPLICATES FROM T_ITAB comparing matnr.

LOOP AT T_ITAB.
DAYS = SY-DATUM - T_ITAB-BUDAT.

WRITE:/1 T_ITAB-MATNR,
14 T_ITAB-MAKTX, 
40 T_ITAB-LBKUM, 
64 T_ITAB-MATKL,
75 T_ITAB-MTART,
83 T_ITAB-EKGRP,
92 T_ITAB-SALK3,
125 T_ITAB-BWART,
132 ZV_MC46-BUDAT,
145 T_ITAB-BUDAT,
158 DAYS.
ENDLOOP.

Vikranth

7 REPLIES 7
Read only

Former Member
0 Likes
981

Hi,

You could just try the following,


REPORT Z_MC46 NO STANDARD PAGE HEADING LINE-SIZE 232.
TABLES: ZV_MC46. " view"

DATA: BEGIN OF T_ITAB OCCURS 0,
MATNR TYPE ZV_MC46-MATNR,
MAKTX TYPE ZV_MC46-MAKTX,
SALK3 TYPE ZV_MC46-SALK3,
MATKL TYPE ZV_MC46-MATKL,
MTART TYPE ZV_MC46-MTART,
EKGRP TYPE ZV_MC46-EKGRP,
LBKUM TYPE ZV_MC46-LBKUM,
BWART TYPE ZV_MC46-BWART,
BUDAT TYPE ZV_MC46-BUDAT,
DATE LIKE SY-DATUM,
END OF T_ITAB.


START-OF-SELECTION.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: W_WERKS FOR ZV_MC46-WERKS.
PARAMETERS: DAYS(4).
SELECTION-SCREEN END OF BLOCK B1.
IF DAYS IS NOT INITIAL.
SELECTION-SCREEN END OF BLOCK B1.
IF DAYS IS NOT INITIAL.

SELECT MATNR MAKTX SALK3 MATKL MTART EKGRP LBKUM BWART BUDAT 
FROM ZV_MC46 
INTO CORRESPONDING FIELDS OF TABLE T_ITAB
WHERE WERKS IN W_WERKS AND 
BUDAT BETWEEN ZV_MC46-BUDAT AND SY-DATUM . " BUDAT IN B_BUDAT.
ENDIF.

WRITE:/1 'MATNR',
14 'MAKTX',
48 'LBKUM', 
64 'MATKL',
75 'MTART',
83 'EKGRP',
100 'SALK3',
* 112 'MBLNR',
124 'BWART',
132 'LAST DATE',
145 'BUDAT',
158 'DAYS'.
SKIP 1.

SORT T_ITAB BY BUDAT MATNR DESCENDING.
DELETE ADJACENT DUPLICATES FROM T_ITAB comparing matnr.

LOOP AT T_ITAB.
DAYS = SY-DATUM - T_ITAB-BUDAT.

WRITE:/1 T_ITAB-MATNR,
14 T_ITAB-MAKTX, 
40 T_ITAB-LBKUM, 
64 T_ITAB-MATKL,
75 T_ITAB-MTART,
83 T_ITAB-EKGRP,
92 T_ITAB-SALK3,
125 T_ITAB-BWART,
132 ZV_MC46-BUDAT,
145 T_ITAB-BUDAT,
158 DAYS.
ENDLOOP.

Vikranth

Read only

0 Likes
980

HI

what are the changes u have done this code? it will also give the same output.But i want to pick the last latest date on which the material is consumed.

thanks

Read only

0 Likes
980

Hi,

Did you compare the code i posted and the code you have at present? Execute with what i sent and check if you are getting the material with the latest date.

Vikranth

Read only

0 Likes
980

Hi

I got the material with the latest date, but for the same material i also got another date on which the material consumed .but my requirement is that for all of those date i want to capture only the latest date material. Plz tell me for this what should i change in my code.

Thanks.

Edited by: Sachin Rathore on Oct 24, 2009 6:43 AM

Read only

0 Likes
980

In the code i posted, change the sort statement this way,



sort t_itab by matnr ascending budat descending.

delete adjacent duplicates from t_itab comparing matnr.

Vikranth

Read only

0 Likes
980

Hi Dear,

Thanks.

My program is working fine. You just tell me , my output format is ALV.

Suppose when there is no material is consumed since last 10 days then in the output of alv i want to display one message that

"no material is consumedsince last 10 days" for this what should i do. Plz tell me.

Thanks.

Read only

0 Likes
980

Hi,

As per the rules of the forum, only one question per thread is allowed. please close this thread and open a new one for your new query.

Vikranth