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: 

Total for a Numeric field in ALV Grid display

Former Member
0 Kudos

Hi all,

I am not getting the Total for a Numeric field in ALV Grid output. What might be the problem.

Regards,

Balavardhan.K

1 ACCEPTED SOLUTION

Former Member
0 Kudos

> Hi all,

>

> I am not getting the Total for a Numeric field in ALV

> Grid output. What might be the problem.

>

>

>

>

> Regards,

> Balavardhan.K

Hi,

You can use the below code in your fieldcatalog:

Example :

IF f = 'DMBE2' OR f = 'WRBTR' OR f = 'DMBTR'.

ls_fieldcat-datatype = 'CURR'.

ENDIF.

In the above code I want to have summation for the fields like DMBE2, WRBTR and DMBTR. So i have used ls_fieldcat-datatype = 'CURR.

Thanks,

Sriram Ponna.

Thanks,

Sriram Ponna.

8 REPLIES 8

former_member583013
Active Contributor
0 Kudos

Are you using...


ls_fieldcat-do_sum = 'X'.

Greetings,

Blag.

0 Kudos

Hi,

After getting the Output i have selected that particular coloumn and click on the <b>SUM</b> button. Then I am getting the message <b>'Total can't be peformed on that field'</b>.

I tried <b>ls_fieldcat-do_sum = 'X'.</b> but it is not working.

0 Kudos

You might need to use this...


ls_fieldcat-fieldname = 'VALTAS'.
ls_fieldcat-ref_tabname = 'ZTBIENESADJ'.

Where VALTAS is a currency field...

Greetings,

Blag.

0 Kudos

Even if I mentioned like that also getting same problem.

0 Kudos

Hi

Have you checked the type of the field. You should confirm that the field is one of numeric data types.

Please reward points if helpful

Former Member
0 Kudos

Check this code for subtotals and totals..

REPORT ZYFI_REPT007

NO STANDARD PAGE HEADING

LINE-SIZE 300

LINE-COUNT 50

MESSAGE-ID ZYFI.

----


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

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

TABLES : COOI, " Commitments Management: Line Items

LFA1, " Vendor master (general section)

VBEP,

RKPLN.

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

  • TABLE TYPES AND INTERNAL TABLES *

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

DATA : BEGIN OF TYP_COOI ,

OBJNR LIKE COOI-OBJNR,

SAKTO LIKE COOI-SAKTO,

MEGBTR LIKE COOI-MEGBTR,

MEINH LIKE COOI-MEINH,

WKGBTR LIKE COOI-WKGBTR,

REFBN LIKE COOI-REFBN,

RFPOS LIKE COOI-RFPOS,

SGTXT LIKE COOI-SGTXT,

BUDAT LIKE COOI-BUDAT,

LIFNR LIKE COOI-LIFNR,

END OF TYP_COOI.

DATA : BEGIN OF TYP_LFA1 ,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF TYP_LFA1.

DATA : BEGIN OF IT_OUTTAB OCCURS 0,

OBJNR LIKE COOI-OBJNR,

SAKTO LIKE COOI-SAKTO,

MEGBTR LIKE COOI-MEGBTR,

MEINH LIKE COOI-MEINH,

WKGBTR LIKE COOI-WKGBTR,

REFBN LIKE COOI-REFBN,

RFPOS LIKE COOI-RFPOS,

SGTXT LIKE COOI-SGTXT,

BUDAT LIKE COOI-BUDAT,

LIFNR LIKE COOI-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF IT_OUTTAB.

DATA : IT_COOI LIKE TYP_COOI OCCURS 0 WITH HEADER LINE,

IT_LFA1 LIKE TYP_LFA1 OCCURS 0 WITH HEADER LINE.

*-- ALV Declarations

TYPE-POOLS SLIS.

DATA: IT_EVENTS TYPE SLIS_T_EVENT,

GS_EVENT TYPE SLIS_ALV_EVENT,

wa_fldcat type slis_fieldcat_alv.

DATA: S_LAYOUT TYPE SLIS_LAYOUT_ALV,

GT_PRINT TYPE SLIS_PRINT_ALV.

DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV.

DATA: V_REPID LIKE SY-REPID.

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

  • SELECTION SCREEN *

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

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

SELECT-OPTIONS : S_KOKRS FOR COOI-KOKRS NO-EXTENSION NO INTERVALS,

" Controlling Area

S_BUKRS FOR COOI-BUKRS NO-EXTENSION NO INTERVALS,

" Company code

S_GJAHR FOR COOI-GJAHR NO-EXTENSION NO INTERVALS,

" Fiscal Year

S_OBJNR FOR RKPLN-AUFNR MATCHCODE OBJECT ORDE,

" Internal order

S_SAKTO FOR COOI-SAKTO MATCHCODE OBJECT KART,

" Cost Element

S_BUDAT FOR COOI-BUDAT, " Debit Date

S_LIFNR FOR COOI-LIFNR. " Vendor

SELECTION-SCREEN END OF BLOCK B1.

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

  • S T A R T O F S E L E C T I O N *

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

START-OF-SELECTION.

*-- Read data

PERFORM GET_DATA.

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

  • E N D O F S E L E C T I O N *

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

END-OF-SELECTION.

*-- Process the data and prepare the output data

PERFORM CALCULATE_FINAL_INFO.

*--Display Report output

PERFORM DISPLAY_REPORT.

----


  • FORM CALCULATE_FINAL_INFO *

----


  • Process the data and prepare final internal table *

----


FORM CALCULATE_FINAL_INFO.

DATA : L_OBJNR LIKE COOI-OBJNR.

SORT IT_LFA1 BY LIFNR.

DELETE ADJACENT DUPLICATES FROM IT_LFA1 COMPARING LIFNR.

LOOP AT IT_COOI.

L_OBJNR = IT_COOI-OBJNR+2(20).

SHIFT L_OBJNR LEFT DELETING LEADING '0'.

IF L_OBJNR IN S_OBJNR.

READ TABLE IT_LFA1 WITH KEY LIFNR = IT_COOI-LIFNR.

IF SY-SUBRC EQ 0.

IT_OUTTAB-NAME1 = IT_LFA1-NAME1.

ENDIF.

MOVE-CORRESPONDING IT_COOI TO IT_OUTTAB.

CLEAR IT_OUTTAB-OBJNR.

IT_OUTTAB-OBJNR = L_OBJNR.

APPEND IT_OUTTAB.

CLEAR IT_OUTTAB.

CLEAR IT_LFA1.

CLEAR L_OBJNR.

ENDIF.

ENDLOOP.

ENDFORM.

&----


*& Form GET_DATA

&----


  • Fetch the Data from the table COOI and LFA1

----


FORM GET_DATA.

SELECT OBJNR

SAKTO

MEGBTR

MEINH

WKGBTR

REFBN

RFPOS

SGTXT

BUDAT

LIFNR

FROM COOI

INTO TABLE IT_COOI

WHERE BUDAT IN S_BUDAT

AND LIFNR IN S_LIFNR

AND KOKRS IN S_KOKRS

AND BUKRS IN S_BUKRS

AND GJAHR IN S_GJAHR

AND SAKTO IN S_SAKTO.

IF SY-SUBRC EQ 0 .

  • Get the Vendor name from LFA1

SELECT LIFNR

NAME1

FROM LFA1

INTO TABLE IT_LFA1

FOR ALL ENTRIES IN IT_COOI

WHERE LIFNR EQ IT_COOI-LIFNR.

ELSE.

MESSAGE I999 WITH TEXT-013.

ENDIF.

ENDFORM. " GET_DATA

&----


*& Form DISPLAY_REPORT

&----


  • Display the output

----


FORM DISPLAY_REPORT.

PERFORM BUILD_CATALOG.

PERFORM FRM_PREPARE_EVENT_LIST TABLES IT_EVENTS.

IF NOT IT_OUTTAB[] IS INITIAL.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IT_FIELDCAT = IT_FLDCAT

IT_SORT = IT_SORT

IT_EVENTS = IT_EVENTS

TABLES

T_OUTTAB = IT_OUTTAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ELSE.

MESSAGE I999 WITH TEXT-013.

ENDIF.

ENDFORM. " DISPLAY_REPORT

&----


*& Form BUILD_CATALOG

&----


  • Build the Field catalog for the ALV Report

----


FORM BUILD_CATALOG.

DATA: V_INDEX LIKE SY-TABIX.

V_REPID = SY-REPID.

DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = V_REPID

I_INTERNAL_TABNAME = 'IT_OUTTAB'

I_INCLNAME = V_REPID

CHANGING

CT_FIELDCAT = IT_FLDCAT

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3.

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 TABLE IT_FLDCAT WITH KEY FIELDNAME = 'WKGBTR'

TABNAME = 'IT_OUTTAB' INTO WA_FLDCAT.

IF SY-SUBRC EQ 0.

WA_FLDCAT-DO_SUM = 'X'.

MODIFY IT_FLDCAT FROM WA_FLDCAT INDEX SY-TABIX.

ENDIF.

READ TABLE IT_FLDCAT WITH KEY FIELDNAME = 'OBJNR'

TABNAME = 'IT_OUTTAB' INTO WA_FLDCAT.

IF SY-SUBRC EQ 0.

WA_FLDCAT-SELTEXT_L = 'Order'.

WA_FLDCAT-COL_POS = 1.

WA_FLDCAT-DDICTXT = 'L'.

MODIFY IT_FLDCAT FROM WA_FLDCAT INDEX SY-TABIX.

ENDIF.

LS_SORT-FIELDNAME = 'OBJNR'.

LS_SORT-SPOS = 1.

LS_SORT-UP = 'X'.

LS_SORT-SUBTOT = 'X'.

APPEND LS_SORT TO IT_SORT.

ENDFORM. " BUILD_CATALOG

&----


*& Form FRM_PREPARE_EVENT_LIST

&----


  • Build the Events

----


FORM FRM_PREPARE_EVENT_LIST TABLES IT_EVENTS TYPE SLIS_T_EVENT.

CLEAR GS_EVENT.

GS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

GS_EVENT-FORM = 'TOP_OF_PAGE_REPORT'.

APPEND GS_EVENT TO IT_EVENTS.

ENDFORM. " FRM_PREPARE_EVENT_LIST

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

  • TOP OF PAGE

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

FORM TOP_OF_PAGE_REPORT.

CALL FUNCTION 'Z_YREPORT_HEADER'

EXPORTING

DL_TITLE = SY-TITLE

DL_REPID = SY-CPROG

DL_LINSZ = SY-LINSZ

EXCEPTIONS

OTHERS = 1.

ENDFORM. " FRM_TOP_OF_PAGE_REPORT

&----


*& Form USER_COMMAND

&----


  • Drill Down Functionality to Call the Transaction ME23

----


FORM USER_COMMAND USING P_UCOMM LIKE SY-UCOMM

P_SELFIELD TYPE SLIS_SELFIELD.

DATA : L_INDEX LIKE SY-INDEX,

L_REFBN LIKE COOI-REFBN.

L_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CLEAR L_REFBN.

CASE P_UCOMM.

*-- On Double Click

WHEN '&IC1'.

CLEAR L_REFBN.

*-- Read the Current Line

READ TABLE IT_OUTTAB INDEX L_INDEX.

IF SY-SUBRC EQ 0.

L_REFBN = IT_OUTTAB-REFBN.

IF NOT L_REFBN IS INITIAL.

*-- Set the BES Paramater Id to the Current line Purchase Order Number

SET PARAMETER ID 'BES' FIELD L_REFBN.

*-- Call the Transaction Purchase Order Display with the above PO Number

CALL TRANSACTION 'ME23' AND SKIP FIRST SCREEN.

ENDIF.

ELSE.

MESSAGE E999 WITH TEXT-014.

ENDIF.

ENDCASE.

ENDFORM. " USER_COMMAND

Former Member
0 Kudos

> Hi all,

>

> I am not getting the Total for a Numeric field in ALV

> Grid output. What might be the problem.

>

>

>

>

> Regards,

> Balavardhan.K

Hi,

You can use the below code in your fieldcatalog:

Example :

IF f = 'DMBE2' OR f = 'WRBTR' OR f = 'DMBTR'.

ls_fieldcat-datatype = 'CURR'.

ENDIF.

In the above code I want to have summation for the fields like DMBE2, WRBTR and DMBTR. So i have used ls_fieldcat-datatype = 'CURR.

Thanks,

Sriram Ponna.

Thanks,

Sriram Ponna.

0 Kudos

Thanks a lot. Problem is solved.