04-01-2009 8:41 PM
Hi,
my filed catalog is as follows:
*DIVISION
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'SPART'.
ls_fieldcat-outputlen = '04'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'DIVI'.
ls_fieldcat-seltext_l = 'DIVISION'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
MATERIAL TEXT
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'MAKTX'.
ls_fieldcat-key = 'X'.
ls_fieldcat-outputlen = '50'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'MODEL DESC'.
ls_fieldcat-seltext_l = 'MODEL DESRIPTION'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
MODEL
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'MODEL'.
ls_fieldcat-key = 'X'.
ls_fieldcat-outputlen = '10'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'MODEL'.
ls_fieldcat-seltext_l = 'MODEL'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
MODEL TYPE
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'MODEL_TYPE'.
ls_fieldcat-key = 'X'.
ls_fieldcat-outputlen = '4'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'TYPE'.
ls_fieldcat-seltext_l = 'MODEL TYPE'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
MODEL TRIM
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'MODEL_TRIM'.
ls_fieldcat-key = 'X'.
ls_fieldcat-outputlen = '5'.
ls_fieldcat-hotspot = 'X'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'TRIM'.
ls_fieldcat-seltext_l = 'MODEL TRIM'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
VEHICLE IDENTIFICATION NUMBER (VIN)
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'VIN_NO'.
ls_fieldcat-key = 'X'.
ls_fieldcat-outputlen = '20'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'VIN NO'.
ls_fieldcat-seltext_l = 'VIN NUMBER'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
*YEAR
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'YEAR'.
ls_fieldcat-outputlen = '06'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'YEAR'.
ls_fieldcat-seltext_l = 'MODEL YEAR'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
QUANTITY (UNITS)
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'UNITS'.
ls_fieldcat-key = 'X'.
ls_fieldcat-outputlen = '04'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'UNITS'.
ls_fieldcat-seltext_l = 'UNITS'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
PRICE PER UNIT
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'PRICE_UNIT'.
ls_fieldcat-key = ' '.
ls_fieldcat-outputlen = '14'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-CFIELDNAME = 'VBRK-WAERK'.
ls_fieldcat-seltext_s = 'PRICE/UNIT'.
ls_fieldcat-seltext_l = 'PRICE PER UNIT'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
COST PER UNIT
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'COST_UNIT'.
ls_fieldcat-key = ' '.
ls_fieldcat-outputlen = '14'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-CFIELDNAME = 'VBRK-WAERK'.
ls_fieldcat-seltext_s = 'COST/UNIT'.
ls_fieldcat-seltext_l = 'COST PER UNIT'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
GROSS PROFIT PER UNIT
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'GP_UNIT'.
ls_fieldcat-key = ' '.
ls_fieldcat-outputlen = '14'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-CFIELDNAME = 'VBRK-WAERK'.
ls_fieldcat-seltext_s = 'GP/UNIT'.
ls_fieldcat-seltext_l = 'GP/UNIT'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
GROSS PROFIT - PERCETAGE PER UNIT
col_pos = col_pos + 1.
ls_fieldcat-fieldname = 'GP_PERCENTAGE'.
ls_fieldcat-key = ' '.
ls_fieldcat-outputlen = '14'.
ls_fieldcat-col_pos = col_pos.
ls_fieldcat-seltext_s = 'GP%/UNIT'.
ls_fieldcat-seltext_l = 'GP%/UNIT'.
APPEND ls_fieldcat TO l_fieldcat.
CLEAR ls_fieldcat.
and call to the FM is as follows:
DATA: gs_layout TYPE slis_layout_alv.
MOVE sy-repid TO g_repid.
CLEAR gs_layout.
gs_layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'lt_output'
is_layout = gs_layout
it_sort = ls_fieldcat
it_fieldcat = gt_fieldcat
i_save = c_a
TABLES
t_outtab = lt_output
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_GRID_DISPLAY'.
ENDIF.
When the output is displayed , total/ sub-total button is not displayed in the application toolbar .
I dont understand what might be the problem.Can someone help in solving this?
Thanks in advance.
Challa
04-02-2009 4:26 AM
Hi,
It's very Simple for One Field use Data type as Numeric or Integer.
Salil ...
04-01-2009 8:45 PM
Hi,
There should be the field of type I N F in the internal table. then you can see the Total button in the application tool bar.
Check this code..
TYPE-POOLS: slis.
DATA: BEGIN OF i_data OCCURS 0,kunnr TYPE kunnr,
ws_row TYPE char10, ----> change this to type I now you can see the Sum button in application tool bar
ws_char(5) TYPE c,
chk,
END OF i_data.
DATA: report_id LIKE sy-repid.
DATA: ws_title TYPE lvc_title VALUE 'An ALV Report'.
DATA: i_layout TYPE slis_layout_alv.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv.
SELECT kunnr
INTO TABLE i_data
FROM kna1.
" WHERE qmnum <= '00030000010'.
LOOP AT i_data.
i_data-ws_row = sy-tabix.
i_data-ws_char = 'AAAAA'.
MODIFY i_data.
ENDLOOP.
report_id = sy-repid.
PERFORM f1000_layout_init CHANGING i_layout.
PERFORM f2000_fieldcat_init CHANGING i_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = report_id
i_grid_title = ws_title
is_layout = i_layout
it_fieldcat = i_fieldcat
i_save = 'A'
TABLES
t_outtab = i_data
EXCEPTIONS
program_error = 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.
*&---------------------------------------------------------------------*
*& Form F1000_Layout_Init
*&---------------------------------------------------------------------*
FORM f1000_layout_init USING i_layout TYPE slis_layout_alv.
CLEAR i_layout.
i_layout-colwidth_optimize = 'X'.
i_layout-edit = 'X'.
ENDFORM. " F1000_Layout_Init
*&---------------------------------------------------------------------*
*& Form f2000_fieldcat_init
*&---------------------------------------------------------------------*
FORM f2000_fieldcat_init CHANGING i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: line_fieldcat TYPE slis_fieldcat_alv.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'CHK'.
line_fieldcat-tabname = 'I_DATA'.
line_fieldcat-seltext_l = 'Checkbox'.
line_fieldcat-checkbox = 'X'. " Display this field as a checkbox
line_fieldcat-edit = 'X'. " This option ensures that you can
APPEND line_fieldcat TO i_fieldcat.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'WS_ROW'.
line_fieldcat-tabname = 'I_DATA'.
line_fieldcat-seltext_m = 'Row Number'.
APPEND line_fieldcat TO i_fieldcat.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'WS_CHAR'.
line_fieldcat-tabname = 'I_DATA'.
line_fieldcat-seltext_l = 'Test Character Field'.
line_fieldcat-datatype = 'CHAR'.
line_fieldcat-outputlen = '15'. " You can specify the width of a
APPEND line_fieldcat TO i_fieldcat. " column.
ENDFORM. " f2000_fieldcat_init
*&---------------------------------------------------------------------*
*& Form user_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
WRITE 😕 'TEST.'.
ENDFORM. "user_command
04-02-2009 2:56 AM
try to add i_callback_pf_status_set = 'F_STATUS' when you call the function REUSE_ALV_GRID_DISPLAY
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_pf_status_set = 'F_STATUS'
and also add a code for the f_status
FORM f_status USING ut_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'.
ENDFORM.
04-02-2009 3:52 AM
Hi Bhasker,
Refer to this pgm ..simple one no need to worry ..k
REPORT ZALV_GRID_DISPLAY
LINE-SIZE 351
NO STANDARD PAGE HEADING
LINE-COUNT 65
MESSAGE-ID zmsg.
********************************************************************
*TABLES
********************************************************************
Tables: vbrk,
vbrp.
********************************************************************
*INTERNAL TABLES AND STRUCTURES
********************************************************************
Data : it_vbrk like table of vbrk with header line,
it_vbrp like table of vbrp with header line.
********************************************************************
*ALV VARIABLES AND INTERNAL TABLES
********************************************************************
TYPE-POOLS: slis.
DATA :st_layout TYPE slis_layout_alv,
it_fieldcat TYPE slis_t_fieldcat_alv,
it_listheader TYPE slis_t_listheader,
it_event TYPE slis_t_event,
it_sort TYPE slis_t_sortinfo_alv,
v_repid LIKE sy-repid.
********************************************************************
*INITIALIZATION
********************************************************************
INITIALIZATION.
v_repid = sy-repid.
********************************************************************
*SELECTION SCREEN DEFINITIONS
********************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-000.
select-options: so_vbeln for vbrk-vbeln.
obligatory default '10395527'.
SELECTION-SCREEN END OF BLOCK b.
********************************************************************
*START-OF-SELECTION
********************************************************************
START-OF-SELECTION.
PERFORM get_data.
IF NOT it_vbrk[] IS INITIAL.
PERFORM alv_display_default.
ELSE.
MESSAGE I444 WITH 'Data not found for the selection'.
ENDIF.
********************************************************************
*END-OF-SELECTION
********************************************************************
END-OF-SELECTION.
********************************************************************
*FORM FOR GET DATA
********************************************************************
FORM get_data.
select * from vbrk
into corresponding fields of table it_vbrk
where vbeln in so_vbeln.
if not it_vbrk[] is initial.
select * from vbrp
into corresponding fields of table it_vbrp
for all entries in it_vbrk
where vbeln = it_vbrk-vbeln.
endif.
ENDFORM.
********************************************************************
*FORM FOR ALV LAYOUT STRUCTURE
********************************************************************
FORM fill_layout_structure.
CLEAR st_layout.
st_layout-zebra = 'X'.
st_layout-f2code = '&ETA'.
st_layout-detail_popup = 'X'.
st_layout-colwidth_optimize = 'X'.
ENDFORM. "fill_layout_structure
********************************************************************
*FORM FOR ALV FIELD CATALOG TABLE
********************************************************************
FORM fill_field_cat_table_detail.
PERFORM fill_field_catalog USING :
'VBELN' 'Document' 10 'it_vbrp' space space,
'POSNR' 'Item No' 8 'it_vbrp' 'X' space,
'MATNR' 'Material No' 15 'it_vbrp' space space,
'ARKTX' 'Description' 30 'it_vbrp' space space,
'FKIMG' 'Qty' 10 'it_vbrp' space space,
'NETWR' 'Amount' 15 'it_vbrp' space 'X'.
ENDFORM.
********************************************************************
*FORM FOR ALV FIELD CATALOG TABLE
********************************************************************
FORM fill_field_cat_table_sum.
PERFORM fill_field_catalog USING :
'VBELN' 'Document' 10 'it_vbrk' space space,
'FKART' 'Doc Type' 10 'it_vbrk' space space,
'NETWR' 'Amount' 10 'it_vbrk' space space.
ENDFORM.
********************************************************************
*FORM FOR FILLING FIELD CATALOG
********************************************************************
FORM fill_field_catalog USING f d l t p s.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
STATICS v_pos TYPE i VALUE 1.
wa_fieldcat-fieldname = f.
wa_fieldcat-seltext_m = d.
wa_fieldcat-tabname = t.
wa_fieldcat-outputlen = l.
wa_fieldcat-fix_column = p.
wa_fieldcat-do_sum = s.
APPEND wa_fieldcat TO it_fieldcat.
ENDFORM. "fill_field_catalog
********************************************************************
*FORM FOR GET_EVENT
********************************************************************
FORM get_event USING it_event TYPE slis_t_event.
DATA : wa_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event.
READ TABLE it_event
WITH KEY name = slis_ev_top_of_page
INTO wa_event.
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE' TO wa_event-form.
APPEND wa_event TO it_event.
ENDIF.
ENDFORM. "get_event
********************************************************************
*FORM FOR TOP_OF_PAGE(to assign form for the top-of-page event)
********************************************************************
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = it_listheader
I_LOGO = 'ZWIPRO_LOGO'.
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM. "top_of_page
********************************************************************
*FORM FOR FILLING LISTHEADER
********************************************************************
FORM fill_listheader USING it_listheader TYPE slis_t_listheader.
*Reprot header
DATA : wa_listheader TYPE slis_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'H'.
MOVE ' Invoice Details' TO wa_listheader-info.
APPEND wa_listheader TO it_listheader.
*List header for document number
IF NOT so_vbeln-low IS INITIAL AND NOT so_vbeln-high IS INITIAL.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = ' Invoice Number :'.
CONCATENATE so_vbeln-low 'To' so_vbeln-high INTO
wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO it_listheader.
ELSEIF so_vbeln-low IS INITIAL AND so_vbeln-high IS INITIAL.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = ' Invoice Number :'.
wa_listheader-info = '*'.
APPEND wa_listheader TO it_listheader.
ELSEIF NOT so_vbeln-low IS INITIAL AND so_vbeln-high IS INITIAL.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = ' Invoice Number :'.
wa_listheader-info = so_vbeln-low.
APPEND wa_listheader TO it_listheader.
ENDIF.
ENDFORM.
********************************************************************
*FORM FOR ALV DISPLAY
********************************************************************
FORM alv_display_default.
PERFORM fill_layout_structure.
PERFORM get_event USING it_event.
PERFORM fill_listheader USING it_listheader.
PERFORM fill_field_cat_table_detail.
PERFORM alv_display_detail.
ENDFORM.
FORM PUSH_BUT USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD'. "EXCLUDING rt_extab.
SET TITLEBAR text-001.
ENDFORM.
FORM REP_OPT USING r_ucomm selfield type slis_selfield.
CASE r_ucomm.
WHEN 'SUM'.
FREE it_fieldcat.
PERFORM fill_field_cat_table_sum.
FREE it_listheader.
PERFORM fill_listheader_sum USING it_listheader.
PERFORM alv_display_summary.
leave to screen 0.
WHEN 'DET'.
FREE it_fieldcat.
PERFORM fill_field_cat_table_detail.
FREE it_listheader.
PERFORM fill_listheader USING it_listheader.
PERFORM alv_display_detail.
leave to screen 0.
ENDCASE.
ENDFORM.
FORM alv_display_detail.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = v_repid
I_CALLBACK_PF_STATUS_SET = 'PUSH_BUT'
I_CALLBACK_USER_COMMAND = 'REP_OPT'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'QMEL'
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Rep'
I_GRID_SETTINGS =
IS_LAYOUT = st_layout
IT_FIELDCAT = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'X'
IS_VARIANT =
IT_EVENTS = it_event
TABLES
T_OUTTAB = it_vbrp.
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM.
********************************************************************
*FORM FOR FILLING LISTHEADER
********************************************************************
FORM fill_listheader_sum USING it_listheader TYPE slis_t_listheader.
*Reprot header
DATA : wa_listheader TYPE slis_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'H'.
MOVE ' Invoice Summary' TO wa_listheader-info.
APPEND wa_listheader TO it_listheader.
*List header for document number
IF NOT so_vbeln-low IS INITIAL AND NOT so_vbeln-high IS INITIAL.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = ' Invoice Number :'.
CONCATENATE so_vbeln-low 'To' so_vbeln-high INTO
wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO it_listheader.
ELSEIF so_vbeln-low IS INITIAL AND so_vbeln-high IS INITIAL.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = ' Invoice Number :'.
wa_listheader-info = '*'.
APPEND wa_listheader TO it_listheader.
ELSEIF NOT so_vbeln-low IS INITIAL AND so_vbeln-high IS INITIAL.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = ' Invoice Number :'.
wa_listheader-info = so_vbeln-low.
APPEND wa_listheader TO it_listheader.
ENDIF.
ENDFORM.
FORM alv_display_summary.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = v_repid
I_CALLBACK_PF_STATUS_SET = 'PUSH_BUT'
I_CALLBACK_USER_COMMAND = 'REP_OPT'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'QMEL'
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Rep'
I_GRID_SETTINGS =
IS_LAYOUT = st_layout
IT_FIELDCAT = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'X'
IS_VARIANT =
IT_EVENTS = it_event
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = it_vbrk.
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM.
04-02-2009 3:56 AM
Tip: while posting code in sdn... place your code in between
'Your program code',
so that it will be formatted neatly.
Edited by: Satya suresh Donepudi on Apr 1, 2009 9:57 PM
04-02-2009 4:26 AM
Hi,
It's very Simple for One Field use Data type as Numeric or Integer.
Salil ...