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
765

HI GURIJI.

i have written one report for displaying last consumption days. but in input screen i given matnr plant and date this report shows right output.

but when we give plant and days it does not show the correct output. For particular days it is dispaly the output as( 100, 140 , 220) but when we give days like (160, 165.180,200) it does not show any output.Plz tell me what is problem in my query.

REPORT Z_MC46 NO STANDARD PAGE HEADING LINE-SIZE 232.

TYPE-POOLS: SLIS.

TABLES: ZV_MC46.

DATA: SUM TYPE I.

DATA: DAY(4).

DATA: DATE(8).

data: MATNR1 TYPE ZV_MC46-MATNR,

MATNR2 TYPE ZV_MC46-MATNR.

data: dat9 type zv_mc46-budat.

dat9 = ( sy-datum - '90' ).

DATA: BEGIN OF T_ITAB OCCURS 0,

MATNR TYPE ZV_MC46-MATNR,

MAKTX TYPE ZV_MC46-MAKTX,

WERKS TYPE ZV_MC46-WERKS,

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,

MEINS TYPE ZV_MC46-MEINS,

BWART TYPE ZV_MC46-BWART,

BUDAT TYPE ZV_MC46-BUDAT,

END OF T_ITAB.

DATA: BEGIN OF T_YTAB OCCURS 0,

MATNR TYPE ZV_MC46-MATNR,

MAKTX TYPE ZV_MC46-MAKTX,

WERKS TYPE ZV_MC46-WERKS,

DAYS(4),

BUDAT TYPE ZV_MC46-BUDAT,

LBKUM TYPE ZV_MC46-LBKUM,

MEINS TYPE ZV_MC46-MEINS,

SALK3 TYPE ZV_MC46-SALK3,

MATKL TYPE ZV_MC46-MATKL,

MTART TYPE ZV_MC46-MTART,

EKGRP TYPE ZV_MC46-EKGRP,

CURR(4),

*

END OF T_YTAB.

Data: t_itab1 LIKE STANDARD TABLE OF t_itab WITH HEADER LINE.

DATA: Y_ITAB LIKE STANDARD TABLE OF T_ITAB WITH HEADER LINE.

START-OF-SELECTION.

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

SELECT-OPTIONS: M_MATNR FOR ZV_MC46-MATNR,

W_WERKS FOR ZV_MC46-WERKS OBLIGATORY.

PARAMETERS: DAYS(4) OBLIGATORY .

SELECT-OPTIONS:M_MTART FOR ZV_MC46-MTART,

E_EKGRP FOR ZV_MC46-EKGRP.

SELECTION-SCREEN END OF BLOCK B1.

IF DAYS IS NOT INITIAL.

ZV_MC46-BUDAT = SY-DATUM - DAYS.

if days >= 90 .

DAY = DAYS - '90'.

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

WHERE MATNR IN M_MATNR AND WERKS IN W_WERKS AND BUDAT between ZV_MC46-BUDAT and sy-datum AND MTART IN M_MTART AND EKGRP IN E_EKGRP.

ENDIF.

endif.

loop at t_itab.

if T_ITAB-BUDAT between dat9 and sy-datum.

MATNR1 = T_ITAB-MATNR.

else.

if T_ITAB-BUDAT between zv_mc46-budat and dat9.

MATNR2 = T_ITAB-MATNR.

ENDIF.

endif.

endloop.

loop at t_itab.

if matnr2 = matnr1 .

sum = sy-tabix.

delete t_itab index sum.

ELSE.

if T_ITAB-budat between dat9 and sy-datum.

sum = sy-tabix.

DELETE t_itab index sum.

ENDIF.

ENDIF.

endloop.

LOOP AT T_ITAB.

IF T_ITAB-LBKUM = 0 .

SUM = SY-TABIX.

DELETE T_ITAB INDEX SUM.

ENDIF.

ENDLOOP.

SORT T_ITAB BY MATNR ASCENDING BUDAT DESCENDING .

DELETE ADJACENT DUPLICATES FROM T_ITAB COMPARING MATNR.

thanks.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
726

Could you pls make your code more readable and format it with the DISPLAY AS CODE option provided in the SDN toolbar.

6 REPLIES 6
Read only

Former Member
0 Likes
727

Could you pls make your code more readable and format it with the DISPLAY AS CODE option provided in the SDN toolbar.

Read only

0 Likes
726

Plz tell me how ? i don't know.

Read only

0 Likes
726

Hi,

Copy your code from the ABAP EDITOR and paste it here. then select the code and click on the < > icon in the toolbar. This would display the code in a more readable way.

Thanks,

Harini

Read only

0 Likes
726

hi

HI GURIJI. i have written one report for displaying last consumption days. but in input screen i given matnr plant and date this report shows right output. but when we give plant and days it does not show the correct output. For particular days it is dispaly the output as( 100, 140 , 220) but when we give days like (160, 165.180,200) it does not show any output.Plz tell me what is problem in my query.

REPORT Z_MC46 NO STANDARD PAGE HEADING LINE-SIZE 232.

TYPE-POOLS: SLIS.

TABLES: ZV_MC46.

DATA: SUM TYPE I.

DATA: DAY(4).

DATA: DATE(8).

data: MATNR1 TYPE ZV_MC46-MATNR,

MATNR2 TYPE ZV_MC46-MATNR.

data: dat9 type zv_mc46-budat.

dat9 = ( sy-datum - '90' ).

DATA: BEGIN OF T_ITAB OCCURS 0,

MATNR TYPE ZV_MC46-MATNR,

MAKTX TYPE ZV_MC46-MAKTX,

WERKS TYPE ZV_MC46-WERKS,

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,

MEINS TYPE ZV_MC46-MEINS,

BWART TYPE ZV_MC46-BWART,

BUDAT TYPE ZV_MC46-BUDAT,

END OF T_ITAB.

DATA: BEGIN OF T_YTAB OCCURS 0,

MATNR TYPE ZV_MC46-MATNR,

MAKTX TYPE ZV_MC46-MAKTX,

WERKS TYPE ZV_MC46-WERKS,

DAYS(4),

BUDAT TYPE ZV_MC46-BUDAT,

LBKUM TYPE ZV_MC46-LBKUM,

MEINS TYPE ZV_MC46-MEINS,

SALK3 TYPE ZV_MC46-SALK3,

MATKL TYPE ZV_MC46-MATKL,

MTART TYPE ZV_MC46-MTART,

EKGRP TYPE ZV_MC46-EKGRP,

CURR(4),

*

END OF T_YTAB.

  • Data: t_itab1 LIKE STANDARD TABLE OF t_itab WITH HEADER LINE.

DATA: Y_ITAB LIKE STANDARD TABLE OF T_ITAB WITH HEADER LINE.

  • TOTAL(10).

START-OF-SELECTION.

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

SELECT-OPTIONS: M_MATNR FOR ZV_MC46-MATNR,

W_WERKS FOR ZV_MC46-WERKS OBLIGATORY.

PARAMETERS: DAYS(4) OBLIGATORY .

SELECT-OPTIONS:M_MTART FOR ZV_MC46-MTART,

E_EKGRP FOR ZV_MC46-EKGRP.

SELECTION-SCREEN END OF BLOCK B1.

IF DAYS IS NOT INITIAL.

ZV_MC46-BUDAT = SY-DATUM - DAYS.

*days = SY-DATUM - ZV_MC46-BUDAT.

if days >= 90 .

DAY = DAYS - '90'.

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

WHERE MATNR IN M_MATNR AND WERKS IN W_WERKS AND BUDAT between ZV_MC46-BUDAT and sy-datum AND MTART IN M_MTART AND EKGRP IN E_EKGRP. " BUDAT IN B_BUDAT.

ENDIF.

endif.

loop at t_itab.

if T_ITAB-BUDAT between dat9 and sy-datum.

MATNR1 = T_ITAB-MATNR.

else.

if T_ITAB-BUDAT between zv_mc46-budat and dat9.

MATNR2 = T_ITAB-MATNR.

endif.

endif.

endloop.

loop at t_itab.

if matnr1 = matnr2.

sum = sy-tabix.

DELETE t_itab index sum.

else.

if T_ITAB-BUDAT between dat9 and sy-datum.

sum = sy-tabix.

DELETE t_itab index sum.

ENDIF.

endif.

endloop.

LOOP AT T_ITAB.

IF T_ITAB-LBKUM = 0 .

SUM = SY-TABIX.

DELETE T_ITAB INDEX SUM.

ENDIF.

ENDLOOP.

SORT T_ITAB BY MATNR ASCENDING BUDAT DESCENDING .

DELETE ADJACENT DUPLICATES FROM T_ITAB COMPARING MATNR.

IF

T_ITAB IS INITIAL.

MESSAGE I000(ZSMI).

ENDIF.

LOOP AT T_ITAB.

DAYS = SY-DATUM - T_ITAB-BUDAT.

*TOTAL = T_ITAB-SALK3.

T_YTAB-MATNR = T_ITAB-MATNR.

T_YTAB-MAKTX = T_ITAB-MAKTX.

T_YTAB-WERKS = T_ITAB-WERKS.

T_YTAB-LBKUM = T_ITAB-LBKUM.

T_YTAB-MATKL = T_ITAB-MATKL.

T_YTAB-MTART = T_ITAB-MTART .

T_YTAB-EKGRP = T_ITAB-EKGRP.

T_YTAB-SALK3 = T_ITAB-SALK3.

T_YTAB-CURR = 'INR'.

T_YTAB-BUDAT = T_ITAB-BUDAT.

T_YTAB-DAYS = DAYS.

CONDENSE T_YTAB-DAYS.

T_YTAB-MEINS = T_ITAB-MEINS.

APPEND T_YTAB.

ENDLOOP.

*IF

  • T_YTAB IS INITIAL.

  • MESSAGE I000(ZSMI).

  • endif.

DATA : W_EVENTS TYPE SLIS_ALV_EVENT,

IT_LAYOUT TYPE SLIS_LAYOUT_ALV,

T_EVENTS TYPE SLIS_T_EVENT.

W_EVENTS-NAME = 'USER_COMMAND'.

W_EVENTS-FORM = 'USECOMM'.

APPEND W_EVENTS TO T_EVENTS .

DATA : UCOMM LIKE SY-UCOMM .

DATA : FIELDS TYPE SLIS_SELFIELD .

************FIELD CATALOG FOR BASIC LIST ********************

DATA : W_FCAT TYPE SLIS_FIELDCAT_ALV .

DATA : T_FCAT TYPE SLIS_T_FIELDCAT_ALV .

DATA : W_FCAT1 TYPE SLIS_FIELDCAT_ALV .

DATA : T_FCAT1 TYPE SLIS_T_FIELDCAT_ALV .

W_FCAT-COL_POS = 1 .

W_FCAT-FIELDNAME = 'MATNR'.

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Material'.

W_FCAT-OUTPUTLEN = 10.

W_FCAT-HOTSPOT = 'X'.

APPEND W_FCAT TO T_FCAT .

W_FCAT-COL_POS = 2.

W_FCAT-FIELDNAME = 'MAKTX'.

*W_FCAT-SELTEXT_L = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Short text'.

W_FCAT-OUTPUTLEN = 25.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT.

W_FCAT-COL_POS = 3.

W_FCAT-FIELDNAME = 'WERKS'.

*W_FCAT-SELTEXT_L = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Plant'.

W_FCAT-OUTPUTLEN = 6.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT.

W_FCAT-COL_POS = 4.

*W_FCAT-FIELDNAME = 'Days'.

W_FCAT-FIELDNAME = 'DAYS'.

W_FCAT-SELTEXT_L = 'Days Since Consumtion'.

W_FCAT-OUTPUTLEN = 6.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT.

W_FCAT-COL_POS = 5.

W_FCAT-FIELDNAME = 'BUDAT'.

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Date Since Last Consumption' .

W_FCAT-OUTPUTLEN = 10.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT.

W_FCAT-COL_POS = 6.

W_FCAT-FIELDNAME = 'LBKUM'.

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Total Valuated Stock'.

W_FCAT-OUTPUTLEN = 15.

*W_FCAT-do_sum = 'X'.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT.

W_FCAT-COL_POS = 7.

W_FCAT-FIELDNAME = 'MEINS'.

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'UOM' .

W_FCAT-OUTPUTLEN = 4.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT .

W_FCAT-COL_POS = 8.

W_FCAT-FIELDNAME = 'SALK3'.

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Value of Total Valuated Stock' .

W_FCAT-OUTPUTLEN = 15.

*W_FCAT-do_sum = 'X'.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT .

W_FCAT-COL_POS = 9.

W_FCAT-FIELDNAME = 'CURR'.

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Currency'.

W_FCAT-OUTPUTLEN = 7.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT .

W_FCAT-COL_POS = 10.

W_FCAT-FIELDNAME = 'MATKL'.

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Matl. grp'.

W_FCAT-OUTPUTLEN = 10.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT.

W_FCAT-COL_POS = 11.

W_FCAT-FIELDNAME = 'MTART' .

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_L = 'Matl Typ.'.

W_FCAT-OUTPUTLEN = 10.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT .

CLEAR W_FCAT.

W_FCAT-COL_POS = 12 .

W_FCAT-FIELDNAME = 'EKGRP'.

*W_FCAT-TABNAME = 'ZV_MC46'.

W_FCAT-SELTEXT_M = 'Purch.grp'.

W_FCAT-OUTPUTLEN = 10.

W_FCAT-HOTSPOT = ''.

APPEND W_FCAT TO T_FCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = 'Slow-Moving Items'

  • I_GRID_SETTINGS =

IS_LAYOUT = IT_LAYOUT

IT_FIELDCAT = T_FCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = T_YTAB

  • 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.

Read only

0 Likes
726

Hi Sachin,

Can you please state your problem more clearly??

Thanks,

Harini

Edited by: Harini Gopinath on Oct 28, 2009 6:39 PM

Read only

0 Likes
726

Hi,

You have declared DAYS as character of 4.

But your are giving input as Integer or decimal.

And declare date also as type SY-DATUM instead of Char 8.

Try declaring yours days as PACKED with decimal valus and tell me if you are getting the output.

Thanks,

Harini

Edited by: Harini Gopinath on Oct 28, 2009 6:43 PM