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

ALV SUBTOT

Former Member
0 Likes
1,207

Hi all,

In this code i need to find out the total quantity based on material for the field LABST.

PLz do the needfull.

FORM f_fieldcat_create.

w_fieldcat-seltext_l = 'Sub Pool'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'SUBPOOL'.

w_fieldcat-outputlen = '18'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'Material Number'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'MATNR'.

w_fieldcat-outputlen = '18'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'Material Disc'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'MAKTX'.

w_fieldcat-outputlen = '40'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'Material Stock Qnt'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'LABST'.

w_fieldcat-outputlen = '13'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'UOM'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'MEINS'.

w_fieldcat-outputlen = '3'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'Order Qun'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'ORDQTY'.

w_fieldcat-outputlen = '13'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'Due Date'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'SHDATE'.

w_fieldcat-outputlen = '8'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'Ord date'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'ORDDATE'.

w_fieldcat-outputlen = '8'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'Ord num'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'ORDNUM'.

w_fieldcat-outputlen = '10'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-seltext_l = 'Customer'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'KDNNA'.

w_fieldcat-outputlen = '35'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

ENDFORM. "f_fieldcat_create

FORM f_alv_display.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = i_fieldcat

TABLES

t_outtab = int_outtab.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. "f_alv_display

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,166

Hi,

Pass the X for the required field

w_fieldcat-SUBTOT = 'X'.

regards,

Nandha

Reward if it helps

7 REPLIES 7
Read only

Former Member
0 Likes
1,166

Hi,

See following link :

http://www.sap-basis-abap.com/abap/alv-grid-list-with-sub-totals.htm

Reward points if helpful.

Regards.

Srikanta Gope

Read only

Former Member
0 Likes
1,166

Use this code.

REPORT ZYFI_REPT007

NO STANDARD PAGE HEADING

LINE-SIZE 300

LINE-COUNT 50

MESSAGE-ID ZYFI.

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

  • Prog name : ZYFI_REPT007

  • Description : Commitment Line Items for Orders Report

  • Incident No : 31314 *

  • AUTHOR : Mahesh Raganmoni

  • Created On : 06/13/2005

----


  • MODIFICATION LOG (latest change first): *

----


  • Date Author Incident No Request No *

  • Description *

----


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

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

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

thanks

mahesh

Read only

Former Member
Read only

Former Member
0 Likes
1,166

hi,

try this.

w_fieldcat-seltext_l = 'Material Stock Qnt'.

w_fieldcat-tabname = 'INT_OUTTAB'.

w_fieldcat-fieldname = 'LABST'.

w_fieldcat-do_sum = 'X'. " for sub total

w_fieldcat-outputlen = '13'.

w_fieldcat-col_pos = '1'.

w_fieldcat-row_pos = '1'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat

reward with points if helpful.

Read only

0 Likes
1,166

Hi Vinutha,

I want to caluclate this quantity based on material number.

can u plz tell me the code for that.

VKR.

Read only

Former Member
0 Likes
1,166

Hi,

  DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
 
  CLEAR LS_SORT.
  LS_SORT-FIELDNAME = 'FIELD1'.
  LS_SORT-SPOS      = 1.
  LS_SORT-UP        = 'X'.
  ls_sort-subtot    = 'X'. "subtotal
  APPEND LS_SORT TO E06_LT_SORT.
 
  APPEND LS_SORT TO E06_LT_SORT.
  LS_SORT-FIELDNAME = 'FIELD2'.
  LS_SORT-SPOS      = 2.
  LS_SORT-UP        = 'X'. 
  ls_sort-subtot    = 'X'. "subtotal
  APPEND LS_SORT TO E06_LT_SORT.


for creating the group..

  DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
*
  CLEAR  LS_SP_GROUP.
  LS_SP_GROUP-SP_GROUP = 'A'.
  LS_SP_GROUP-TEXT     = TEXT-005.
  APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.


and pass this info to FM...
layout-sUBTOTALS_TEXT = 'SUbt...'
and pass spl group info to fieldcatalog also...

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM      = G_REPID
            IS_LAYOUT               = GS_LAYOUT
            IT_FIELDCAT             = GT_FIELDCAT[]
            IT_SPECIAL_GROUPS       = GT_SP_GROUP[]
            IT_SORT                 = GT_SORT[]

Regards

Sudheer

Read only

Former Member
0 Likes
1,167

Hi,

Pass the X for the required field

w_fieldcat-SUBTOT = 'X'.

regards,

Nandha

Reward if it helps