2008 Apr 29 7:55 AM
Dear all,
i displayed table using FM reuse_alv_list_display .
my requirment is display the count of the table at the bottom of list .
please give ur suggestions
Thanks& Regards,
RP
2008 Apr 29 8:15 AM
Hi
You can use the event END_OF_LIST.
In GT_EVENTS,
EVENTNAME = END_OF_LIST.
FORMNAME = 'ABC'.
FORM abc.
WRITE:/ 'Total no of records:', gv_total.
ENDFORM.
2008 Apr 29 7:58 AM
Hi,
Following report will solve your problem.
REPORT YMS_ALVLISTSUBTOTAL.
TYPE-POOLS: SLIS.
DATA: F_FLDCAT TYPE SLIS_FIELDCAT_ALV,
T_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV,
F_EVENT TYPE SLIS_ALV_EVENT,
T_EVENT TYPE SLIS_T_EVENT.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
ZMENG LIKE VBAP-ZMENG,
TEXT(35),
END OF ITAB.
SELECT VBELN POSNR ZMENG FROM VBAP
INTO TABLE ITAB UP TO 20 ROWS.
LOOP AT ITAB.
ITAB-ZMENG = SY-TABIX.
MODIFY ITAB INDEX SY-TABIX.
ENDLOOP.
F_FLDCAT-FIELDNAME = 'text'.
F_FLDCAT-COL_POS = 1.
F_FLDCAT-OUTPUTLEN = 15.
*f_fldcat-checkbox = 'X'.
*f_fldcat-edit = ''.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.
F_FLDCAT-FIELDNAME = 'VBELN'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'VBELN'.
F_FLDCAT-COL_POS = 2.
F_FLDCAT-OUTPUTLEN = 30.
F_FLDCAT-JUST = 'C'.
F_FLDCAT-EDIT = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.
F_FLDCAT-FIELDNAME = 'POSNR'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'POSNR'.
F_FLDCAT-COL_POS = 3.
F_FLDCAT-EDIT = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.
F_FLDCAT-FIELDNAME = 'ZMENG'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'ZMENG'.
F_FLDCAT-COL_POS = 4.
F_FLDCAT-EDIT = 'X'.
F_FLDCAT-DO_SUM = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.
DATA: SORT TYPE SLIS_SORTINFO_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV.
SORT-FIELDNAME = 'VBELN'.
SORT-SPOS = '1'.
SORT-GROUP = '*'.
SORT-UP = 'X'.
SORT-SUBTOT = 'X'.
*SORT-OBLIGATORY = 'UL'.
APPEND SORT TO IT_SORT.
L_LAYOUT-TOTALS_TEXT = 'total text'.
L_LAYOUT-SUBTOTALS_TEXT = 'subtotal text'.
*l_layout-totals_only = 'X'.
DATA: PRG TYPE SY-REPID.
PRG = SY-REPID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = T_FLDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = IT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = T_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
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC EQ 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.Thanks,
Sankar M
2008 Apr 29 8:15 AM
Hi
You can use the event END_OF_LIST.
In GT_EVENTS,
EVENTNAME = END_OF_LIST.
FORMNAME = 'ABC'.
FORM abc.
WRITE:/ 'Total no of records:', gv_total.
ENDFORM.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |