2008 Feb 03 11:48 AM
hi every body,
i have a fico report.
i have to get the output same as the transaction FS10N.
the problem is debit and credit is not tallying.
dosome body have this fico report?
can anybody assist me where i can find the fico reports.
thanks.
raju.
hi every body,
i have a fico report.
i have to get the output same as the transaction FS10N.
the problem is debit and credit is not tallying.
dosome body have this fico report?
can anybody assist me where i can find the fico reports.
thanks.
raju.
2008 Feb 03 11:55 AM
Hi,
Pls refer the report for Vendor Performance report.
REPORT YMS_VENDORPERFORMANCE.
TABLES : BSIK, BAPIFVDEXP_VZZBEPP.
DATA : T_BSIK LIKE BSIK OCCURS 0 WITH HEADER LINE,
T_BSAK LIKE BSAK OCCURS 0 WITH HEADER LINE,
DAYS LIKE BAPIFVDEXP_VZZBEPP-NUM4.
DATA : BEGIN OF T_LFA1 OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
ADRNR LIKE LFA1-ADRNR,
END OF T_LFA1.
DATA : BEGIN OF T_ADRC OCCURS 0,
ADRNR LIKE LFA1-ADRNR,
STREET LIKE ADRC-STREET,
CITY1 LIKE ADRC-CITY1,
END OF T_ADRC.
DATA : BEGIN OF T_BSEG OCCURS 0,
ZFBDT LIKE BSEG-ZFBDT,
KOART LIKE BSEG-KOART,
KOSTL LIKE BSEG-KOSTL,
PROJK LIKE BSEG-PROJK,
END OF T_BSEG.
DATA : BEGIN OF T_PRPS OCCURS 0,
POSID LIKE PRPS-POSID,
OBJNR LIKE PRPS-OBJNR,
END OF T_PRPS.
DATA : T_KOSTL LIKE BSEG-KOSTL,
T_PROJK LIKE BSEG-PROJK,
TEXT(15).
DATA : BEGIN OF T_OUTPUT OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
STREET LIKE ADRC-STREET,
CITY1 LIKE ADRC-CITY1,
OBJNR LIKE PRPS-OBJNR,
POSID LIKE PRPS-POSID,
KOSTL LIKE BSIK-KOSTL, " COST CENTER
UMSKZ LIKE BSIK-UMSKZ,
BELNR LIKE BSIK-BELNR,
BUKRS LIKE BSIK-BUKRS,
GJAHR LIKE BSIK-GJAHR,
wrbtr like bsik-wrbtr,
DMBTR LIKE BSIK-WRBTR,
HKONT LIKE BSIK-HKONT,
DIF1 LIKE BSIK-WRBTR,
DIF2 LIKE BSIK-WRBTR,
DIF3 LIKE BSIK-WRBTR,
DIF4 LIKE BSIK-WRBTR,
DIF5 LIKE BSIK-WRBTR,
DAYS LIKE BAPIFVDEXP_VZZBEPP-NUM4,
END OF T_OUTPUT.
Alv data declaration
TYPE-POOLS : SLIS.
DATA :ALV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
ALV_FIELDCAT_LINE LIKE LINE OF ALV_FIELDCAT,
ALV_SORT TYPE SLIS_T_SORTINFO_ALV,
ALV_SORT_LINE LIKE LINE OF ALV_SORT,
ALV_LAYOUT TYPE SLIS_LAYOUT_ALV,
G_REPID LIKE SY-REPID VALUE SY-REPID,
ALV_STATUS_SET TYPE SLIS_FORMNAME VALUE 'ALV_STATUS_SET',
ALV_USER_COMM TYPE SLIS_FORMNAME VALUE 'ALV_USER_COMM',
GRID_TITLE TYPE LVC_TITLE,
ALV_FIELDCAT_ACTY TYPE SLIS_T_FIELDCAT_ALV,
G_SAVE,
GS_VARIANT LIKE DISVARIANT,
G_EXIT_CAUSED_BY_CALLER TYPE C,
GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER.
DATA: ALV_FIELDCAT_LINE_ACTY LIKE LINE OF ALV_FIELDCAT_ACTY,
ALV_LAYOUT_ACTY TYPE SLIS_LAYOUT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
MESSAGE TYPE STRING,
R_UCOMM LIKE SY-UCOMM,
RS_SELFIELD TYPE SLIS_SELFIELD.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_BUKRS FOR BSIK-BUKRS,
S_GJAHR FOR BSIK-GJAHR,
S_LIFNR FOR BSIK-LIFNR,
S_UMSKZ FOR BSIK-UMSKZ.
PARAMETERS : P_AUGDT LIKE BSIK-AUGDT OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS : S_DATE1 FOR BAPIFVDEXP_VZZBEPP-NUM4 NO-EXTENSION OBLIGATORY
DEFAULT 1 TO 30,
S_DATE2 FOR BAPIFVDEXP_VZZBEPP-NUM4 NO-EXTENSION OBLIGATORY
DEFAULT 30 TO 60,
S_DATE3 FOR BAPIFVDEXP_VZZBEPP-NUM4 NO-EXTENSION OBLIGATORY
DEFAULT 60 TO 90,
S_DATE4 FOR BAPIFVDEXP_VZZBEPP-NUM4 NO-EXTENSION OBLIGATORY
DEFAULT 90 TO 120,
S_DATE5 FOR BAPIFVDEXP_VZZBEPP-NUM4 NO-EXTENSION OBLIGATORY
DEFAULT 120 TO 150.
SELECTION-SCREEN END OF BLOCK B2.
INITIALIZATION.
START-OF-SELECTION.
PERFORM FETCH_DATA.
PERFORM DISPLAY.
&----
*& Form fetch_data
&----
text
-
--> p1 text
<-- p2 text
-
FORM FETCH_DATA .
SELECT *
INTO TABLE T_BSIK
FROM BSIK
WHERE BUKRS IN S_BUKRS
AND GJAHR IN S_GJAHR
AND LIFNR IN S_LIFNR
AND UMSKZ IN S_UMSKZ
AND UMSKZ NOT IN ('F','P','L','G').
AND zfbdt <= P_augdt.
IF SY-SUBRC = 0.
SELECT *
INTO TABLE T_BSAK
FROM BSAK
WHERE BUKRS IN S_BUKRS
AND GJAHR IN S_GJAHR
AND LIFNR IN S_LIFNR
AND UMSKZ IN S_UMSKZ
AND UMSKZ NOT IN ('F','P','L','G')
AND AUGDT > P_AUGDT.
LOOP AT T_BSAK.
MOVE-CORRESPONDING T_BSAK TO T_BSIK.
APPEND T_BSIK.
ENDLOOP.
LOOP AT T_BSIK.
if t_bsik-zfbdt is initial.
t_bsik-zfbdt = t_bsik-bldat.
modify t_bsik transporting zfbdt.
endif.
IF T_BSIK-BUDAT > P_AUGDT.
DELETE T_BSIK.
ENDIF.
if t_bsik-umskz > P_augdt.
ENDLOOP.
SELECT LIFNR
NAME1
ADRNR
INTO TABLE T_LFA1
FROM LFA1
FOR ALL ENTRIES IN T_BSIK
WHERE LIFNR = T_BSIK-LIFNR.
IF SY-SUBRC = 0.
SELECT ADDRNUMBER AS ADRNR
STREET
CITY1
INTO TABLE T_ADRC
FROM ADRC
FOR ALL ENTRIES IN T_LFA1
WHERE ADDRNUMBER = T_LFA1-ADRNR.
ENDIF.
ENDIF.
LOOP AT T_BSIK.
IF T_BSIK-SHKZG = 'S'.
t_bsik-WRBTR = t_bsik-WRBTR * -1.
T_BSIK-DMBTR = T_BSIK-DMBTR * -1.
ENDIF.
REFRESH T_BSEG.
CLEAR : T_KOSTL, T_PROJK, T_OUTPUT.
IF T_BSIK-REBZG IS NOT INITIAL.
SELECT ZFBDT
KOART
KOSTL
PROJK
INTO TABLE T_BSEG "t_bsik-ZFBDT
FROM BSEG
WHERE BUKRS = T_BSIK-BUKRS
AND BELNR = T_BSIK-REBZG
AND GJAHR = T_BSIK-REBZJ
AND KOART IN ('K','S').
LOOP AT T_BSEG.
IF T_BSEG-KOART = 'K' AND T_BSEG-ZFBDT IS NOT INITIAL.
T_BSIK-BUDAT = T_BSEG-ZFBDT.
MODIFY T_BSIK TRANSPORTING BUDAT.
ELSEIF T_BSEG-KOART = 'S'.
T_KOSTL = T_BSEG-KOSTL.
T_PROJK = T_BSEG-PROJK.
ENDIF.
ENDLOOP.
ELSE.
SELECT SINGLE KOSTL PROJK
INTO (T_KOSTL, T_PROJK)
FROM BSEG
WHERE BUKRS = T_BSIK-BUKRS
AND BELNR = T_BSIK-BELNR
AND GJAHR = T_BSIK-GJAHR
AND KOART = 'S'.
ENDIF.
MOVE-CORRESPONDING T_BSIK TO T_OUTPUT.
T_OUTPUT-KOSTL = T_KOSTL.
CONCATENATE 'PR' T_PROJK INTO T_OUTPUT-OBJNR.
days = P_augdt - t_bsik-ZFBDT.
DAYS = P_AUGDT - T_BSIK-BUDAT.
READ TABLE T_LFA1 WITH KEY LIFNR = T_OUTPUT-LIFNR.
IF SY-SUBRC = 0.
T_OUTPUT-NAME1 = T_LFA1-NAME1.
READ TABLE T_ADRC WITH KEY ADRNR = T_LFA1-ADRNR.
IF SY-SUBRC = 0.
T_OUTPUT-STREET = T_ADRC-STREET.
T_OUTPUT-CITY1 = T_ADRC-CITY1.
ENDIF.
ENDIF.
T_OUTPUT-DAYS = DAYS.
IF DAYS >= S_DATE1-LOW AND DAYS < S_DATE1-HIGH.
t_output-dif1 = t_bsik-wrbtr. " days.
T_OUTPUT-DIF1 = T_BSIK-DMBTR. " days.
ELSEIF DAYS >= S_DATE2-LOW AND DAYS < S_DATE2-HIGH.
t_output-dif2 = t_bsik-wrbtr. "days.
T_OUTPUT-DIF2 = T_BSIK-DMBTR. " days.
ELSEIF DAYS >= S_DATE3-LOW AND DAYS < S_DATE3-HIGH.
t_output-dif3 = t_bsik-wrbtr. "days.
T_OUTPUT-DIF3 = T_BSIK-DMBTR. " days.
ELSEIF DAYS >= S_DATE4-LOW AND DAYS < S_DATE4-HIGH.
t_output-dif4 = t_bsik-wrbtr. "days.
T_OUTPUT-DIF4 = T_BSIK-DMBTR. " days.
ELSEIF DAYS >= S_DATE5-LOW AND DAYS < S_DATE5-HIGH.
t_output-dif5 = t_bsik-wrbtr. "days.
T_OUTPUT-DIF5 = T_BSIK-DMBTR. " days.
ENDIF.
APPEND T_OUTPUT.
ENDLOOP.
IF T_OUTPUT[] IS NOT INITIAL.
SELECT POSID
OBJNR
INTO TABLE T_PRPS
FROM PRPS
FOR ALL ENTRIES IN T_OUTPUT
WHERE OBJNR = T_OUTPUT-OBJNR.
ENDIF.
LOOP AT T_OUTPUT.
READ TABLE T_PRPS WITH KEY OBJNR = T_OUTPUT-OBJNR.
IF SY-SUBRC = 0.
T_OUTPUT-POSID = T_PRPS-POSID.
MODIFY T_OUTPUT TRANSPORTING POSID.
ENDIF.
ENDLOOP.
ENDFORM. " fetch_data
&----
*& Form display
&----
text
-
--> p1 text
<-- p2 text
-
FORM DISPLAY .
PERFORM BUILD_ALV_LAYOUT.
PERFORM S_SORT_BUILD USING ALV_SORT[].
PERFORM BUILD_FIELD_CATALOGS.
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
SORT t_output BY .
G_SAVE = 'A'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = ALV_STATUS_SET
I_CALLBACK_USER_COMMAND = ALV_USER_COMM
I_GRID_TITLE = GRID_TITLE
I_SAVE = G_SAVE
IS_VARIANT = GS_VARIANT
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = ALV_FIELDCAT[]
IT_EVENTS = GT_EVENTS[]
IT_SORT = ALV_SORT[]
IMPORTING
E_EXIT_CAUSED_BY_CALLER = G_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = GS_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = T_OUTPUT.
PERFORM ALV_USER_COMM USING R_UCOMM
RS_SELFIELD.
IF SY-SUBRC = 0.
IF G_EXIT_CAUSED_BY_CALLER = 'X'.
ELSE.
IF GS_EXIT_CAUSED_BY_USER-BACK = 'X'. " F3
ELSE.
IF GS_EXIT_CAUSED_BY_USER-EXIT = 'X'. " F15
ELSE.
IF GS_EXIT_CAUSED_BY_USER-CANCEL = 'X'. " F12
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
*" Fatal error calling ALV
ENDIF.
ENDFORM. " display
&----
*& Form build_alv_layout
&----
FORM BUILD_ALV_LAYOUT.
CLEAR ALV_LAYOUT.
ALV_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "always display full columns
alv_layout-box_fieldname = 'CHK'.
alv_layout-box_tabname = 'T_OUTPUT'.
ALV_LAYOUT-INFO_FIELDNAME = 'COLOR'. "color a line
ALV_LAYOUT-DETAIL_POPUP = 'X'.
ALV_LAYOUT-ZEBRA = 'X'. "Zebra output
ENDFORM. " build_alv_layout
-
FORM s_sort_build *
-
........ *
-
--> LT_SORT *
-
FORM S_SORT_BUILD USING LT_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR LS_SORT.
LS_SORT-SPOS = 1.
LS_SORT-FIELDNAME = 'LIFNR'.
LS_SORT-UP = 'X'.
LS_SORT-GROUP = 'UL'.
LS_SORT-SUBTOT = 'X'.
APPEND LS_SORT TO LT_SORT.
CLEAR LS_SORT.
LS_SORT-SPOS = 2.
LS_SORT-FIELDNAME = 'BELNR'.
LS_SORT-UP = 'X'.
LS_SORT-SUBTOT = 'X'.
LS_SORT-GROUP = 'UL'.
APPEND LS_SORT TO LT_SORT.
CLEAR LS_SORT.
ENDFORM. "s_sort_build
&----
*& Form eventtab_build
&----
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
FIELD-SYMBOLS: <LT_EVENTS> LIKE LINE OF LT_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
Define TOP_OF_PAGE event
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
ASSIGNING <LT_EVENTS>.
IF SY-SUBRC EQ 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO <LT_EVENTS>-FORM.
ENDIF.
ENDFORM. " eventtab_build
&----
*& Form TOP_OF_PAGE
&----
FORM TOP_OF_PAGE.
REFRESH GT_LIST_TOP_OF_PAGE.
CLEAR GT_LIST_TOP_OF_PAGE.
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE.
Output GSPC logo on report header
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE
I_LOGO = 'GSPC_LOGO'.
ENDFORM. "top_of_page
&----
*& Form COMMENT_BUILD
&----
Build comments at top of page
-
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GS_LINE TYPE SLIS_LISTHEADER.
CLEAR GS_LINE.
GS_LINE-TYP = 'H'.
GS_LINE-INFO = 'Vendor Ageing'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'Report ID:'.
GS_LINE-INFO = SY-REPID.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'User:'.
GS_LINE-INFO = SY-UNAME.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'Date:'.
WRITE SY-DATUM TO GS_LINE-INFO MM/DD/YYYY.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'Time:'.
WRITE SY-UZEIT TO GS_LINE-INFO USING EDIT MASK '__:__:__'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = ''.
WRITE ' '.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
Output data from selection screen
ENDFORM. "comment_build
-
*Build ALV Summary field catalog
-
&----
*& Form build_field_catalogs
&----
FORM BUILD_FIELD_CATALOGS.
CLEAR: ALV_FIELDCAT.
REFRESH: ALV_FIELDCAT.
Vendor Number
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'Vendor Number'.
alv_fieldcat_line-hotspot = 'X'.
ALV_FIELDCAT_LINE-FIELDNAME = 'LIFNR'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
Vendor Name
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'Vendor Name'.
ALV_FIELDCAT_LINE-FIELDNAME = 'NAME1'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
Vendor Address
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'Vendor Address'.
ALV_FIELDCAT_LINE-FIELDNAME = 'STREET'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
City
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'City'.
ALV_FIELDCAT_LINE-FIELDNAME = 'CITY1'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
Object number #
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'object #'.
ALV_FIELDCAT_LINE-FIELDNAME = 'OBJNR'.
ALV_FIELDCAT_LINE-NO_OUT = 'X'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
WBS Element
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'WBS Element'.
ALV_FIELDCAT_LINE-FIELDNAME = 'POSID'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
Cost Center
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'Cost Center'.
ALV_FIELDCAT_LINE-FIELDNAME = 'KOSTL'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
GL Indicator
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'GL Indicator'.
ALV_FIELDCAT_LINE-FIELDNAME = 'UMSKZ'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
General Ledger Account
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'General Ledger Account'.
ALV_FIELDCAT_LINE-FIELDNAME = 'HKONT'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
Document No.
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-HOTSPOT = 'X'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'Document No.'.
ALV_FIELDCAT_LINE-FIELDNAME = 'BELNR'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
Amount
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'Amount'.
alv_fieldcat_line-fieldname = 'WRBTR'.
ALV_FIELDCAT_LINE-FIELDNAME = 'DMBTR'.
ALV_FIELDCAT_LINE-NO_OUT = 'X'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
dif1
CLEAR TEXT.
READ TABLE S_DATE1 INDEX 1.
CONCATENATE 'DAYS ' S_DATE1-LOW '-' S_DATE1-HIGH INTO TEXT.
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = TEXT.
ALV_FIELDCAT_LINE-FIELDNAME = 'DIF1'.
ALV_FIELDCAT_LINE-DO_SUM = 'X'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
dif2
CLEAR TEXT.
READ TABLE S_DATE2 INDEX 1.
CONCATENATE 'DAYS ' S_DATE2-LOW '-' S_DATE2-HIGH INTO TEXT.
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = TEXT.
alv_fieldcat_line-no_out = 'X'.
ALV_FIELDCAT_LINE-FIELDNAME = 'DIF2'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
dif3
CLEAR TEXT.
READ TABLE S_DATE3 INDEX 1.
CONCATENATE 'DAYS ' S_DATE3-LOW '-' S_DATE3-HIGH INTO TEXT.
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = TEXT.
ALV_FIELDCAT_LINE-FIELDNAME = 'DIF3'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
CLEAR ALV_FIELDCAT_LINE.
dif4
CLEAR TEXT.
READ TABLE S_DATE4 INDEX 1.
CONCATENATE 'DAYS ' S_DATE4-LOW '-' S_DATE4-HIGH INTO TEXT.
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = TEXT.
ALV_FIELDCAT_LINE-FIELDNAME = 'DIF4'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
dif5
CLEAR TEXT.
READ TABLE S_DATE5 INDEX 1.
CONCATENATE 'DAYS ' S_DATE5-LOW '-' S_DATE5-HIGH INTO TEXT.
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = TEXT.
ALV_FIELDCAT_LINE-FIELDNAME = 'DIF5'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
Days
ALV_FIELDCAT_LINE-TABNAME = 'T_OUTPUT'.
ALV_FIELDCAT_LINE-SELTEXT_L = 'Days'.
ALV_FIELDCAT_LINE-FIELDNAME = 'DAYS'.
alv_fieldcat_line-no_out = 'X'.
APPEND ALV_FIELDCAT_LINE TO ALV_FIELDCAT.
ENDFORM. " build_field_catalogs
&----
*& Form ALV_USER_COMM
&----
Process User Status
-
FORM ALV_USER_COMM USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
*Determine the main component beign viewed
READ TABLE T_OUTPUT INDEX RS_SELFIELD-TABINDEX.
CASE R_UCOMM.
WHEN '&IC1'. " single / double click
CASE RS_SELFIELD-FIELDNAME.
Display FI document
WHEN 'BELNR'.
SET PARAMETER ID 'BLN' FIELD T_OUTPUT-BELNR.
SET PARAMETER ID 'BUK' FIELD T_OUTPUT-BUKRS.
SET PARAMETER ID 'GJR' FIELD T_OUTPUT-GJAHR.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN 'FMB58'.
SET PARAMETER ID 'MAT' FIELD prtab-matnr.
CALL TRANSACTION 'MB58' AND SKIP FIRST SCREEN.
WHEN 'CHK'.
MOVE 'X' TO prtab-chk.
MODIFY prtab INDEX rs_selfield-tabindex.
ENDCASE.
ENDFORM. "alv_user_comm
&----
*& Form ALV_STATUS_SET
&----
Set the status for the ALV screen
-
FORM ALV_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD' EXCLUDING RT_EXTAB.
ENDFORM. "alv_status_set
Below are the important tables:
BVOR
(Intercompany posting procedures)
BSAD
(Accounting: Secondary index for
customers (cleared items)
BSID
(Accounting: Secondary index for
customers)
PAYR
(Payment transfer medium file)
BKPF
(Accounting document header)
BSEG
(Accounting document segment)
BSIP
(Index for vendor validation of double
documents)
BSIK
(Accounting: Secondary index for
vendors)BSAK
(Accounting: Secondary index for
vendors (cleared items))
BSAS
(Accounting: Secondary index for G/L
accounts (cleared items))
BSIS
REGARDS,
GAURAV J.
2008 Mar 14 4:32 AM
H para.
this is body of report.
Report RFGLBALANCE message-id FDBL.
...tables.............................................................
tables: SKC1A,
SKC1C,
RF42B,
SSCRFIELDS.
...selections.........................................................
select-options: SO_SAKNR for RF42B-SAKNR memory id SAK
matchcode object SAKO
visible length 10,
SO_BUKRS for SKC1C-BUKRS memory id BUK.
parameters: GP_GJAHR like SKC1C-GJAHR memory id GJR.
select-options: SO_GSBER for RF42B-GSBER memory id GSB.
parameters: GP_CURTP like RFPDO2-ALLGCRTP.
selection-screen function key 1.
...selection screen for processing of worklists.......................
selection-screen begin of screen 2000.
selection-screen begin of block ACCOUNT with frame title TEXT-010.
parameters: GP_WLSAK like RF42B-IDNTS.
select-options: SO_WLSAK for SKC1A-SAKNR memory id SAK.
selection-screen end of block ACCOUNT.
selection-screen begin of block COMPANY with frame title TEXT-011.
parameters: GP_WLBUK like RF42B-IDNTB.
select-options: SO_WLBUK for SKC1A-BUKRS memory id BUK.
selection-screen end of block COMPANY.
parameters: GP_GJHR2 type GJAHR memory id GJR.
select-options: SO_GSBR2 for SKC1C-GSBER.
parameters: GP_CRTP2 like RFPDO2-ALLGCRTP.
selection-screen function key 2.
selection-screen end of screen 2000.
...internal data......................................................
constants: GC_LDB type TRDIR-LDBNAME value 'SDF',
GC_KOART type KOART value 'S'.
data: LS_PARAMS like RSPARAMS.
data: begin of LS_SAKNR,
SIGN(1) type C,
OPTION(2) type C,
LOW type SAKNR,
HIGH type SAKNR,
end of LS_SAKNR.
...internal data common for all account types.........................
include RFBALANCEDATA.
...initialization.....................................................
initialization.
...initialize data table..............................................
refresh LT_BALANCE_DATA.
...remove user command for batch and print jobs.......................
perform CHANGE_STATUS.
...set text for additional function keys..............................
SSCRFIELDS-FUNCTXT_01 = TEXT-005.
SSCRFIELDS-FUNCTXT_02 = TEXT-006.
...check selections...................................................
at selection-screen.
...process user command...............................................
case SSCRFIELDS-UCOMM.
when 'ONLI'.
...get local range for g/l account....................................
if not GP_WLSAK is initial.
perform GET_RANGE_FROM_WORKLIST tables GT_RANGE
using GP_WLSAK
'SAKNR'.
refresh SO_WLSAK.
loop at GT_RANGE.
move-corresponding GT_RANGE to SO_WLSAK.
append SO_WLSAK.
endloop.
endif.
refresh LR_SAKNR.
append lines of SO_WLSAK to LR_SAKNR.
loop at SO_SAKNR.
LS_SAKNR-SIGN = SO_SAKNR-SIGN.
LS_SAKNR-OPTION = SO_SAKNR-OPTION.
if SO_SAKNR-LOW cn '0123456789'.
LS_SAKNR-LOW = SO_SAKNR-LOW.
else.
LS_SAKNR-LOW = SO_SAKNR-LOW+6.
endif.
if SO_SAKNR-HIGH cn '0123456789'.
LS_SAKNR-HIGH = SO_SAKNR-HIGH.
else.
LS_SAKNR-HIGH = SO_SAKNR-HIGH+6.
endif.
append LS_SAKNR to LR_SAKNR.
endloop.
...check, if at least one account has been specified..................
if LR_SAKNR[] is initial.
clear SSCRFIELDS-UCOMM.
refresh LR_SAKNR.
message E002.
endif.
...get local range for company code...................................
if not GP_WLBUK is initial.
perform GET_RANGE_FROM_WORKLIST tables GT_RANGE
using GP_WLBUK
'BUKRS'.
refresh SO_WLBUK.
loop at GT_RANGE.
move-corresponding GT_RANGE to SO_WLBUK.
append SO_WLBUK.
endloop.
endif.
refresh LR_BUKRS.
append lines of SO_WLBUK to LR_BUKRS.
append lines of SO_BUKRS to LR_BUKRS.
if LR_BUKRS[] is initial.
refresh LR_SAKNR.
refresh LR_BUKRS.
clear SSCRFIELDS-UCOMM.
message E007.
endif.
...get local range for fiscal year....................................
LS_GJAHR-SIGN = 'I'.
LS_GJAHR-OPTION = 'EQ'.
if GP_GJAHR is initial.
LS_GJAHR-LOW = GP_GJHR2.
else.
LS_GJAHR-LOW = GP_GJAHR.
endif.
clear LS_GJAHR-HIGH.
if not LS_GJAHR-LOW is initial.
append LS_GJAHR to LR_GJAHR.
else.
clear SSCRFIELDS-UCOMM.
refresh LR_SAKNR.
refresh LR_BUKRS.
message E008.
endif.
...local ranges for business areas...................................
append lines of SO_GSBER to LR_GSBER.
append lines of SO_GSBR2 to LR_GSBER.
...check existence of given g/l accounts.............................
loop at LR_SAKNR transporting no fields
where OPTION ne 'EQ' or
SIGN ne 'I'.
exit.
endloop.
if SY-SUBRC = 0.
select SAKNR from SKB1 into table LT_SAKNR
where SAKNR in LR_SAKNR
and BUKRS in LR_BUKRS.
else. " worklist
select SAKNR from SKB1 into table LT_SAKNR
for all entries in LR_SAKNR
where SAKNR eq LR_SAKNR-LOW
and BUKRS in LR_BUKRS.
endif.
if SY-SUBRC ne 0.
clear SSCRFIELDS-UCOMM.
refresh LR_BUKRS.
refresh LR_SAKNR.
refresh LR_GSBER.
refresh LR_GJAHR.
message E030(MSITEM).
endif.
clear LT_SAKNR.
refresh LT_SAKNR.
...check authorizations.............................................
perform CHECK_AUTHORITY_GROUPS
using LR_BUKRS
LR_SAKNR
LR_KUNNR
LR_LIFNR
GC_KOART.
...switch on worklists..............................................
when 'FC01'.
leave to transaction 'FS10NA'.
...switch off worklists.............................................
when 'FC02'.
leave to transaction 'FS10N'.
endcase.
...start-of-selection.................................................
start-of-selection.
...get valid currency type............................................
if GP_CRTP2 is initial.
LD_CURTP = GP_CURTP.
else.
LD_CURTP = GP_CRTP2.
endif.
if LD_CURTP is initial or LD_CURTP eq '00'.
LD_CURTP = '10'.
endif.
...check, if all company codes given use the same fiscal year.........
perform CHECK_FISCAL_YEARS using LR_BUKRS
LD_RC.
if LD_RC ne 0.
message I021.
return.
endif.
...check, if display currency is the same for all company codes.....
...selected.........................................................
perform CHECK_CURTP tables LR_BUKRS
using LD_CURTP
LD_RC.
if LD_RC ne 0.
message I022.
return.
endif.
...build table with selection criteria..............................
perform BUILD_COSEL tables LT_COSEL
using LR_BUKRS
LR_KUNNR
LR_LIFNR
LR_SAKNR
LR_GJAHR
LR_GSBER
SPACE
SPACE
SPACE
GP_WLSAK
GP_WLBUK
LD_CURTP.
...build table with selections for LDB................................
perform BUILD_RSPARAMS tables LT_COSEL
LT_PARAMS
using GC_LDB.
LS_PARAMS-SELNAME = 'SD_CURTP'.
LS_PARAMS-SIGN = 'I'.
LS_PARAMS-OPTION = 'EQ'.
LS_PARAMS-LOW = LD_CURTP.
clear LS_PARAMS-HIGH.
append LS_PARAMS to LT_PARAMS.
...build table with callbacks.........................................
perform BUILD_CALLBACK tables LT_CALLBACKS.
...get transaction data...............................................
call function 'LDB_PROCESS'
exporting
LDBNAME = GC_LDB
tables
CALLBACK = LT_CALLBACKS
SELECTIONS = LT_PARAMS
exceptions
LDB_SELECTIONS_NOT_ACCEPTED = 4
others = 1.
if SY-SUBRC eq 4.
message id SY-MSGID type SY-MSGTY number SY-MSGNO
with SY-MSGV1 SY-MSGV2.
endif.
end-of-selection.
...check, if data has been fount at all.............................
if LT_BALANCE_DATA is initial.
message I020 with GP_GJAHR.
return.
endif.
...display data.....................................................
call function 'FDBL_BALANCES_DISPLAY'
exporting
PT_COSEL = LT_COSEL
changing
PT_BALANCE_DATA = LT_BALANCE_DATA.
include RFBALANCE.
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |