‎2006 Jul 13 7:26 PM
Hi,
Below is my code, in this when i execute the program, ALV is displaying properly. When I sort the GL Account Number and GL Description.
The top-of-page is triggered three times.
Ex : GL Account
GL Account
GL Account.
And even the date and no. of records also displays 3 times.
Please rectify the problem and let me know.
&----
*& Report ZTESTALVPRG
*&
&----
*&
*&
&----
REPORT ZTESTALVPRG MESSAGE-ID ZFI1
NO STANDARD PAGE HEADING
LINE-SIZE 130
LINE-COUNT 55.
----
ABAP Name: ZGLR3R_FX_CTA_LINEITEMS *
Description: Detailed analysis of entries hitting the FX account at *
line item level *
Created by: Sriram Ponna (Sri) *
Created on: 07/06/2006 *
Version: 1.0 *
Description: 1241 R2.0- Line item display for FX & CTA *
This report will display line item level details for *
all manual entries hitting the FX and CTA accounts, *
this report will be used by corporate for their month *
end FX analysis. *
*
TCode: ZGL_FX_ANALYSIS *
----
Modification Log: *
Date Pgmr ID CTS # Description *
-------- ------- ---------- ----------------------------------------*
*07/06/06 HBF3643 DEVK932084 Initial version of the Report *
----
----
TABLES DECLARATIONS
----
TABLES:
SSCRFIELDS, " Fields on selection screens
BSIS, " Accounting: Secondary Index for G/L Accounts
BSEG, " Accounting Document Segment
BKPF, " Accounting Document Header
SKA1, " G/L Account Master (Chart of Accounts)
T001, " Add. Local Currencies Ctrl for Company Code
TCURR," Exchange Rates
T000. " Group Currency
----
DATA DECLARATIONS
----
INCLUDE <ICON>.
----
ALV grid reporting data *
----
TYPE-POOLS: SLIS.
----
DATA DECLARATIONS
----
CONSTANTS: GC_FX_SET TYPE SETNAMENEW VALUE 'ZFI_RP_1241_FXACCT',
GC_CTA_SET TYPE SETNAMENEW VALUE 'ZFI_RP_1241_CTAACCT',
GC_ICFX_SET TYPE SETNAMENEW VALUE 'ZFI_RP_1241_ICFXACCT'.
DATA: GV_SET_LINE_COUNTER TYPE I,
GV_FX_ACCOUNT LIKE BSEG-HKONT,
GV_CTA_ACCOUNT LIKE BSEG-HKONT,
GV_ICFX_ACCOUNT LIKE BSEG-HKONT,
GT_SET_VALUES LIKE RGSBV OCCURS 0 WITH HEADER LINE.
DATA : DATUM TYPE SY-DATUM .
ALV Grid structures
DATA: GT_FIELDCAT TYPE LVC_T_FCAT,
GS_FIELDCAT TYPE LVC_S_FCAT,
GT_EVENTS TYPE SLIS_T_EVENT,
GS_EVENTS TYPE SLIS_ALV_EVENT,
GT_EXTAB TYPE SLIS_T_EXTAB,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GS_LINE TYPE SLIS_LISTHEADER,
GT_SELFIELD TYPE SLIS_SELFIELD.
DATA: GT_RSPARAMS TYPE TABLE OF RSPARAMS.
*ALV data declaration
DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID,
GD_PRNTPARAMS TYPE SLIS_PRINT_ALV.
Data for ALV variant
DATA GV_REPNAME LIKE SY-REPID.
DATA GV_X_VARIANT LIKE DISVARIANT.
DATA GV_EXIT(1) TYPE C.
DATA GV_SAVE(1) TYPE C.
DATA GV_VARIANT LIKE DISVARIANT.
DATA GV_STATUS TYPE SLIS_FORMNAME VALUE 'F_STANDARD_02'.
*ALV Header declarations
DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER,
T_LINE LIKE WA_HEADER-INFO,
LD_LINES TYPE I,
LD_LINESC(10) TYPE C.
*Internal table to get the data from BSIS table
DATA : BEGIN OF GT_FXENTRIES OCCURS 0,
HKONT LIKE BSIS-HKONT, "GL Account
BUKRS LIKE BSIS-BUKRS, " Comp. Code
MONAT LIKE BSIS-MONAT, "Period
BLART LIKE BSIS-BLART, " Doc. Type
WRBTR LIKE BSIS-WRBTR, " Amt in Doc.
WAERS LIKE BSIS-WAERS, " Doc. Currency
SHKZG LIKE BSIS-SHKZG, "Credit or Debit
DMBTR LIKE BSIS-DMBTR, "Amt in local currency
DMBE2 LIKE BSIS-DMBE2, "Amt in group currency
PRCTR LIKE BSIS-PRCTR, " Profit Center
BELNR LIKE BSIS-BELNR, "Doc Number
GJAHR LIKE BSIS-GJAHR, "Year
BUDAT LIKE BSIS-BUDAT, " Posting date
VBUND LIKE BSIS-VBUND, "trading partner
PPRCT LIKE BSIS-PPRCT, "Partner Profit Center
KOSTL LIKE BSIS-KOSTL, "Cost Center
PROJK LIKE BSIS-PROJK, "WBS Element
SGTXT LIKE BSIS-SGTXT, " Line Item Text
MANDT LIKE BSIS-MANDT, " Client Number
END OF GT_FXENTRIES.
*Internal table skat(GL Description)
DATA : BEGIN OF GT_GLTEXT OCCURS 0,
TXT50 LIKE SKAT-TXT50, " GL Description
END OF GT_GLTEXT.
*Internal table for bseg for auto posting.
DATA : BEGIN OF GT_BSEG OCCURS 0,
XAUTO LIKE BSEG-XAUTO, " System Auto Post
END OF GT_BSEG.
*Internal table for BKPF document header for User Name
DATA : BEGIN OF GT_DOCHEADER OCCURS 0,
USNAM LIKE BKPF-USNAM, " User name
END OF GT_DOCHEADER.
*Internal table group currency
DATA : BEGIN OF GT_GRPCURR OCCURS 0,
MWAER LIKE T000-MWAER, " Group currency
END OF GT_GRPCURR.
*Internal table for Local Currency
DATA : BEGIN OF GT_LOCALCURR OCCURS 0,
WAERS1 LIKE T001-WAERS.
DATA : END OF GT_LOCALCURR.
*Final data to be displayed in ALV
DATA :BEGIN OF GT_FINALFX OCCURS 0.
INCLUDE STRUCTURE GT_FXENTRIES.
INCLUDE STRUCTURE GT_GLTEXT.
INCLUDE STRUCTURE GT_BSEG.
INCLUDE STRUCTURE GT_DOCHEADER.
INCLUDE STRUCTURE GT_GRPCURR.
INCLUDE STRUCTURE GT_LOCALCURR.
DATA : END OF GT_FINALFX.
*work area for GT_FINALFX
DATA: WA_FINALFX LIKE GT_FINALFX .
----
*Selection Screen
----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : SO_BUKRS FOR BSIS-BUKRS," Company Code
SO_GJAHR FOR BSIS-GJAHR DEFAULT SY-DATUM(4). " Fiscal
"Year
parameters : SP_MONAT like BSIS-MONAT." NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS : SP_WAERS FOR BSIS-WAERS NO INTERVALS NO-EXTENSION,
" Amt in Document Currency
SP_BLART FOR BSIS-BLART NO INTERVALS NO-EXTENSION.
" Document Type
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS SP_VBUND FOR BSIS-VBUND NO INTERVALS NO-EXTENSION.
"Trading Partner
SELECTION-SCREEN END OF BLOCK B3.
SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-004.
SELECT-OPTIONS : SO_HKONT FOR BSIS-HKONT. "G/L Account Number
PARAMETERS : SP_FX RADIOBUTTON GROUP RADI , " Foreign Exchange
SP_CTA RADIOBUTTON GROUP RADI, " Cumm.Trans Adj
SP_IC_FX RADIOBUTTON GROUP RADI, " Inter Co. FX
SP_XAUTO AS CHECKBOX USER-COMMAND FLAG. " Auto Post Sys
SELECTION-SCREEN END OF BLOCK B4.
SELECTION-SCREEN BEGIN OF BLOCK B5 WITH FRAME TITLE TEXT-005.
PARAMETERS: SP_VARI LIKE DISVARIANT-VARIANT. "Variant
SELECTION-SCREEN END OF BLOCK B5.
*----
initlialization
*----
INITIALIZATION.
PERFORM F_PRIOR_PERIOD.
*----
*At selection screen
*----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SP_VARI.
PERFORM F_F4_FOR_VARIANT.
AT SELECTION-SCREEN.
Validating selection screen fields
PERFORM F_AT_SELECTION_SCREEN.
*----
Initialization
*----
INITIALIZATION.
GV_REPNAME = SY-REPID.
Initialize ALV Layout variant
PERFORM F_INITIALIZE_VARIANT.
----
EVENT: START-OF-SELECTION
----
START-OF-SELECTION.
IF SP_FX EQ 'X' AND SP_XAUTO EQ 'X'.
PERFORM F_GET_VALUE_BSIS. " get the data from BSIS table
PERFORM F_GET_GL_DESCRIPTION. " Get the GL Description
PERFORM F_GET_XAUTO. "Get the XAUTO from BSEG table
PERFORM F_GET_USNAME. "Get the User Name from BKPF
PERFORM F_GET_GRPCURR. "Get the Group Curr from T000
ELSEIF SP_FX EQ 'X' AND SP_XAUTO EQ ''.
PERFORM F_GET_VALUE_BSIS. " get the data from BSIS table
PERFORM F_GET_GL_DESCRIPTION. " Get the GL Description
PERFORM F_GET_USNAME. "Get the User Name from BKPF
PERFORM F_GET_GRPCURR. "Get the Group Curr from T000
ENDIF.
IF SP_CTA EQ 'X'.
PERFORM F_GET_VALUE_BSIS. " get the data from BSIS table
PERFORM F_GET_GL_DESCRIPTION. " Get the GL Description
PERFORM F_GET_USNAME. "Get the User Name from BKPF
PERFORM F_GET_GRPCURR. "Get the Group Curr from T000
ENDIF.
IF SP_IC_FX EQ 'X'.
PERFORM F_GET_VALUE_BSIS. " get the data from BSIS table
PERFORM F_GET_GL_DESCRIPTION. " Get the GL Description
PERFORM F_GET_USNAME. "Get the User Name from BKPF
PERFORM F_GET_GRPCURR. "Get the Group Curr from T000
ENDIF.
*
END-OF-SELECTION.
IF SP_CTA EQ 'X'.
PERFORM BUILD_FIELDCATALOG_SP_CTA.
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENTS.
PERFORM BUILD_PRINT_PARAMS.
PERFORM F_ALV_DISPLAY.
ELSEIF SP_IC_FX EQ 'X'.
PERFORM BUILD_FIELDCATALOG_ICFX.
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENTS.
PERFORM BUILD_PRINT_PARAMS.
PERFORM F_ALV_DISPLAY.
ELSE.
PERFORM BUILD_FIELDCATALOG_FX.
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENTS.
PERFORM BUILD_PRINT_PARAMS.
PERFORM F_ALV_DISPLAY.
ENDIF.
&----
*& Form f_fx_with_autopost
&----
Retrieve the data from BSIS table and store in GT_FXENTRIES
----
FORM F_GET_VALUE_BSIS.
SELECT HKONT BUKRS MONAT BLART WRBTR WAERS DMBTR
WAERS DMBE2 PRCTR BELNR GJAHR
BUDAT VBUND PPRCT KOSTL PROJK
SGTXT SHKZG MANDT FROM BSIS
INTO CORRESPONDING FIELDS
OF TABLE GT_FXENTRIES
WHERE BUKRS IN SO_BUKRS
AND GJAHR IN SO_GJAHR
AND MONAT = SP_MONAT
AND WAERS IN SP_WAERS
AND BLART IN SP_BLART
AND VBUND IN SP_VBUND
AND HKONT IN SO_HKONT.
*move the values of gt_fxentries to gt_finalfx
LOOP AT GT_FXENTRIES.
MOVE : GT_FXENTRIES TO GT_FINALFX-GT_FXENTRIES.
MOVE : GT_FXENTRIES-HKONT TO GT_FINALFX-HKONT,
GT_FXENTRIES-BUKRS TO GT_FINALFX-BUKRS,
GT_FXENTRIES-MONAT TO GT_FINALFX-MONAT,
GT_FXENTRIES-BLART TO GT_FINALFX-BLART.
IF GT_FXENTRIES-SHKZG EQ 'H'.
GT_FXENTRIES-WRBTR = GT_FXENTRIES-WRBTR * -1.
MOVE GT_FXENTRIES-WRBTR TO GT_FINALFX-WRBTR.
ELSE.
MOVE GT_FXENTRIES-WRBTR TO GT_FINALFX-WRBTR.
ENDIF.
MOVE : GT_FXENTRIES-WAERS TO GT_FINALFX-WAERS.
IF GT_FXENTRIES-SHKZG EQ 'H'.
GT_FXENTRIES-DMBTR = GT_FXENTRIES-DMBTR * -1.
MOVE GT_FXENTRIES-DMBTR TO GT_FINALFX-DMBTR.
ELSE.
MOVE GT_FXENTRIES-DMBTR TO GT_FINALFX-DMBTR.
ENDIF.
MOVE : GT_FXENTRIES-DMBTR TO GT_FINALFX-DMBTR.
IF GT_FXENTRIES-SHKZG EQ 'H'.
GT_FXENTRIES-DMBE2 = GT_FXENTRIES-DMBE2 * -1.
MOVE GT_FXENTRIES-DMBE2 TO GT_FINALFX-DMBE2.
ELSE.
MOVE GT_FXENTRIES-DMBE2 TO GT_FINALFX-DMBE2.
ENDIF.
MOVE: GT_FXENTRIES-PRCTR TO GT_FINALFX-PRCTR,
GT_FXENTRIES-BELNR TO GT_FINALFX-BELNR,
GT_FXENTRIES-GJAHR TO GT_FINALFX-GJAHR,
GT_FXENTRIES-BUDAT TO GT_FINALFX-BUDAT,
GT_FXENTRIES-VBUND TO GT_FINALFX-VBUND,
GT_FXENTRIES-PPRCT TO GT_FINALFX-PPRCT,
GT_FXENTRIES-KOSTL TO GT_FINALFX-KOSTL,
GT_FXENTRIES-PROJK TO GT_FINALFX-PROJK,
GT_FXENTRIES-SGTXT TO GT_FINALFX-SGTXT,
GT_FXENTRIES-MANDT TO GT_FINALFX-MANDT.
APPEND GT_FINALFX.
CLEAR GT_FINALFX.
ENDLOOP.
ENDFORM. "f_fx_with_autopost
&----
*& Form F_GET_GL_DESCRIPTION
&----
Get the GL Account Description
----
FORM F_GET_GL_DESCRIPTION.
*Get the values from skat for gl description
IF GT_FINALFX[] IS NOT INITIAL.
LOOP AT GT_FINALFX.
SELECT SINGLE TXT50 FROM SKAT INTO GT_GLTEXT
WHERE SAKNR = GT_FINALFX-HKONT
AND SPRAS = 'EN'.
MOVE : GT_GLTEXT-TXT50 TO GT_FINALFX-TXT50.
MODIFY GT_FINALFX.
ENDLOOP.
ENDIF.
ENDFORM. "F_GET_GL_DESCRIPTION
&----
*& Form F_GET_XAUTO
&----
Get the XAUTO field
----
FORM F_GET_XAUTO.
*Get the values from bseg for auto posting
IF GT_FINALFX[] IS NOT INITIAL.
LOOP AT GT_FINALFX.
SELECT SINGLE XAUTO FROM BSEG INTO GT_BSEG
WHERE SAKNR = GT_FINALFX-HKONT.
MOVE : GT_BSEG-XAUTO TO GT_FINALFX-XAUTO.
MODIFY GT_FINALFX.
ENDLOOP.
ENDIF.
ENDFORM. "F_GET_XAUTO
&----
*& Form F_GET_USNAME
&----
Get the user name
----
FORM F_GET_USNAME.
*Get the values from bkpf table
IF GT_FINALFX[] IS NOT INITIAL.
LOOP AT GT_FINALFX.
SELECT SINGLE USNAM FROM BKPF INTO GT_DOCHEADER
WHERE BUDAT = GT_FINALFX-BUDAT.
MOVE : GT_DOCHEADER-USNAM TO GT_FINALFX-USNAM.
MODIFY GT_FINALFX.
ENDLOOP.
ENDIF.
ENDFORM. "F_GET_XAUTO
&----
*& Form F_GET_GRPCURR
&----
Get the Group Currency
----
FORM F_GET_GRPCURR.
*Get Grp Currency from T000 table.
IF GT_FINALFX[] IS NOT INITIAL.
LOOP AT GT_FINALFX.
SELECT SINGLE MWAER FROM T000 INTO CORRESPONDING FIELDS OF
GT_GRPCURR WHERE MANDT = SY-MANDT.
MOVE : GT_GRPCURR-MWAER TO GT_FINALFX-MWAER.
MODIFY GT_FINALFX.
ENDLOOP.
ENDIF.
LOOP AT GT_FINALFX WHERE MANDT = SY-MANDT.
SELECT SINGLE WAERS FROM T001 INTO CORRESPONDING FIELDS OF
GT_LOCALCURR.
MOVE : GT_LOCALCURR-WAERS1 TO GT_FINALFX-WAERS1.
MODIFY GT_FINALFX.
ENDLOOP.
ENDFORM. "F_GET_GRPCURR
&----
*& Form f_prior_period
&----
To get the Prior period in the selection screen for period
----
FORM F_PRIOR_PERIOD.
CALL FUNCTION 'CCM_GO_BACK_MONTHS'
EXPORTING
CURRDATE = SY-DATUM
BACKMONTHS = '1'
IMPORTING
NEWDATE = DATUM.
SP_MONAT = DATUM+4(2).
ENDFORM. "f_prior_period
&----
*& Form build_fieldcatalog
&----
To Build the catalog
----
FORM BUILD_FIELDCATALOG_FX.
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'G/L Account '.
FIELDCATALOG-COL_POS = 0.
FIELDCATALOG-OUTPUTLEN = 10.
FIELDCATALOG-EMPHASIZE = 'X'.
FIELDCATALOG-KEY = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TXT50'.
FIELDCATALOG-SELTEXT_M = 'GL Description'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUKRS'.
FIELDCATALOG-SELTEXT_M = 'Co. Code'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'MONAT'.
FIELDCATALOG-SELTEXT_M = 'Period'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BLART'.
FIELDCATALOG-SELTEXT_M = 'Doc. Type'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'XAUTO'.
FIELDCATALOG-SELTEXT_M = 'Auto Post'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'WRBTR'.
FIELDCATALOG-SELTEXT_M = 'Amt in DC'.
FIELDCATALOG-COL_POS = 7.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'WAERS'.
FIELDCATALOG-SELTEXT_M = 'Doc. Curr.'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Amt in LC'.
FIELDCATALOG-COL_POS = 9.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'WAERS'.
FIELDCATALOG-SELTEXT_M = 'Lcl Curr'.
FIELDCATALOG-COL_POS = 10.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBE2'.
FIELDCATALOG-SELTEXT_M = 'Amt in GC'.
FIELDCATALOG-COL_POS = 11.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'MWAER'.
FIELDCATALOG-SELTEXT_M = 'Grp Curr.'.
FIELDCATALOG-COL_POS = 12.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'PRCTR'.
FIELDCATALOG-SELTEXT_M = 'Profit Center'.
FIELDCATALOG-COL_POS = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BELNR'.
FIELDCATALOG-SELTEXT_M = 'Doc. Num'.
FIELDCATALOG-COL_POS = 14.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GJAHR'.
FIELDCATALOG-SELTEXT_M = 'Year'.
FIELDCATALOG-COL_POS = 15.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USNAM'.
FIELDCATALOG-SELTEXT_M = 'User ID'.
FIELDCATALOG-COL_POS = 16.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUDAT'.
FIELDCATALOG-SELTEXT_M = 'Posting Date'.
FIELDCATALOG-COL_POS = 17.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'VBUND'.
FIELDCATALOG-SELTEXT_M = 'Tr. Prt'.
FIELDCATALOG-COL_POS = 18.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'PPRCT'.
FIELDCATALOG-SELTEXT_M = 'TPPC'.
FIELDCATALOG-COL_POS = 19.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KOSTL'.
FIELDCATALOG-SELTEXT_M = 'Cost Ctr'.
FIELDCATALOG-COL_POS = 20.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'PROJK'.
FIELDCATALOG-SELTEXT_M = 'WBS Element'.
FIELDCATALOG-COL_POS = 21.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'Line Item Text'.
FIELDCATALOG-COL_POS = 22.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. "build_fieldcatalog
&----
*& Form BUILD_LAYOUT
&----
Build the layout
----
FORM BUILD_LAYOUT.
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-TOTALS_TEXT = 'TOTALS'(201).
ENDFORM. "BUILD_LAYOUT
&----
*& Form F_ALV_DISPLAY
&----
Display the result in ALV format
----
FORM F_ALV_DISPLAY.
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_GRID_TITLE = SY-TITLE
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
IT_EVENTS = GT_EVENTS " GT_EVENTS to LS_EVENT
IS_PRINT = GD_PRNTPARAMS
I_SAVE = 'A'
TABLES
T_OUTTAB = GT_FINALFX
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. "F_ALV_DISPLAY
&----
*& Form build_events
&----
text
----
FORM BUILD_EVENTS.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = GT_EVENTS[].
READ TABLE GT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE 'END_OF_PAGE' TO LS_EVENT-FORM.
APPEND LS_EVENT TO GT_EVENTS.
ENDIF.
READ TABLE GT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_LIST
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE 'END_OF_LIST' TO LS_EVENT-FORM.
APPEND LS_EVENT TO GT_EVENTS.
ENDIF.
ENDFORM. "build_events
&----
*& Form BUILD_PRINT_PARAMS
&----
text
----
FORM BUILD_PRINT_PARAMS.
GD_PRNTPARAMS-RESERVE_LINES = '3'. "Lines reserved for footer
GD_PRNTPARAMS-NO_COVERPAGE = 'X'.
ENDFORM. "BUILD_PRINT_PARAMS
&----
*& Form top-of-page
&----
Print the Report information
----
FORM TOP-OF-PAGE.
Title
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'GL REPORT'.
APPEND WA_HEADER TO T_HEADER.
CLEAR WA_HEADER.
Date
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'Date: '.
CONCATENATE SY-DATUM+6(2) '.'
SY-DATUM+4(2) '.'
SY-DATUM(4) INTO WA_HEADER-INFO. "todays date
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.
Total No. of Records Selected
DESCRIBE TABLE GT_FINALFX LINES LD_LINES.
LD_LINESC = LD_LINES.
CONCATENATE 'Total No. of Records Selected: ' LD_LINESC
INTO T_LINE SEPARATED BY SPACE.
WA_HEADER-TYP = 'A'.
WA_HEADER-INFO = T_LINE.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER, T_LINE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER.
i_logo = 'Z_LOGO'.
ENDFORM. "top-of-page
&----
*& Form user_command
&----
When user clicks on the Document number it will direct the
User to the FB03 transaction
----
-->R_UCOMM text
-->RS_SELFIELDtext
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
Check function code
CASE R_UCOMM.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF RS_SELFIELD-FIELDNAME = 'HKONT'.
Read data table, using index of row user clicked on
READ TABLE GT_FINALFX INTO WA_FINALFX INDEX RS_SELFIELD-TABINDEX
.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BLN' FIELD WA_FINALFX-BELNR.
SET PARAMETER ID 'BUK' FIELD WA_FINALFX-BUKRS.
SET PARAMETER ID 'GJR' FIELD WA_FINALFX-GJAHR.
Execute transaction FB03, and skip initial data entry screen
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM. "user_command
&----
*& Form build_fieldcatalog
&----
To Build the catalog
----
FORM BUILD_FIELDCATALOG_SP_CTA.
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'G/L Account '.
FIELDCATALOG-COL_POS = 0.
FIELDCATALOG-OUTPUTLEN = 10.
FIELDCATALOG-EMPHASIZE = 'X'.
FIELDCATALOG-KEY = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TXT50'.
FIELDCATALOG-SELTEXT_M = 'GL Description'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUKRS'.
FIELDCATALOG-SELTEXT_M = 'Co. Code'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'MONAT'.
FIELDCATALOG-SELTEXT_M = 'Period'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'WAERS'.
FIELDCATALOG-SELTEXT_M = 'Doc. Curr'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BLART'.
FIELDCATALOG-SELTEXT_M = 'Doc. Type'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Amt in LC'.
FIELDCATALOG-COL_POS = 7.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBE2'.
FIELDCATALOG-SELTEXT_M = 'Amt in GC'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'MWAER'.
FIELDCATALOG-SELTEXT_M = 'Grp. Currency'.
FIELDCATALOG-COL_POS = 9.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'PRCTR'.
FIELDCATALOG-SELTEXT_M = 'Profit Center'.
FIELDCATALOG-COL_POS = 10.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'Line Item Text'.
FIELDCATALOG-COL_POS = 11.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BELNR'.
FIELDCATALOG-SELTEXT_M = 'Doc. No'.
FIELDCATALOG-COL_POS = 12.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GJAHR'.
FIELDCATALOG-SELTEXT_M = 'Year'.
FIELDCATALOG-COL_POS = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USNAM'.
FIELDCATALOG-SELTEXT_M = 'User ID'.
FIELDCATALOG-COL_POS = 14.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUDAT'.
FIELDCATALOG-SELTEXT_M = 'Posting Date'.
FIELDCATALOG-COL_POS = 16.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'VBUND'.
FIELDCATALOG-SELTEXT_M = 'Tr. Prt'.
FIELDCATALOG-COL_POS = 17.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'PPRCT'.
FIELDCATALOG-SELTEXT_M = 'TPPC'.
FIELDCATALOG-COL_POS = 18.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. "build_fieldcatalog
&----
*& Form END_OF_PAGE
&----
FORM END_OF_PAGE.
DATA: LISTWIDTH TYPE I,
LD_PAGEPOS(10) TYPE C,
LD_PAGE(10) TYPE C.
WRITE: SY-ULINE(50).
SKIP.
WRITE:/40 'Page:', SY-PAGNO .
ENDFORM. "END_OF_PAGE
&----
*& Form END_OF_LIST
&----
FORM END_OF_LIST.
DATA: LISTWIDTH TYPE I,
LD_PAGEPOS(10) TYPE C,
LD_PAGE(10) TYPE C.
SKIP.
WRITE:/40 'Page:', SY-PAGNO .
ENDFORM. "END_OF_LIST
&----
*& Form f_f4_for_variant
&----
text : On-F4 event for the variant
----
FORM F_F4_FOR_VARIANT .
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = GV_VARIANT
I_SAVE = GV_SAVE
IMPORTING
E_EXIT = GV_EXIT
ES_VARIANT = GV_X_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF GV_EXIT = SPACE.
SP_VARI = GV_X_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. " f_f4_for_variant
&----
*& Form f_at_selection_screen
&----
text: at-selection-screen event for the variant
----
FORM F_AT_SELECTION_SCREEN .
ALV Layout variant
IF NOT SP_VARI IS INITIAL.
MOVE GV_VARIANT TO GV_X_VARIANT.
MOVE SP_VARI TO GV_X_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = GV_SAVE
CHANGING
CS_VARIANT = GV_X_VARIANT.
GV_VARIANT = GV_X_VARIANT.
ELSE.
PERFORM F_INITIALIZE_VARIANT.
ENDIF.
ENDFORM. " f_at_selection_screen
&----
*& Form f_initialize_variant
&----
text: initialize the variant
----
FORM F_INITIALIZE_VARIANT .
CLEAR GV_VARIANT.
GV_SAVE = 'A'.
GV_VARIANT-REPORT = GV_REPNAME.
GV_X_VARIANT = GV_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = GV_SAVE
CHANGING
CS_VARIANT = GV_X_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
SP_VARI = GV_X_VARIANT-VARIANT.
ENDIF.
ENDFORM. " f_initialize_variant
&----
*& Form BUILD_FIELDCATALOG_ICFX
&----
text
----
FORM BUILD_FIELDCATALOG_ICFX.
FIELDCATALOG-FIELDNAME = 'BUKRS'.
FIELDCATALOG-SELTEXT_M = 'Co. Code '.
FIELDCATALOG-COL_POS = 0.
FIELDCATALOG-OUTPUTLEN = 10.
FIELDCATALOG-EMPHASIZE = 'X'.
FIELDCATALOG-KEY = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
*
FIELDCATALOG-FIELDNAME = 'HKONT'.
FIELDCATALOG-SELTEXT_M = 'GL Acct'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
*
*
FIELDCATALOG-FIELDNAME = 'BELNR'.
FIELDCATALOG-SELTEXT_M = 'Doc.No'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
*
*
FIELDCATALOG-FIELDNAME = 'BUDAT'.
FIELDCATALOG-SELTEXT_M = 'Posting Date'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
*
*
FIELDCATALOG-FIELDNAME = 'PRCTR'.
FIELDCATALOG-SELTEXT_M = 'Profit Center'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
FIELDCATALOG-FIELDNAME = 'BLART'.
FIELDCATALOG-SELTEXT_M = 'Doc. Type'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
FIELDCATALOG-FIELDNAME = 'WAERS'.
FIELDCATALOG-SELTEXT_M = 'Doc. Curr'.
FIELDCATALOG-COL_POS = 7.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
***need to change the field
FIELDCATALOG-FIELDNAME = 'DMBE2'.
FIELDCATALOG-SELTEXT_M = 'MEFX Rate'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
**
FIELDCATALOG-FIELDNAME = 'WRBTR'.
FIELDCATALOG-SELTEXT_M = 'Amt in DC'.
FIELDCATALOG-COL_POS = 9.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
FIELDCATALOG-FIELDNAME = 'DMBE2'.
FIELDCATALOG-SELTEXT_M = 'Amt in USD'.
FIELDCATALOG-COL_POS = 10.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
***Need to change
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'Valuated USD'.
FIELDCATALOG-COL_POS = 11.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
**
**Need to change
FIELDCATALOG-FIELDNAME = 'ERD Posting'.
FIELDCATALOG-SELTEXT_M = 'Doc. No'.
FIELDCATALOG-COL_POS = 12.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
**
FIELDCATALOG-FIELDNAME = 'VBUND'.
FIELDCATALOG-SELTEXT_M = 'Tr. Prt'.
FIELDCATALOG-COL_POS = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
FIELDCATALOG-FIELDNAME = 'XBLNR'.
FIELDCATALOG-SELTEXT_M = 'Reference'.
FIELDCATALOG-COL_POS = 14.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
*
FIELDCATALOG-FIELDNAME = 'WAERS'.
FIELDCATALOG-SELTEXT_M = 'Lcl Curr'.
FIELDCATALOG-COL_POS = 16.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Amt in LC'.
FIELDCATALOG-COL_POS = 17.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
*
FIELDCATALOG-FIELDNAME = 'PPRCT'.
FIELDCATALOG-SELTEXT_M = 'TPPC'.
FIELDCATALOG-COL_POS = 18.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. "BUILD_FIELDCATALOG_ICFX
Thanks,
Pavan.
Message was edited by: Pavan Panduru
‎2006 Jul 13 8:54 PM
Please see this FORM in your program. Please add the line of code in<b> BOLD</b> to this FORM. It will solve your problem.
form top-of-page.
<b>clear t_header. Refresh t_header.</b>
* Title
wa_header-typ = 'H'.
wa_header-info = 'GL REPORT'.
append wa_header to t_header.
clear wa_header.
* Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
concatenate sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) into wa_header-info. ""todays date
append wa_header to t_header.
clear: wa_header.
* Total No. of Records Selected
describe table gt_finalfx lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
* i_logo = 'Z_LOGO'.
endform. "top-of-page
Please make sure to mark your post as solved and award points accordingly. Thanks.
Regards,
Rich Heilman
‎2006 Jul 13 8:54 PM
Please see this FORM in your program. Please add the line of code in<b> BOLD</b> to this FORM. It will solve your problem.
form top-of-page.
<b>clear t_header. Refresh t_header.</b>
* Title
wa_header-typ = 'H'.
wa_header-info = 'GL REPORT'.
append wa_header to t_header.
clear wa_header.
* Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
concatenate sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) into wa_header-info. ""todays date
append wa_header to t_header.
clear: wa_header.
* Total No. of Records Selected
describe table gt_finalfx lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
* i_logo = 'Z_LOGO'.
endform. "top-of-page
Please make sure to mark your post as solved and award points accordingly. Thanks.
Regards,
Rich Heilman
‎2006 Jul 14 3:29 PM
Thanks,
Its working.
And please let me know how to download to excel.
Thanks,
Pavan.
‎2006 Jul 14 3:38 PM
‎2006 Jul 15 5:49 PM
Hi,
Let me know how to download ALV report to excel sheet.
Thanks,
Pavan.
‎2006 Jul 15 5:58 PM
Hi,
Follow the below procedures to download data to excel.
Normal ALV :
Click on the local file option and select spreadsheet option from the radio button list and click on ok , file save window will open , select the correct directory path and give the file name , then ALV contents will be downloaded into Excel sheet.
In OO ALV :
click on the Export button in the ALV toolbar ->click on the spreadsheet , then information message window will open , select ok button , then you will get three options , click on the table option and press ok , data will be exported to Excel sheet , then save the excel data in specified directory.
<b>download ALV report to excel sheet .</b>
<b>---have you got the solution to this ?</b>
Regards
Appana
*Don't forget to reward points if helpful
Message was edited by: L Appana