2007 Feb 20 9:55 AM
Hi experts,
i wanna add sub total text to my alv grid. and also the text total at the bottom fo the column.
please let me know how to do this ASAP.
best answers will be rewarded.
Thanks and regards,
vinay
2007 Feb 20 9:59 AM
Hello,
try this code..and why you gave slis_ev_subtotal_text for text.
DATA : l_layout TYPE slis_layout_alv .
l_layout-colwidth_optimize = 'X'.
l_layout-subtotals_text = 'Test subtotal text'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_rep_name
IS_LAYOUT = l_layout
it_fieldcat = it_f_catalog[]
it_sort = t_sort[]Vasanth
2007 Feb 20 9:59 AM
Hello,
try this code..and why you gave slis_ev_subtotal_text for text.
DATA : l_layout TYPE slis_layout_alv .
l_layout-colwidth_optimize = 'X'.
l_layout-subtotals_text = 'Test subtotal text'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_rep_name
IS_LAYOUT = l_layout
it_fieldcat = it_f_catalog[]
it_sort = t_sort[]Vasanth
2007 Feb 20 10:05 AM
hi alson,
DATA: S_LAYOUT TYPE SLIS_LAYOUT_ALV.
For subtotal:
s_layout-subtotals_text = 'SUBTOTAL:'.
Totals:
s_layout-totals_text = 'TOTAL:'.
regards,
priya
2007 Feb 20 10:10 AM
Hi Alson,
see given code in LAYOUT FORM
REPORT z_alv_so MESSAGE-ID z7new .
************************************************************************
*TABLE DECLARATION*
************************************************************************
TABLES: vbak , "Sales Document: Header Data
vbap , "Sales Document: Item Data
makt , "Material Descriptions
lips . "SD document: Delivery: Item data
************************************************************************
*DECLARATION OF TYPE-POOL*
*THIS TYPE-POOL CONTAINS THE EVENTS,
************************************************************************
TYPE-POOLS : slis.
************************************************************************
*DECLARATION OF EVENTS*
************************************************************************
DATA: i_event TYPE slis_t_event.
DATA: t_event TYPE slis_alv_event.
************************************************************************
*DECLARATION OF LIST HEADER*
************************************************************************
DATA: i_listheader TYPE slis_t_listheader.
************************************************************************
*DECLARATION OF FIELD CATALOG FOR SCREEN 1*
************************************************************************
DATA: i_fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
************************************************************************
*DECLARATION OF FIELD CATALOG FOR SCREEN 2*
************************************************************************
DATA: i_fldcat2 TYPE slis_t_fieldcat_alv WITH HEADER LINE.
************************************************************************
*DECLARATION OF FIELD LAYOUT*
************************************************************************
DATA: i_layout TYPE slis_layout_alv.
************************************************************************
*SORTING OF OUTPUT*
************************************************************************
DATA: i_sort TYPE slis_t_sortinfo_alv.
************************************************************************
*DATA DECLARATION
************************************************************************
DATA: v_auart TYPE tvak-auart,
v_vkorg TYPE tvko-vkorg,
v_kunnr TYPE kna1-kunnr,
v_matnr TYPE mara-matnr ,
v_spart TYPE tvta-spart .
TYPES: BEGIN OF it_so ,
vbeln TYPE vbeln_va , "SALES ORDER NO.
auart TYPE auart , "SALES DOC. TYPE
vkorg TYPE vkorg , "SALES ORG.
spart TYPE spart , "DIVISION
kunnr TYPE kunag , "SOLD TO PARTY
posnr TYPE posnr_va , "SALES DOC. ITEM
matnr TYPE matnr , "MATERIAL NO
maktx TYPE maktx , "DESCRIPTION
kwmeng TYPE kwmeng , "QUANTITY
vrkme TYPE vrkme , "SALES UNIT
line_color(4) TYPE c ,
END OF it_so .
TYPES: BEGIN OF it_del ,
vbeln TYPE vbeln_vl , "SALES ORDER NO.
posnr TYPE posnr_vl , "SALES DOC. ITEM
matnr TYPE matnr , "MATERIAL NO
werks TYPE werks_d , "PLANT
lgort TYPE lgort_d , "STORAGE LOCATION
charg TYPE charg_d , "BATCH NO.
lfimg TYPE lfimg , "ACTUAL DELIVERY QTY.
vrkme TYPE vrkme , "SALES UNIT
END OF it_del .
TYPES: BEGIN OF type_vbfa ,
vbelv TYPE vbeln_von , "Preceding sales and distribution document
posnv TYPE posnr_von , "Preceding item of an SD document
vbeln TYPE vbeln_nach, "Subsequent sales and distribution document
posnn TYPE posnr_nach, "Document category of subsequent document
vbtyp_n TYPE vbtyp_n ,
END OF type_vbfa .
DATA: it_so1 TYPE STANDARD TABLE OF it_so ,
it_del1 TYPE STANDARD TABLE OF it_del ,
it_vbfa TYPE STANDARD TABLE OF type_vbfa,
it_del_ful TYPE STANDARD TABLE OF it_del.
DATA: wa_so TYPE it_so ,
wa_del TYPE it_del ,
wa_vbfa TYPE type_vbfa,
wa_it_del_ful TYPE it_del.
DATA: i_title_vbfa TYPE lvc_title VALUE 'SALES ORDER LIST DISPLAYED'.
DATA: i_title_vbpa TYPE lvc_title VALUE
'DELIVERY DETAILS DISPLAYED AGAINST GIVEN SALES ORDER'.
************************************************************************
*SELECTION SCREEN *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-004 .
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln ,
s_auart FOR v_auart ,
s_vkorg FOR v_vkorg ,
s_spart FOR v_spart ,
s_kunnr FOR v_kunnr ,
s_matnr FOR v_matnr .
SELECTION-SCREEN END OF BLOCK blk1 .
************************************************************************
*AT SELECTION SCREEN *
************************************************************************
AT SELECTION-SCREEN.
SELECT SINGLE vbeln
FROM vbak INTO vbak-vbeln
WHERE vbeln IN s_vbeln.
IF sy-subrc <> 0.
MESSAGE e202.
ENDIF.
************************************************************************
*START OF SELECTION *
************************************************************************
START-OF-SELECTION .
PERFORM data_select.
PERFORM t_sort USING i_sort .
PERFORM event_cat USING i_event .
PERFORM fld_cat USING i_fldcat[] .
PERFORM t_layout USING i_layout .
PERFORM fld_cat2 USING i_fldcat2[] .
PERFORM call_alv.
************************************************************************
* DATA SELECT *
************************************************************************
*&---------------------------------------------------------------------*
*& Form DATA_SELECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_select .
REFRESH: it_vbfa, it_so1, it_del_ful ,it_del1 .
BREAK-POINT.
SELECT
a~vbeln
a~auart
a~vkorg
a~spart
a~kunnr
b~posnr
b~matnr
c~maktx
b~kwmeng
b~vrkme
INTO TABLE it_so1 FROM vbak AS a
JOIN vbap AS b ON b~vbeln = a~vbeln
JOIN makt AS c ON c~matnr = b~matnr
AND c~spras = sy-langu
WHERE a~vbeln IN s_vbeln .
************************************************************************
* COLURING DISPLAY *
************************************************************************
DATA: ld_color(1) TYPE c .
LOOP AT it_so1 INTO wa_so.
* Populate color variable with colour properties
* Char 1 = C (This is a color property)
* Char 2 = 3 (Color codes: 1 - 7)
* Char 3 = Intensified on/off ( 1 or 0 )
* Char 4 = Inverse display on/off ( 1 or 0 )
* i.e. wa_ekko-line_color = 'C410'
ld_color = ld_color + 1.
* Only 7 colours so need to reset color value
IF ld_color = 8.
ld_color = 1.
ENDIF.
CONCATENATE 'C' ld_color '10' INTO wa_so-line_color.
* wa_ekko-line_color = 'C410'.
MODIFY it_so1 FROM wa_so.
ENDLOOP .
IF sy-subrc = 0.
SELECT vbelv
posnv
vbeln
posnn
vbtyp_n
INTO TABLE it_vbfa
FROM vbfa
FOR ALL ENTRIES IN it_so1
WHERE vbelv = it_so1-vbeln
AND posnn = it_so1-posnr
AND vbtyp_n ='J' .
IF sy-subrc = 0.
SELECT vbeln
posnr
matnr
werks
lgort
charg
lfimg
vrkme
FROM lips INTO TABLE it_del_ful
FOR ALL ENTRIES IN it_vbfa
WHERE vbeln = it_vbfa-vbeln
AND posnr = it_vbfa-posnn.
ENDIF.
ENDIF.
ENDFORM. " DATA_SELECT
***********************************************************************
**************** EVENT CATALOG ****************************************
***********************************************************************
*&---------------------------------------------------------------------*
*& Form EVENT_CAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_I_EVENT text
*----------------------------------------------------------------------*
FORM event_cat USING p_i_event TYPE slis_t_event .
REFRESH p_i_event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
* EXPORTING
* I_LIST_TYPE = 0
IMPORTING
et_events = p_i_event
* EXCEPTIONS
* LIST_TYPE_WRONG = 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 TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE' TO t_event-form.
MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.
ENDIF.
CLEAR t_event .
ENDFORM. " EVENT_CAT
**********************************************************************
**********FORM FOR EVENT TOP_OF_PAGE**********************************
**********************************************************************
FORM top_of_page .
REFRESH i_listheader.
DATA: t_header TYPE slis_listheader.
DATA: v_text(50).
WRITE sy-datum TO v_text.
CLEAR t_header.
t_header-typ = 'S'.
t_header-key = 'Date'.
t_header-info = v_text.
APPEND t_header TO i_listheader.
CLEAR t_header.
CLEAR v_text.
* WRITE: 'SALES ORDER REPORT ' TO v_text .
* t_header-typ = 'S'.
* t_header-key = 'TITLE'.
* t_header-info = v_text.
* APPEND t_header TO i_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_listheader.
* I_LOGO = 'ALV_BACKGROUND'.
* I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
************************************************************************
******** FIRST ALV GRID DISPLAY ***************************************
************************************************************************
*&---------------------------------------------------------------------*
*& Form CALL_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM call_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND1'
i_callback_top_of_page = 'TOP_OF_PAGE'
I_BACKGROUND_ID = 'ALV_BACKGROUND'
i_grid_title = i_title_vbfa
is_layout = i_layout
it_fieldcat = i_fldcat[]
it_sort = i_sort
it_events = i_event
TABLES
t_outtab = it_so1
.
* 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. " CALL_ALV
***********************************************************************
************** FIRST FIELDCATALOG *************************************
***********************************************************************
*&---------------------------------------------------------------------*
*& Form FLD_CAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_I_FLDCAT[] text
*----------------------------------------------------------------------*
FORM fld_cat USING p_i_fldcat TYPE slis_t_fieldcat_alv.
CLEAR i_fldcat.
i_fldcat-fieldname = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'."TABLE NAME
i_fldcat-seltext_m = 'SALES ORDER NO.'.
i_fldcat-col_pos = 1. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'."TABLE NAME
i_fldcat-seltext_m = 'SALES DOC. TYPE'.
i_fldcat-col_pos = 2. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'SALES ORG.'.
i_fldcat-col_pos = 3. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 12. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'DIVISION'.
i_fldcat-col_pos = 4. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'SOLD TO PARTY'.
i_fldcat-col_pos = 5. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'SALES DOC. ITEM'.
i_fldcat-col_pos = 6. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 17. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'MATERIAL NO.'.
i_fldcat-col_pos = 7. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'DESCRIPTION'.
i_fldcat-col_pos = 8. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'QUANTITY'.
i_fldcat-col_pos = 9. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-do_sum = 'X'. " For doing "SUM"
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'SALES UNIT'.
i_fldcat-col_pos = 10. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
ENDFORM. " FLD_CAT
***********************************************************************
****************** ALV SORTING ***************************************
***********************************************************************
*&---------------------------------------------------------------------*
*& Form SORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_I_SORT text
*----------------------------------------------------------------------*
FORM t_sort USING p_i_sort TYPE slis_t_sortinfo_alv .
DATA: i_sort TYPE slis_sortinfo_alv .
REFRESH p_i_sort .
CLEAR i_sort.
i_sort-spos = 1.
i_sort-tabname = 'IT_SO1'.
i_sort-fieldname = 'VBELN'.
i_sort-up = 'X'.
i_sort-subtot = 'X'.
i_sort-group = '*'.
APPEND i_sort TO p_i_sort.
ENDFORM. " SORT
*FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.
* SET PF-STATUS 'ZSTANDARD'.
*ENDFORM. "Set_pf_status
***********************************************************************
***********FORM FOR EVENT USER_COMMAND1********************************
***********************************************************************
FORM user_command1 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
*CASE R_UCOMM .
* WHEN '&IC1' .
*
* IF rs_selfield-FIELDNAME = 'VBELN' .
*
* ENDIF .
*
* WHEN OTHERS .
*
* ENDCASE .
CLEAR wa_so.
REFRESH: it_del1 .
IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND
rs_selfield-value IS NOT INITIAL.
READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = wa_so-vbeln
AND posnv = wa_so-posnr.
READ TABLE it_del_ful INTO wa_it_del_ful
WITH KEY vbeln = wa_vbfa-vbelv
posnr = wa_vbfa-posnn.
IF sy-subrc = 0.
CLEAR wa_del.
MOVE wa_it_del_ful TO wa_del.
APPEND wa_del TO it_del1.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
*********************************************************************
********* SECOND ALV GRID DISPLAY ***********************************
*********************************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND2'
i_callback_top_of_page = 'TOP_OF_PAGE'
I_BACKGROUND_ID = 'ALV_BACKGROUND'
i_grid_title = i_title_vbpa
it_fieldcat = i_fldcat2[]
it_sort = i_sort
TABLES
t_outtab = it_del_ful
.
* 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 . "USER_COMMAND1
***********************************************************************
********** FORM FOR EVENT USER_COMMAND 2 ******************************
***********************************************************************
FORM user_command2 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CLEAR wa_so.
REFRESH: it_del1 .
IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND
rs_selfield-value IS NOT INITIAL.
READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.
* IF SY-SUBRC = 0.
*
* LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = WA_SO-vbeln
* AND posnv = WA_SO-posnr.
READ TABLE it_del_ful INTO wa_it_del_ful
WITH KEY vbeln = rs_selfield-value
posnr = wa_vbfa-posnn.
IF rs_selfield-fieldname = 'VBELN'.
SET PARAMETER ID 'VL' FIELD wa_vbfa-vbeln .
CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.
ENDIF .
* ENDLOOP.
* ENDIF.
ENDIF.
ENDFORM . "USER_COMMAND2
************************************************************************
********* SECOND FIELDCATALOG ******************************************
************************************************************************
*&---------------------------------------------------------------------*
*& Form FLD_CAT2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_I_FLDCAT2[] text
*----------------------------------------------------------------------*
FORM fld_cat2 USING p_i_fldcat2 TYPE slis_t_fieldcat_alv .
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-tabname = 'IT_DEL_FUL'."TABLE NAME
i_fldcat2-seltext_m = 'DELIVERY NO.'.
i_fldcat2-col_pos = 1. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-hotspot = 'X'.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'DELIVERY ITEM'.
i_fldcat2-col_pos = 2. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'MATERIAL NO.'.
i_fldcat2-col_pos = 3. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'PLANT.'.
i_fldcat2-col_pos = 4. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'ST. LOCATION'.
i_fldcat2-col_pos = 5. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'BATCH NO.'.
i_fldcat2-col_pos = 6. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'ACT. DEL. QTY.'.
i_fldcat2-col_pos = 7. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'SALES UNIT.'.
i_fldcat2-col_pos = 8. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
ENDFORM. " FLD_CAT2
************************************************************************
<b>***************** ALV LAYOUT *******************************************
************************************************************************
*&---------------------------------------------------------------------*
*& Form LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_I_LAYOUT text
*----------------------------------------------------------------------*
FORM t_layout USING p_i_layout TYPE slis_layout_alv .
p_i_layout-zebra = 'X'.
p_i_layout-totals_text = 'GRAND TOTAL ='.
* p_i_layout-CONFIRMATION_PROMPT = 'X'.
* p_i_layout-DEF_STATUS = ' '.
p_i_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. " LAYOUT</b>
reward if useful.
2007 Jul 13 1:20 PM
Hi Ravindra,
I have tried your code. Is there a way to display the subtotal text as 'Subtotal = ' instead of the sales order no (VBELN)?
The layout-subtotals_text still doesn't work. Must the sorted field be in specific data types?
Thanks in advance.
2007 Feb 20 10:46 AM
hi experts,
thanks a lot for ur inputs. but still i am unable to prinjt total and subtal in the layout.
guys plz do help me.below is the code what i wrote.
REPORT ymm_srvpos NO STANDARD PAGE HEADING LINE-SIZE 220 LINE-COUNT 65.
$$********************************************************************
Request Number : D70K908163 *
Program : YMM_SRVPOS *
Creation Date : 19.02.2007 *
Application : MM *
Author : Vinay Dasari *
Consultant : Srinvas M *
Description : Report for Department wise Man Days *
*
References : *
Type : 1 - Report program *
Inputs : User Selection *
Outputs : *
External Routines : None *
Called by : None *
Transaction : YMSRV *
*
$$********************************************************************
*********************TABLES DECLARATION******************************
TABLES: prps,esll,eskn,essr,csks,lfa1,aufk,cobrb,proj,t001w,ymmessr,
ymmlfa1.
*****************TYPE GROUP DECLARATION******************************
TYPE-POOLS : slis.
****************SELECTION SCREEN DECLARATION*************************
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_werks FOR t001w-werks OBLIGATORY NO INTERVALS,
s_date FOR essr-budat OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK b1.
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_rad1 RADIOBUTTON GROUP rept.
SELECTION-SCREEN COMMENT 3(10) text-003.
PARAMETERS: p_rad2 RADIOBUTTON GROUP rept.
SELECTION-SCREEN COMMENT 16(10) text-004.
PARAMETERS: p_rad3 RADIOBUTTON GROUP rept.
SELECTION-SCREEN COMMENT 30(10) text-005.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK b2.
************************VARIABLE DECLARATIONS***********************
DATA: g_repid LIKE sy-repid.
*********************FIELD CATALOG DECLARATION***********************
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: layout_wa TYPE slis_layout_alv.
DATA: p_it_st_fieldcat TYPE slis_fieldcat_alv OCCURS 0.
DATA: ls_sort TYPE slis_sortinfo_alv,
it_sort TYPE slis_t_sortinfo_alv.
********************ALV HEADING**************************************
DATA: v_plant(40),
v_date(40),
v_capex(10),
v_rd(10),
v_rm(10),
v_packno LIKE eslh-ebeln,
count LIKE sy-tabix.
DATA: shed TYPE slis_listheader. "For Feild Cat.
DATA: ithed TYPE slis_t_listheader. "For Feild Cat.
********************INTERNAL TABLE DECLARATION************************
DATA:BEGIN OF it_esll OCCURS 0,
introw LIKE esll-introw,
netwr LIKE esll-netwr,
menge LIKE esll-menge,
packno LIKE esll-packno,
END OF it_esll.
DATA:BEGIN OF it_essr OCCURS 0,
lblni LIKE essr-lblni,
packno LIKE essr-packno,
kzabn LIKE essr-kzabn,
knttp LIKE essr-knttp,
introw LIKE it_esll-introw,
END OF it_essr.
DATA:BEGIN OF it_eskn OCCURS 0,
kostl LIKE eskn-kostl,
aufnr LIKE eskn-aufnr,
knttp LIKE essr-knttp,
END OF it_eskn.
DATA:BEGIN OF it_ymmlfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr,
END OF it_ymmlfa1.
DATA:BEGIN OF it_csks OCCURS 0,
khinr LIKE csks-khinr,
kostl LIKE csks-kostl,
END OF it_csks.
DATA:BEGIN OF it_cskt OCCURS 0,
ltext LIKE cskt-ltext,
kostl LIKE cskt-kostl,
END OF it_cskt.
DATA:BEGIN OF it_prps OCCURS 0,
vernr LIKE prps-vernr,
END OF it_prps.
DATA:BEGIN OF it_ymmessr OCCURS 0,
srvpos LIKE esll-srvpos,
END OF it_ymmessr.
DATA:BEGIN OF it_aufk OCCURS 0,
objnr LIKE aufk-objnr,
aufnr LIKE aufk-aufnr,
END OF it_aufk.
DATA:BEGIN OF it_cobrb OCCURS 0,
kostl LIKE cobrb-kostl,
END OF it_cobrb.
DATA:BEGIN OF it_final OCCURS 0,
kzabn LIKE it_essr-kzabn,
knttp LIKE it_essr-knttp,
kostl LIKE it_eskn-kostl,
aufnr LIKE it_eskn-aufnr,
khinr LIKE it_csks-khinr,
kostl1 LIKE it_csks-kostl,
vernr LIKE it_prps-vernr,
kostl2 LIKE it_cobrb-kostl,
objnr LIKE it_aufk-objnr,
aufnr1 LIKE it_aufk-aufnr,
srvpos LIKE it_ymmessr-srvpos,
ltext LIKE it_cskt-ltext,
kostl3 LIKE it_cskt-kostl,
lifnr LIKE it_ymmlfa1-lifnr,
menge LIKE it_esll-menge,
netwr LIKE it_esll-netwr,
END OF it_final.
************************INITIALIZATION*************************
INITIALIZATION.
g_repid = sy-repid .
************************START OF SELECTION************************
START-OF-SELECTION.
************************SELECTING DATA****************************
IF p_rad3 = 'X'.
PERFORM select_data.
PERFORM fieldcatalog.
PERFORM layout.
PERFORM sort.
PERFORM top_of_page.
PERFORM display.
ENDIF.
&----
*& Form SELECT_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM select_data.
SELECT * FROM ymmessr
INTO CORRESPONDING FIELDS OF TABLE it_ymmessr.
IF sy-subrc = 0.
SELECT netwr menge packno introw
FROM esll
INTO CORRESPONDING FIELDS OF TABLE it_esll.
ENDIF.
IF NOT it_esll[] IS INITIAL.
SELECT lblni packno
FROM essr
INTO CORRESPONDING FIELDS OF TABLE it_essr
WHERE kzabn = 'X'
AND ( knttp = 'K' ) OR ( knttp = 'F' )
AND packno = it_esll-packno.
ENDIF.
IF NOT it_essr[] IS INITIAL.
LOOP AT it_essr.
CALL FUNCTION 'MS_GET_EXTERNAL_ROW'
EXPORTING
i_packno = it_essr-packno
i_introw = '0000000000'
IMPORTING
e_ebeln = v_packno.
MOVE v_packno TO it_essr-packno.
MODIFY it_essr INDEX sy-tabix TRANSPORTING packno.
ENDLOOP.
ENDIF.
SELECT kostl
FROM eskn
INTO CORRESPONDING FIELDS OF TABLE it_eskn
FOR ALL ENTRIES IN it_essr
WHERE packno = it_essr-packno.
IF sy-subrc = 0..
SELECT khinr
FROM csks
INTO CORRESPONDING FIELDS OF TABLE it_csks
FOR ALL ENTRIES IN it_eskn
WHERE kostl = it_eskn-kostl.
ENDIF.
IF NOT it_csks[] IS INITIAL.
SELECT ltext
FROM cskt
INTO CORRESPONDING FIELDS OF TABLE it_cskt
FOR ALL ENTRIES IN it_eskn
WHERE kostl = it_eskn-kostl.
ENDIF.
SELECT aufnr
FROM eskn
INTO CORRESPONDING FIELDS OF TABLE it_eskn
FOR ALL ENTRIES IN it_essr
WHERE packno = it_essr-packno.
IF NOT it_eskn[] IS INITIAL.
SELECT objnr
FROM aufk
INTO CORRESPONDING FIELDS OF TABLE it_aufk
FOR ALL ENTRIES IN it_eskn
WHERE aufnr = it_eskn-aufnr.
ENDIF.
IF NOT it_aufk[] IS INITIAL.
SELECT kostl
FROM cobrb
INTO CORRESPONDING FIELDS OF TABLE it_cobrb
FOR ALL ENTRIES IN it_aufk
WHERE objnr = it_aufk-objnr.
ENDIF.
IF NOT it_ymmessr[] IS INITIAL.
SORT it_ymmessr.
LOOP AT it_ymmessr.
it_final-srvpos = it_ymmessr-srvpos.
APPEND it_final.
CLEAR it_final.
ENDLOOP.
ENDIF.
IF NOT it_csks[] IS INITIAL.
count = 1.
LOOP AT it_csks.
it_final-khinr = it_csks-khinr.
MODIFY it_final INDEX count TRANSPORTING khinr.
count = count + 1.
CLEAR it_final.
ENDLOOP.
ENDIF.
IF NOT it_eskn[] IS INITIAL.
LOOP AT it_eskn.
count = 1.
it_final-kostl = it_eskn-kostl.
MODIFY it_final INDEX count TRANSPORTING kostl.
count = count + 1.
CLEAR it_final.
ENDLOOP.
ENDIF.
IF NOT it_cskt[] IS INITIAL.
count = 1.
LOOP AT it_cskt.
it_final-ltext = it_cskt-ltext.
MODIFY it_final INDEX count TRANSPORTING ltext.
count = count + 1.
CLEAR it_final.
ENDLOOP.
ENDIF.
IF NOT it_esll[] IS INITIAL.
count = 1.
LOOP AT it_esll.
it_final-menge = it_esll-menge.
it_final-netwr = it_esll-netwr.
MODIFY it_final INDEX count TRANSPORTING menge netwr.
count = count + 1.
CLEAR it_final.
ENDLOOP.
ENDIF.
APPEND it_final.
CLEAR it_final.
ENDFORM. " SELECT_DATA
&----
*& Form FIELDCATALOG
&----
text
----
--> p1 text
<-- p2 text
----
FORM fieldcatalog.
g_repid = sy-repid.
ls_fieldcat-fieldname = 'SRVPOS'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-outputlen = 15.
ls_fieldcat-seltext_m = 'Service Code'.
ls_fieldcat-hotspot = 'X'.
ls_fieldcat-key = ''.
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'KHINR'.
ls_fieldcat-tabname = 'IT_FINAL' .
ls_fieldcat-outputlen = 10.
ls_fieldcat-seltext_m = 'Division'.
ls_fieldcat-key = ''.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-SORT = 'X'.
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'KOSTL'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-seltext_m = 'Department'.
ls_fieldcat-key = ''.
APPEND ls_sort TO it_sort .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'LTEXT'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-seltext_m = 'Department Text'.
ls_fieldcat-key = ''.
APPEND ls_sort TO it_sort .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MENGE'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-outputlen = 15.
ls_fieldcat-seltext_m = 'Man days'.
ls_fieldcat-datatype = 'QUAN'.
ls_fieldcat-key = ''.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-SORT = 'X'.
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'NETWR'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-seltext_m = 'Amount'.
ls_fieldcat-hotspot = 'X'.
ls_fieldcat-key = ''.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-SORT = 'X'.
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ENDFORM. " FIELDCATALOG
&----
*& Form DISPLAY
&----
text
----
--> p1 text
<-- p2 text
----
FORM display.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout = layout_wa
it_fieldcat = p_it_st_fieldcat[]
it_sort = it_sort[]
i_save = 'A'
TABLES
t_outtab = it_final[].
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. " DISPLAY
&----
*& Form TOP_OF_PAGE
&----
text
----
--> p1 text
<-- p2 text
----
FORM top_of_page.
CONCATENATE 'Plant :' s_werks-low INTO v_plant SEPARATED BY space.
v_date = 'Date:'.
CONCATENATE v_date sy-datum6(2) '.' sy-datum4(2) '.' sy-datum(4)
INTO v_date .
v_rm = 'R&M'.
REFRESH ithed.
CLEAR shed.
shed-typ = 'H1'.
shed-info = 'Report to display Man days per department'.
APPEND shed TO ithed.
CLEAR shed.
CLEAR shed.
shed-typ = 'A'.
shed-info = v_plant.
APPEND shed TO ithed.
CLEAR shed.
CLEAR shed.
shed-typ = 'A'.
shed-info = v_date.
APPEND shed TO ithed.
CLEAR shed.
CLEAR shed.
shed-typ = 'A'.
shed-info = v_capex.
APPEND shed TO ithed.
CLEAR shed.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = ithed.
I_LOGO =
I_END_OF_LIST_GRID =
ENDFORM. " TOP_OF_PAGE
&----
*& Form SORT
&----
text
----
--> p1 text
<-- p2 text
----
FORM sort.
CLEAR it_sort.
REFRESH it_sort.
ls_sort-spos = 1.
ls_sort-fieldname = 'SRVPOS'.
ls_sort-tabname = 'IT_FINAL'.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
APPEND ls_sort TO it_sort.
CLEAR ls_sort.
ls_sort-spos = 2.
ls_sort-fieldname = 'KHINR'.
ls_sort-tabname = 'IT_FINAL'.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
APPEND ls_sort TO it_sort.
CLEAR ls_sort.
ENDFORM. " SORT
&----
*& Form LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM layout.
layout_wa-zebra = 'X'.
layout_wa-totals_only = 'X'.
layout_wa-totals_text = 'Total'.
layout_wa-subtotals_text = 'Sub Total'.
layout_wa-confirmation_prompt = 'X'.
layout_wa-colwidth_optimize = 'X'.
endform. " LAYOUT
Thanks and regards,
alson
2007 Feb 20 11:02 AM
hi alson,
just try and see by specifying COL_POS to the fields in fieldcat.
Ex:
ls_fieldcat-fieldname = 'SRVPOS'.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-outputlen = 15.
<b>ls_fieldcat-col_pos = 1.</b>
ls_fieldcat-seltext_m = 'Service Code'.
ls_fieldcat-hotspot = 'X'.
ls_fieldcat-key = ''.
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
regards,
priya.
2007 Feb 20 10:58 AM
Hi Alson,
try this,
&----
*& Form LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM layout.
<b>layout_wa-zebra = 'X'.
layout_wa-totals_only = 'X'.
layout_wa-totals_text = ' Total = ' .
layout_wa-subtotals_text = ' Sub Total = '.
layout_wa-confirmation_prompt = 'X'.
layout_wa-colwidth_optimize = 'X'.
endform. " LAYOUT</b>
reward if useful.
2007 Feb 20 11:12 AM
Hi Alson,
data : wa_layout type slis_layout_alv, "Layout
wa_layout-totals_text = 'Total'.
wa_layout-subtotals_text = 'SUB TOTAL'.
In the function module call this
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
is_layout = wa_layout
it_fieldcat = it_fieldcat.
Thanks
Vikranth Khimavath
2007 Feb 20 11:31 AM
hi experts,
i did the same what u r mentioning. the only thing i have sorted the first field i e Service Code amd summed the Menge and Netwr.
please go thru my code which i pasted earlier and give me the solution.
Thanks and Regards
vinay
2007 Feb 20 11:44 AM
Hi
Use s_layout-subtotals_text from slis type-group for the sub-totals text.
regards,
kumar
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |