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
Hi,
Let me know how to download ALV report to excel sheet.
Thanks,
Pavan.
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
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |