2007 Jul 20 1:43 PM
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
2007 Jul 20 2:04 PM
Hi,
Pass the X for the required field
w_fieldcat-SUBTOT = 'X'.
regards,
Nandha
Reward if it helps
2007 Jul 20 1:45 PM
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
2007 Jul 20 1:47 PM
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
2007 Jul 20 1:47 PM
Hi
See the LINKS on SUB-TOTALS of ALV reports
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
<b>Reward points for useful Answers</b>
Regards
Anji
2007 Jul 20 1:47 PM
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.
2007 Jul 20 2:37 PM
Hi Vinutha,
I want to caluclate this quantity based on material number.
can u plz tell me the code for that.
VKR.
2007 Jul 20 1:49 PM
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
2007 Jul 20 2:04 PM
Hi,
Pass the X for the required field
w_fieldcat-SUBTOT = 'X'.
regards,
Nandha
Reward if it helps