02-28-2006 10:01 AM
Hi,
i have 3 numerical fields in my ALV output. I need to display the total in top/first line in output and download the same in excel into local system.if possible send me the sample code to how to do it.
Regards,
Nandha.
02-28-2006 10:10 AM
as sateesh suggested , u can use
TOTAL_BEFORE_ITEMS IN SLIS_ALV_LAYOUT AS 'X'.
and do_sum = 'X' IN SLIS_FIELDCAT_ALV.
U CAN DOWNLOAD TO EXCEL THROUGH MENU OPTION
02-28-2006 10:05 AM
Hi,
Check out the following link.
http://www.geocities.com/mpioud/Abap_programs.html
Thanks.
If this helps you reward with points.
02-28-2006 10:05 AM
hi ,
its very simple..
use TOTALS_BEFORE_ITEMS of the layout.. like
GS_LAYOUT-TOTALS_BEFORE_ITEMS = 'X'.
regards
satesh
02-28-2006 10:06 AM
TABLES : BSEG , BKPF.
TABLES: SSCRFIELDS.
TABLES: ITCPO.
DATA :FLAG TYPE I, MAINTAIN TYPE I,
FLAG1 TYPE I,
FLAG2 TYPE I,
FLAG3 TYPE I.
DATA :BEGIN OF ITAB_BKPF OCCURS 0,
BUKRS LIKE BKPF-BUKRS,
GJAHR LIKE BKPF-GJAHR,
BELNR LIKE BKPF-BELNR,
BLART LIKE BKPF-BLART,
BUDAT LIKE BKPF-BUDAT,
END OF ITAB_BKPF.
DATA :BEGIN OF ITAB_BSEG OCCURS 0,
BUKRS LIKE BSEG-BUKRS,
GJAHR LIKE BSEG-GJAHR,
BELNR LIKE BSEG-BELNR,
BUZEI LIKE BSEG-BUZEI,
BSCHL LIKE BSEG-BSCHL,
HKONT LIKE BSEG-HKONT,
DMBTR LIKE BSEG-DMBTR,
MWSKZ LIKE BSEG-MWSKZ,
ZUONR LIKE BSEG-ZUONR,
KOSTL LIKE BSEG-KOSTL,
FISTL LIKE BSEG-FISTL,
FIPOS LIKE BSEG-FIPOS,
SGTXT LIKE BSEG-SGTXT,
END OF ITAB_BSEG.
DATA BEGIN OF ITAB_BKPF_BSEG OCCURS 0.
INCLUDE STRUCTURE ZBKPF_BSEG.
DATA END OF ITAB_BKPF_BSEG.
*DATA ITAB_BKPF_BSEG LIKE TABLE OF ZITAB_BKPF_BSEG WITH HEADER LINE.
DATA i_print LIKE TABLE OF ITCPO WITH HEADER LINE.
TYPE-POOLS : SLIS , kkblo.
DATA:TEXT2(30) VALUE 'Voucher Print',
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
CT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
IT_SORT TYPE SLIS_T_SORTINFO_ALV,
WA_SORT TYPE SLIS_SORTINFO_ALV,
WA_SUBT LIKE SLIS_EV_SUBTOTAL_TEXT,
WA_I_EVENT TYPE SLIS_ALV_EVENT,
TEMP_CAT TYPE SLIS_FIELDCAT_ALV
.
DATA : TEXT2538(16) VALUE 'Voucher Printing'.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_BUKRS LIKE BKPF-BUKRS OBLIGATORY.
"Company code
SELECT-OPTIONS : S_BELNR FOR BKPF-BELNR MODIF ID M01.
"Accounting Doc No
PARAMETERS: P_GJAHR LIKE BKPF-GJAHR MODIF ID M02.
"Fiscal year
SELECT-OPTIONS: S_BLART FOR BKPF-BLART MODIF ID M03,
"Document type
S_BUDAT FOR BKPF-BUDAT MODIF ID M04.
"Posting date
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION.
IF S_BELNR IS NOT INITIAL.
FLAG = 1.
ENDIF.
IF S_BLART IS NOT INITIAL.
FLAG1 = 1.
ENDIF.
IF P_GJAHR IS NOT INITIAL.
FLAG2 = 1.
ENDIF.
IF S_BUDAT IS NOT INITIAL.
FLAG3 = 1.
ENDIF.
SELECT
BUKRS
GJAHR
BELNR
INTO CORRESPONDING FIELDS OF TABLE ITAB_BKPF
FROM BKPF
WHERE BUKRS EQ P_BUKRS
.
IF SY-SUBRC NE 0.
MESSAGE E000(ZPROJ).
ENDIF.
IF FLAG NE 0.
DELETE ITAB_BKPF WHERE
NOT ( BELNR IN S_BELNR AND GJAHR EQ P_GJAHR )
.
ENDIF.
IF FLAG1 NE 0.
DELETE ITAB_BKPF WHERE
NOT ( BLART IN S_BLART AND BUDAT IN S_BUDAT )
.
ENDIF.
IF FLAG2 NE 0.
DELETE ITAB_BKPF WHERE
NOT ( GJAHR EQ P_GJAHR )
.
ENDIF.
IF FLAG3 NE 0.
DELETE ITAB_BKPF WHERE
NOT ( BUDAT IN S_BUDAT )
.
ENDIF.
SELECT
BUKRS
GJAHR
BELNR
BUZEI
BSCHL
HKONT
DMBTR
MWSKZ
ZUONR
KOSTL
FISTL
FIPOS
SGTXT
FROM BSEG
INTO TABLE ITAB_BSEG
FOR ALL ENTRIES IN ITAB_BKPF
WHERE
BUKRS EQ P_BUKRS AND
BELNR EQ ITAB_BKPF-BELNR AND
GJAHR EQ ITAB_BKPF-GJAHR
.
LOOP AT ITAB_BKPF.
LOOP AT ITAB_BSEG WHERE BUKRS EQ ITAB_BKPF-BUKRS AND
BELNR EQ ITAB_BKPF-BELNR AND
GJAHR EQ ITAB_BKPF-GJAHR.
MOVE-CORRESPONDING ITAB_BSEG TO ITAB_BKPF_BSEG.
* MOVE-CORRESPONDING ITAB_BKPF TO ITAB_BKPF_BSEG.
APPEND ITAB_BKPF_BSEG.
ENDLOOP.
ENDLOOP.
LOOP AT ITAB_BKPF_BSEG.
ITAB_BKPF_BSEG-ZMENG = ITAB_BKPF_BSEG-DMBTR.
MODIFY ITAB_BKPF_BSEG TRANSPORTING zmeng.
ENDLOOP.
PERFORM CHANGE_CATALOG.
PERFORM ALV_DISPLAY.
FORM CHANGE_CATALOG .
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'BUKRS'.
TEMP_CAT-SELTEXT_L = 'Company Code'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 30.
TEMP_CAT-HOTSPOT = 'X'.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'BELNR'.
TEMP_CAT-SELTEXT_L = 'Document No.'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-HOTSPOT = 'X'.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'GJAHR'.
TEMP_CAT-SELTEXT_L = 'Fiscal Year'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
TEMP_CAT-HOTSPOT = 'X'.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'BUZEI'.
TEMP_CAT-SELTEXT_L = 'Item'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 5.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'BSCHL'.
TEMP_CAT-SELTEXT_L = 'Posting Key'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'HKONT'.
TEMP_CAT-SELTEXT_L = 'Account'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'DMBTR'.
TEMP_CAT-SELTEXT_L = 'Amount'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
TEMP_CAT-DO_SUM = 'X'.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'MWSKZ'.
TEMP_CAT-SELTEXT_L = 'Tax'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'ZUONR'.
TEMP_CAT-SELTEXT_L = 'Assignment'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'KOSTL'.
TEMP_CAT-SELTEXT_L = 'Cost Center'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'FISTL'.
TEMP_CAT-SELTEXT_L = 'Fund Center'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'FIPOS'.
TEMP_CAT-SELTEXT_L = 'Commitment Item'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
APPEND TEMP_CAT TO CT_FIELDCAT.
CLEAR TEMP_CAT.
TEMP_CAT-FIELDNAME = 'SGTXT'.
TEMP_CAT-SELTEXT_L = 'Text'.
TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
TEMP_CAT-DDICTXT = 'L'.
TEMP_CAT-OUTPUTLEN = 15.
APPEND TEMP_CAT TO CT_FIELDCAT.
GS_LAYOUT-ZEBRA = 'X'.
<b>GS_LAYOUT-TOTALS_BEFORE_ITEMS = 'X'.</b>
data : text like slis_ev_subtotal_text value 'total'.
gs_layout-subtotals_text = text.
*gs_layout-totals_only = 'X'.
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'BUKRS'.
WA_SORT-SPOS = 1.
WA_SORT-UP = 'X'.
*wa_sort-group = '*'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'BELNR'.
WA_SORT-SPOS = 2.
WA_SORT-SUBTOT = 'X'.
WA_SORT-UP = 'X'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'GJAHR'.
WA_SORT-SPOS = 3.
WA_SORT-SUBTOT = 'X'.
WA_SORT-UP = 'X'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'DMBTR'.
WA_SORT-SPOS = 4.
APPEND WA_SORT TO IT_SORT.
gs_layout-subtotals_text = 'total'.
ENDFORM.
FORM ALV_DISPLAY.
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 = 'USER_COMMAND'
* I_STRUCTURE_NAME =
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = CT_FIELDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = IT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = 'A'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE 0 = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IR_SALV_LIST_ADAPTER =
* IT_EXCEPT_QINFO =
* I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB_BKPF_BSEG
* 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.
ENDFORM. "ALV_DISPLAY
*i_calLback_user_command = 'USER_COMMAND'.
FORM USER_COMMAND
USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
DATA wa LIKE LINE OF ITAB_BKPF_BSEG.
DATA itab LIKE TABLE OF ITAB_BKPF_BSEG WITH HEADER LINE.
READ TABLE ITAB_BKPF_BSEG index SELFIELD-TABINDEX INTO wa.
APPEND ITAB_BKPF_BSEG TO ITAB.
ENDLOOP.
CALL FUNCTION '/1BCDWB/SF00000204'
* EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
* CONTROL_PARAMETERS = i_ctrl
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
* OUTPUT_OPTIONS = i_print
* USER_SETTINGS = 'X'
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
TABLES
ITAB_BKPF_BSEG = ITAB
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
.
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_command
02-28-2006 10:09 AM
Hi,
you can do that
pass this option to
<b>layout-totals_before_items = 'X'.</b>
Regards
vijay
02-28-2006 10:10 AM
as sateesh suggested , u can use
TOTAL_BEFORE_ITEMS IN SLIS_ALV_LAYOUT AS 'X'.
and do_sum = 'X' IN SLIS_FIELDCAT_ALV.
U CAN DOWNLOAD TO EXCEL THROUGH MENU OPTION