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: 

DUMP AFTER PERTICULAR COLUMS IN GRID ALV

former_member181995
Active Contributor
0 Kudos
128

HI EXPERTS,

I GOT A DUMP WHILE AM DOING THE TOTAL IN PERTICULAR COLUMS EIGHTER THIS FIELD QUANT IN DATABASE TABLE.

WHICH IS MSEG-ERFMG.

AM SENDING ALSO A PROGRAM PLZ LET ME KNOW WHERE I DID SOMETHING WRONG.

REPORT zmm_prr.

&----


&

& Object Id : &

& Object Name : ZMM_PRR &

& Function Module Name : MM &

& Transaction Code : ZMMPRR &

& Author : AMIT GUJARGOUD &

& Module Name : MM &

& Sub-Module : N/A &

& Program Type : Report &

& SAP Release : 6.0 &

& Description : REPORT FOR PAPER RECIEPT REGISTOR &

& &

&----


&

************************************************************************

  • Tables *

************************************************************************

TABLES : mara,

mseg,

mkpf,

mbew,

makt,

lfa1.

************************************************************************

  • TYPES *

************************************************************************

TYPE-POOLS: slis.

************************************************************************

  • INTERNAL TABLES *

************************************************************************

DATA: BEGIN OF t_mkpf OCCURS 0,

mblnr LIKE mkpf-mblnr,

budat LIKE mkpf-budat,

blart LIKE mkpf-blart,

END OF t_mkpf.

DATA : BEGIN OF t_mseg OCCURS 0,

mblnr LIKE mseg-mblnr,

bwart LIKE mseg-bwart,

werks LIKE mseg-werks,

lifnr LIKE mseg-lifnr,

charg LIKE mseg-charg,

ebeln LIKE mseg-ebeln,

matnr LIKE mseg-matnr,

menge LIKE mseg-menge,

erfmg LIKE mseg-erfmg,

END OF t_mseg.

DATA : BEGIN OF t_mara OCCURS 0,

matnr LIKE mara-matnr,

zeiar LIKE mara-zeiar,

mtart LIKE mara-mtart,

groes LIKE mara-groes,

END OF t_mara.

DATA : BEGIN OF t_mbew OCCURS 0,

bklas LIKE mbew-bklas,

matnr LIKE mbew-matnr,

END OF t_mbew.

DATA : BEGIN OF t_makt OCCURS 0,

maktx LIKE makt-maktx,

matnr LIKE makt-matnr,

spars LIKE makt-spras,

END OF t_makt.

DATA : BEGIN OF t_lfa1 OCCURS 0,

name1 LIKE lfa1-name1,

lifnr LIKE lfa1-lifnr,

END OF t_lfa1.

DATA : BEGIN OF t_final OCCURS 0,

mblnr TYPE mkpf-mblnr,

budat TYPE mkpf-budat,

blart TYPE mkpf-blart,

bwart TYPE mseg-bwart,

werks TYPE mseg-werks,

lifnr TYPE mseg-lifnr,

charg TYPE mseg-charg,

ebeln TYPE mseg-ebeln,

matnr TYPE mseg-matnr,

menge TYPE mseg-menge,

erfmg TYPE mseg-erfmg,

zeiar TYPE mara-zeiar,

mtart TYPE mara-mtart,

groes TYPE mara-groes,

maktx TYPE makt-maktx,

bklas TYPE mbew-bklas,

name1 TYPE lfa1-name1,

spars TYPE makt-spras,

ERFMG1(16) TYPE p decimals 2,

MENGE1(16) TYPE p decimals 2,

END OF t_final.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,

lt_top_of_page TYPE slis_t_listheader,

ls_layout TYPE slis_layout_alv,

gt_events TYPE slis_t_event.

************************************************************************

  • WORK AREAS *

************************************************************************

DATA : wa_fieldcat LIKE LINE OF it_fieldcat.

************************************************************************

  • SELECTION SCREEN *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_werks FOR mseg-werks,

s_lifnr FOR mseg-lifnr,

s_matnr FOR mseg-matnr,

s_date FOR mkpf-budat OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

************************************************************************

  • Start-of-Selection *

************************************************************************

START-OF-SELECTION.

--- Subroutine for selecting data from MKPF--


PERFORM sub_get_mkpf.

--- Subroutine to sececting data from MSEG--


PERFORM sub_get_mseg.

--- Subroutine for selecting data from MARA--


PERFORM sub_get_mara.

--- Subroutine for selecting data from MAKT--


PERFORM sub_get_makt.

--- Subroutine for selecting data from LFA1--


PERFORM sub_get_lfa1.

----- Subroutine for selecting data from MBEW -


PERFORM sub_get_mbew.

END-OF-SELECTION.

*************move data to final table*****************

PERFORM sub_move_data.

----- Subroutine for Populating fieldcat -


PERFORM sub_alv_fetch.

----- Subroutine for ALV Display -


PERFORM sub_alv_display.

&----


*& Form sub_get_mkpf

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_get_mkpf.

CLEAR t_mkpf.

REFRESH t_mkpf.

SELECT budat blart mblnr

FROM mkpf INTO CORRESPONDING FIELDS OF TABLE t_mkpf WHERE budat IN s_date AND blart = 'WE'.

IF sy-subrc <> 0.

MESSAGE i899(5at) WITH 'No Records found from Material Document !!!'.

ENDIF.

ENDFORM. " sub_get_mkpf

&----


*& Form sub_get_mseg

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_get_mseg .

CLEAR t_mseg.

REFRESH t_mseg.

SELECT

bwart

werks

lifnr

charg

ebeln

mblnr

matnr

menge

erfmg

FROM mseg INTO CORRESPONDING FIELDS OF TABLE t_mseg

FOR ALL ENTRIES IN t_mkpf WHERE mblnr = t_mkpf-mblnr

AND werks IN s_werks

AND lifnr IN s_lifnr

AND matnr IN s_matnr

AND ( bwart = '101' OR bwart = '102' ).

ENDFORM. " sub_get_mseg

&----


*& Form sub_get_mara

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_get_mara .

CLEAR t_mara.

REFRESH t_mara.

SELECT

matnr zeiar mtart groes

FROM mara INTO CORRESPONDING FIELDS OF TABLE t_mara

FOR ALL ENTRIES IN t_mseg WHERE matnr = t_mseg-matnr AND mtart = 'ZRPP'.

ENDFORM. " sub_get_mara

&----


*& Form sub_get_mbew

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_get_mbew .

CLEAR t_mbew.

REFRESH t_mbew.

SELECT

matnr bklas FROM mbew INTO CORRESPONDING FIELDS OF TABLE t_mbew

FOR ALL ENTRIES IN t_mara WHERE matnr = t_mara-matnr.

ENDFORM. " sub_get_mbew

&----


*& Form sub_get_mAKT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_get_makt.

CLEAR t_makt.

REFRESH t_makt.

SELECT

matnr maktx spras FROM makt INTO CORRESPONDING FIELDS OF TABLE t_makt

FOR ALL ENTRIES IN t_mara WHERE matnr = t_mara-matnr

AND spras = sy-langu.

ENDFORM. " sub_get_mbew

&----


*& Form sub_get_lfa1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_get_lfa1 .

CLEAR t_lfa1.

REFRESH t_lfa1.

SELECT

lifnr name1 FROM lfa1 INTO CORRESPONDING FIELDS OF TABLE t_lfa1

FOR ALL ENTRIES IN t_mseg WHERE lifnr = t_mseg-lifnr.

ENDFORM. " sub_get_lfa1

&----


*& Form sub_move_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_move_data .

CLEAR t_final.

REFRESH t_final.

SORT : t_mkpf BY mblnr,

t_mseg BY matnr mblnr,

t_mara BY matnr,

t_makt BY matnr,

t_mbew BY matnr,

t_lfa1 BY lifnr.

clear t_mseg.

LOOP AT t_mseg.

t_final-bwart = t_mseg-bwart.

t_final-werks = t_mseg-werks.

t_final-lifnr = t_mseg-lifnr.

t_final-charg = t_mseg-charg.

t_final-matnr = t_mseg-matnr.

t_final-ebeln = t_mseg-ebeln.

t_final-mblnr = t_mseg-mblnr.

t_final-menge1 = t_mseg-menge.

t_final-erfmg1 = t_mseg-erfmg.

*----- Getting data from MKPF

READ TABLE t_mkpf WITH KEY mblnr = t_mseg-mblnr

BINARY SEARCH.

IF sy-subrc = 0.

t_final-blart = t_mkpf-blart.

t_final-mblnr = t_mkpf-mblnr.

t_final-budat = t_mkpf-budat.

ENDIF.

*----- Getting data from MARA

READ TABLE t_mara WITH KEY matnr = t_mseg-matnr

BINARY SEARCH.

IF sy-subrc = 0.

t_final-zeiar = t_mara-zeiar.

t_final-mtart = t_mara-mtart.

t_final-groes = t_mara-groes.

ENDIF.

*----- Getting data from MBEW

READ TABLE t_mbew WITH KEY matnr = t_mseg-matnr

BINARY SEARCH.

IF sy-subrc = 0.

t_final-bklas = t_mbew-bklas.

ENDIF.

*----- Getting data from MAKT

READ TABLE t_makt WITH KEY matnr = t_mseg-matnr

BINARY SEARCH.

IF sy-subrc = 0.

t_final-maktx = t_makt-maktx.

ENDIF.

*----- Getting data from LFA1

READ TABLE t_lfa1 WITH KEY lifnr = t_mseg-lifnr

BINARY SEARCH.

IF sy-subrc = 0.

t_final-name1 = t_lfa1-name1.

ENDIF.

APPEND t_final.

CLEAR t_final.

ENDLOOP.

DELETE t_final WHERE budat NOT IN s_date AND bwart = '' AND mtart = ''.

*****************************validation***********************************

IF t_final[] IS INITIAL.

MESSAGE i000(zamit).

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " sub_move_data

&----


*& Form sub_alv_fetch

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_alv_fetch .

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'MAT CODE'.

wa_fieldcat-col_pos = '1'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'MAKTX'.

wa_fieldcat-seltext_m = 'MAT DSCRP'.

wa_fieldcat-col_pos = '2'.

wa_fieldcat-just = 'L'.

wa_fieldcat-outputlen = 15.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'MBLNR'.

wa_fieldcat-seltext_m = 'MAT DOC'.

wa_fieldcat-col_pos = '3'.

wa_fieldcat-just = 'L'.

wa_fieldcat-outputlen = 30.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'BUDAT'.

wa_fieldcat-seltext_m = 'DATE'.

wa_fieldcat-col_pos = '4'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'LIFNR'.

wa_fieldcat-seltext_m = 'VENDER CODE'.

wa_fieldcat-col_pos = '5'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'NAME1'.

wa_fieldcat-seltext_m = 'VENDER NAME' . "UP TO DATE PRODUCTION'.

wa_fieldcat-col_pos = '6'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_m = 'PO.NO.'.

wa_fieldcat-col_pos = '7'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'CHARG'.

wa_fieldcat-seltext_m = 'BATCH NO'.

wa_fieldcat-col_pos = '8'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ZEIAR'.

wa_fieldcat-seltext_m = 'GSM'.

wa_fieldcat-col_pos = '9'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ZROES'.

wa_fieldcat-seltext_m = 'WIDTH'.

wa_fieldcat-col_pos = '10'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'BKLAS'.

wa_fieldcat-seltext_m = 'VALUATION'.

wa_fieldcat-col_pos = '11'.

wa_fieldcat-just = 'L'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'MENGE1'.

wa_fieldcat-seltext_m = 'QT IN P'.

wa_fieldcat-col_pos = '12'.

wa_fieldcat-just = 'L'.

  • wa_fieldcat-DO_SUM = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ERFMG1'.

wa_fieldcat-seltext_m = 'QT IN BASE UNIT'.

wa_fieldcat-col_pos = '13'.

wa_fieldcat-just = 'L'.

  • wa_fieldcat-DO_SUM = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

ENDFORM. " sub_alv_fetch

&----


*& Form sub_alv_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_alv_display .

IF NOT t_final[] IS INITIAL.

PERFORM fill_list_header USING lt_top_of_page[].

PERFORM eventtab_build USING gt_events[].

PERFORM fill_layout USING ls_layout.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

is_layout = ls_layout

it_fieldcat = it_fieldcat

it_events = gt_events[]

i_save = 'A'

TABLES

t_outtab = t_final

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE e899(5at) WITH 'ALV List Can not be generated!!!'.

ENDIF.

ELSE.

MESSAGE e899(5at) WITH 'No Data found on Selected Option!!!'.

ENDIF.

ENDFORM. " ALV_DISPLAY

&----


*& Form fill_list_header

&----


  • Filling List Header

----


FORM fill_list_header USING p_slis_t_listheader TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader.

DATA : w_date TYPE sy-datum,

w_str TYPE string,

str_low TYPE string, "SELECT-OPTION LOW

str_high TYPE string, "SELECT-OPTION HIGH

str TYPE string. "FINAL STRING

w_date = sy-datum.

CONCATENATE w_date6(2) '.' w_date4(2) '.' w_date+0(4) INTO w_str.

w_str = 'PAPER RECIEPT REGISTER'.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = w_str.

APPEND ls_line TO lt_top_of_page.

CLEAR ls_line.

LOOP AT s_date.

ls_line-typ = 'S'.

ls_line-key = 'POSTING DATE'. "'text-100.

CONCATENATE s_date-low6(2) '.' s_date-low4(2) '.' s_date-low+0(4) INTO str_low.

CONCATENATE s_date-high6(2) '.' s_date-high4(2) '.' s_date-high+0(4) INTO str_high.

IF str_high = '' OR str_high = '00.00.0000'.

MOVE str_low TO str.

ELSE.

CONCATENATE str_low str_high INTO str SEPARATED BY ' TO '.

ENDIF.

ENDLOOP.

ls_line-typ = 'S'.

ls_line-key = 'POSTING DATE'. "'text-100.

ls_line-info = str.

APPEND ls_line TO lt_top_of_page.

CLEAR ls_line.

ENDFORM. "fill_list_header

&----


*& Form eventtab_build

&----


  • Building Eventtab

----


FORM eventtab_build USING lt_events TYPE slis_t_event.

DATA: ls_event TYPE slis_alv_event.

MOVE 'TOP_OF_PAGE' TO ls_event-name.

MOVE 'TOP_OF_PAGE' TO ls_event-form.

APPEND ls_event TO lt_events.

CLEAR ls_event.

ENDFORM. " eventtab_build

&----


*& Form fill_layout

&----


  • Filling layout

----


FORM fill_layout USING p_ls_layout TYPE slis_layout_alv.

p_ls_layout-zebra = 'X'.

p_ls_layout-cell_merge = 'X'.

p_ls_layout-colwidth_optimize = 'X'.

ENDFORM. " fill_layout

&----


*& Form TOP_OF_PAGE

&----


  • Building Top-of-Page

----


FORM top_of_page. " dynamically system function calling *********

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

i_logo = 'GREENPLY_LOGO'

it_list_commentary = lt_top_of_page.

ENDFORM. "top_of_page

1 ACCEPTED SOLUTION

Former Member
0 Kudos
95
Remove the left Justification option , as this is only applicable to character fields


wa_fieldcat-fieldname = 'MENGE1'.
wa_fieldcat-datatype = 'QUAN'.
wa_fieldcat-seltext_m = 'QT IN P'.
wa_fieldcat-col_pos = '12'.
wa_fieldcat-DO_SUM = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ERFMG1'.
wa_fieldcat-datatype = 'QUAN'.
wa_fieldcat-seltext_m = 'QT IN BASE UNIT'.
wa_fieldcat-col_pos = '13'.
 wa_fieldcat-DO_SUM = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
2 REPLIES 2

Former Member
0 Kudos
95

Hello,

May this dump error is due to the SUM OVERFLOW error

you can do this way..

PARAMETERS fact TYPE i.

DATA: fact_save TYPE i,

res(16) TYPE p.

      • ARITHMETIC_ERRORS contains COMPUTE_BCD_OVERFLOW ***

CATCH SYSTEM-EXCEPTIONS ARITHMETIC_ERRORS = 5.

res = fact_save = fact.

SUBTRACT 1 FROM fact.

DO fact TIMES.

MULTIPLY res BY fact. "<- COMPUTE_BCD_OVERFLOW

SUBTRACT 1 FROM fact.

ENDDO.

ENDCATCH.

IF sy-subrc = 5.

WRITE: / 'Overflow! Factorial of', fact_save,

'cannot be calculated.'.

ELSE.

WRITE: / 'Factorial of', fact_save, 'gives', res.

ENDIF.

the same way you can handle your case.

Regards

Vasanth

Former Member
0 Kudos
96
Remove the left Justification option , as this is only applicable to character fields


wa_fieldcat-fieldname = 'MENGE1'.
wa_fieldcat-datatype = 'QUAN'.
wa_fieldcat-seltext_m = 'QT IN P'.
wa_fieldcat-col_pos = '12'.
wa_fieldcat-DO_SUM = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ERFMG1'.
wa_fieldcat-datatype = 'QUAN'.
wa_fieldcat-seltext_m = 'QT IN BASE UNIT'.
wa_fieldcat-col_pos = '13'.
 wa_fieldcat-DO_SUM = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.