03-03-2008 6:44 AM
Hi Folks,
Client has given us one requirement to introduce summation levels in an ALV Report. Currently summation levels are in settings and further enabling Define Breakdown we can define different summation levels for this.
I am not able to find the specific parameter for this. This is currently enabled in transaction FBL5N.
So please help me locating that particular parameter to enable this.
Thanks and regards.
Siddarth
03-03-2008 7:46 AM
Hi,
REPORT YMS_ALVSUBTOTAL.
TYPE-POOLS: slis.
DATA: BEGIN OF it_output OCCURS 0,
var1(8) TYPE n,
var2(10),
var3 TYPE I,
END OF it_output.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
t_fieldcat TYPE slis_fieldcat_alv,
it_sort TYPE slis_t_sortinfo_alv,
t_sort TYPE slis_sortinfo_alv,
v_repid LIKE sy-repid,
ilayout type slis_layout_alv.
INITIALIZATION.
v_repid = sy-repid.
START-OF-SELECTION.
PERFORM get_data.
PERFORM sort_fields.
PERFORM fill_fieldcat.
PERFORM list_display.
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_data.
it_output-var1 = 1000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
it_output-key = 'X'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'siddhu'.
it_output-var3 = '20000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'chinni'.
it_output-var3 = '100000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 2000.
it_output-var2 = 'chicchu'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 2000.
it_output-var2 = 'candy'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 4000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
ENDFORM. " GET_DATA
&----
*& Form fill_fieldcat
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_fieldcat.
PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',
'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',
'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.
ENDFORM. " fill_fieldcat
&----
*& Form fill_fields
&----
text
----
-->P_0146 text
-->P_0147 text
-->P_0148 text
-->P_0149 text
----
FORM fill_fields USING value(tabname) TYPE slis_tabname
value(fieldname) TYPE slis_fieldname
value(seltext_m) LIKE dd03p-scrtext_m
value(do_sum) TYPE c.
t_fieldcat-tabname = tabname.
t_fieldcat-fieldname = fieldname.
t_fieldcat-seltext_m = seltext_m.
IF do_sum = 'X'.
t_fieldcat-datatype = 'CURR'.
ENDIF.
t_fieldcat-do_sum = do_sum.
APPEND t_fieldcat TO it_fieldcat.
CLEAR t_fieldcat.
ENDFORM. " fill_fields
&----
*& Form list_display
&----
text
----
--> p1 text
<-- p2 text
----
FORM list_display.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = it_fieldcat
it_sort = it_sort[]
TABLES
t_outtab = it_output
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. " list_display
&----
*& Form sort_fields
&----
text
----
--> p1 text
<-- p2 text
----
FORM sort_fields.
t_sort-fieldname = 'VAR1'.
t_sort-tabname = 'IT_OUTPUT'.
t_sort-spos = 1.
t_sort-up = 'X'.
t_sort-subtot = 'X'.
APPEND t_sort TO it_sort.
CLEAR t_sort.
t_sort-fieldname = 'VAR3'.
t_sort-tabname = 'IT_OUTPUT'.
t_sort-spos = 2.
t_sort-up = 'X'.
APPEND t_sort TO it_sort.
CLEAR t_sort.
ENDFORM. " sort_fields
Thanks,
Sankar M
03-03-2008 7:46 AM
Hi,
REPORT YMS_ALVSUBTOTAL.
TYPE-POOLS: slis.
DATA: BEGIN OF it_output OCCURS 0,
var1(8) TYPE n,
var2(10),
var3 TYPE I,
END OF it_output.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
t_fieldcat TYPE slis_fieldcat_alv,
it_sort TYPE slis_t_sortinfo_alv,
t_sort TYPE slis_sortinfo_alv,
v_repid LIKE sy-repid,
ilayout type slis_layout_alv.
INITIALIZATION.
v_repid = sy-repid.
START-OF-SELECTION.
PERFORM get_data.
PERFORM sort_fields.
PERFORM fill_fieldcat.
PERFORM list_display.
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_data.
it_output-var1 = 1000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
it_output-key = 'X'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'siddhu'.
it_output-var3 = '20000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'chinni'.
it_output-var3 = '100000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 2000.
it_output-var2 = 'chicchu'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 2000.
it_output-var2 = 'candy'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 4000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
ENDFORM. " GET_DATA
&----
*& Form fill_fieldcat
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_fieldcat.
PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',
'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',
'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.
ENDFORM. " fill_fieldcat
&----
*& Form fill_fields
&----
text
----
-->P_0146 text
-->P_0147 text
-->P_0148 text
-->P_0149 text
----
FORM fill_fields USING value(tabname) TYPE slis_tabname
value(fieldname) TYPE slis_fieldname
value(seltext_m) LIKE dd03p-scrtext_m
value(do_sum) TYPE c.
t_fieldcat-tabname = tabname.
t_fieldcat-fieldname = fieldname.
t_fieldcat-seltext_m = seltext_m.
IF do_sum = 'X'.
t_fieldcat-datatype = 'CURR'.
ENDIF.
t_fieldcat-do_sum = do_sum.
APPEND t_fieldcat TO it_fieldcat.
CLEAR t_fieldcat.
ENDFORM. " fill_fields
&----
*& Form list_display
&----
text
----
--> p1 text
<-- p2 text
----
FORM list_display.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = it_fieldcat
it_sort = it_sort[]
TABLES
t_outtab = it_output
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. " list_display
&----
*& Form sort_fields
&----
text
----
--> p1 text
<-- p2 text
----
FORM sort_fields.
t_sort-fieldname = 'VAR1'.
t_sort-tabname = 'IT_OUTPUT'.
t_sort-spos = 1.
t_sort-up = 'X'.
t_sort-subtot = 'X'.
APPEND t_sort TO it_sort.
CLEAR t_sort.
t_sort-fieldname = 'VAR3'.
t_sort-tabname = 'IT_OUTPUT'.
t_sort-spos = 2.
t_sort-up = 'X'.
APPEND t_sort TO it_sort.
CLEAR t_sort.
ENDFORM. " sort_fields
Thanks,
Sankar M
03-03-2008 8:53 AM
Hi Sankar,
Thanks for your help. your program is running perfectly but I want to know which parameter you set for this. Because I am not able to figure out which parameter I have to set in my program.
Thanks and regards,
Siddarth.
03-03-2008 9:18 AM
Hi Siddarth,
Try this....
REPORT ZTW_MONTHLY_EXTRACT
message-id zbdc
no standard page heading.
************************************************************************
Title : For Taiwan Monthly Extract
Author :
Date : 19/04/2005
Transport/Correction Id :
Clarify case ID :
Application : FI
Program Type :
Frequency :
Purpose :
Comments :
Request No :
************************************************************************
CHANGES LOG *
************************************************************************
Author :
Date : 30/6/2005
Request No : CONK931209
Purpose : Added Carried forward balance
************************************************************************
*----
TABLES DELCARATIONS
*----
tables: SKAT, "G/L Account Master Record (Chart of Accounts: Desc)
T001. "Company Codes
*----
ALV TTPE DELCARATIONS
*----
type-pools: slis.
*Type Declarations for Field Catalog
data : i_fldcat_head type slis_t_fieldcat_alv,
wa_fldcat_head type slis_fieldcat_alv.
*Type Declarations for ALV Events
data : i_events type slis_t_event,
wa_event like line of i_events.
*Type Declarations for Layout Design
data : wa_layout type slis_layout_alv.
*Type Declarations for Sorting Fields
data: it_sort type slis_sortinfo_alv occurs 0 with header line.
*Type Declarations for Displaying Images on Grid
data : i_comment type slis_t_listheader,
wa_comment type slis_listheader.
*Type Declarations for Grouping fields
data : wa_group type slis_sp_group_alv,
i_group type slis_t_sp_group_alv.
*----
DATA DELCARATIONS
*----
data: v_flag, "Status Flag
v_repid like sy-repid, "Program Name
v_period(5) type c,
FILE_LEN type i,
V_CLOSE_BAL LIKE GLT0-HSL09,
V_CREDIT(21),
V_F_CREDIT(21) TYPE C,
V_F_MOMENT(21) TYPE C,
V_F_BALANCE(21) TYPE C.
*----
CONSTANTS DELCARATIONS
*----
constants: c_x type c value 'X'.
*----
INTERNAL TABLES DELCARATIONS
*----
ranges: r_period for SKAT-SAKNR.
*--Internal table to hold the required data
data: begin of it_final_in occurs 0,
SAKNR LIKE SKAT-SAKNR,
TXT50 LIKE SKAT-TXT50,
DRCRK LIKE GLT0-DRCRK,
HSL09 LIKE GLT0-HSL09,
MOMENT LIKE GLT0-HSL09,
BALANCE LIKE GLT0-HSL09,
end of it_final_in.
*--Internal table to hold the final data
data: begin of it_final occurs 0,
SAKNR LIKE SKAT-SAKNR,
TXT50 LIKE SKAT-TXT50,
DEBIT LIKE GLT0-HSL09,
CREDIT LIKE GLT0-HSL09,
MOMENT LIKE GLT0-HSL09,
BALANCE LIKE GLT0-HSL09,
end of it_final.
*--Internal table to hold the final data for output
data: begin of it_final_out occurs 0,
SAKNR LIKE SKAT-SAKNR,
TXT50 LIKE SKAT-TXT50,
DEBIT LIKE GLT0-HSL09,
CREDIT(21) TYPE C,
MOMENT(21) TYPE C,
BALANCE(21) TYPE C,
end of it_final_out.
*--Internal table to hold the previous months closing balance
data: begin of it_final_prev occurs 0,
RACCT LIKE GLT0-RACCT,
DRCRK LIKE GLT0-DRCRK,
HSL01 LIKE GLT0-HSL09,
HSL02 LIKE GLT0-HSL09,
HSL03 LIKE GLT0-HSL09,
HSL04 LIKE GLT0-HSL09,
HSL05 LIKE GLT0-HSL09,
HSL06 LIKE GLT0-HSL09,
HSL07 LIKE GLT0-HSL09,
HSL08 LIKE GLT0-HSL09,
HSL09 LIKE GLT0-HSL09,
HSL10 LIKE GLT0-HSL09,
HSL11 LIKE GLT0-HSL09,
HSL12 LIKE GLT0-HSL09,
HSL13 LIKE GLT0-HSL09,
HSL14 LIKE GLT0-HSL09,
HSL15 LIKE GLT0-HSL09,
HSL16 LIKE GLT0-HSL09,
MOMENT_DB LIKE GLT0-HSL09,
MOMENT_CR LIKE GLT0-HSL09,
BALANCE LIKE GLT0-HSL09,
DEBIT LIKE GLT0-HSL09,
CREDIT LIKE GLT0-HSL09,
CLOSE_BAL LIKE GLT0-HSL09,
end of it_final_prev.
*--Work area to hold the carried forward balance amount
DATA: ACCOUNT_BALANCE LIKE BAPI1028_3.
*----
INITIALIZATION
*----
v_repid = sy-repid.
*--Periods
r_period-low = 'HSL01'. APPEND R_PERIOD.
r_period-low = 'HSL02'. APPEND R_PERIOD.
r_period-low = 'HSL03'. APPEND R_PERIOD.
r_period-low = 'HSL04'. APPEND R_PERIOD.
r_period-low = 'HSL05'. APPEND R_PERIOD.
r_period-low = 'HSL06'. APPEND R_PERIOD.
r_period-low = 'HSL07'. APPEND R_PERIOD.
r_period-low = 'HSL08'. APPEND R_PERIOD.
r_period-low = 'HSL09'. APPEND R_PERIOD.
r_period-low = 'HSL010'. APPEND R_PERIOD.
r_period-low = 'HSL011'. APPEND R_PERIOD.
r_period-low = 'HSL012'. APPEND R_PERIOD.
r_period-low = 'HSL013'. APPEND R_PERIOD.
r_period-low = 'HSL014'. APPEND R_PERIOD.
r_period-low = 'HSL015'. APPEND R_PERIOD.
r_period-low = 'HSL016'. APPEND R_PERIOD.
*----
SELECTION SCREEN
*----
selection-screen: begin of block b1 with frame title text-h01.
select-options : s_SAKNR for skat-SAKNR. "GL Account No
parameters : p_bukrs like t001-bukrs DEFAULT '0379' MODIF ID M1.
"Company Code
parameters : p_rpmax(2) type n obligatory. "Period
parameters : p_year like BSAK-GJAHR DEFAULT SY-DATUM(4).
selection-screen: skip.
parameters : p_down as checkbox default 'X'.
selection-screen: end of block b1.
*----
SELECTION SCREEN EVENTS
*----
at selection-screen on S_SAKNR.
*--Validating GL/Acc.
if not s_saknr[] is initial.
perform validate_s_saknr.
endif.
at selection-screen OUTPUT.
*--locking the company code field
perform lock_filed.
*----
START OF SELECTION
*----
start-of-selection.
perform get_data.
perform get_fldcat.
perform get_events.
perform generate_layout.
perform do_sort.
perform do_group.
************************************************************************
END-OF-SELECTION *
************************************************************************
end-of-selection.
*--Formatting the data
PERFORM FORMAT_DATA.
if v_flag = c_x.
perform download_data.
else.
message i004 with 'No Data Found to Display'.
endif.
*--Generating the Report Output
perform display_report.
&----
*& Form validate_s_saknr
&----
Validating GL Account No
----
FORM validate_s_saknr.
select saknr up to 1 rows
into (skat-saknr)
from skat
where saknr in s_saknr.
endselect.
if sy-subrc ne 0.
message e004 with 'Invalid Range of GL Account'
s_saknr-low 'To' s_saknr-high.
endif.
ENDFORM. " validate_s_saknr
&----
*& Form get_data
&----
Data Extraction
----
FORM get_data.
concatenate 'HSL' p_rpmax into v_period.
loop at r_period.
if r_period-low <> v_period.
delete r_period index sy-tabix.
endif.
endloop.
clear r_period.
read table r_period index 1.
*--Getting data from database
PERFORM SELECT_DATA.
IF SY-SUBRC = 0.
V_FLAG = 'X'.
perform segregate_data.
ELSE.
V_FLAG = SPACE.
ENDIF.
ENDFORM. " get_data
&----
*& Form display_report
&----
Generating the report output
----
FORM display_report.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = v_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = i_fldcat_head
IT_EXCLUDING =
it_special_groups = i_group
it_sort = it_sort[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = i_events
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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = it_final_out
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. " display_report
&----
*& Form segregate_data
&----
Segregating debit and credit values into separte fields
----
FORM segregate_data.
*--segregating Credits & Debits and Calculating the Moment
LOOP AT IT_FINAL_IN.
IT_FINAL-SAKNR = IT_FINAL_IN-SAKNR.
IT_FINAL-TXT50 = IT_FINAL_IN-TXT50.
IF IT_FINAL_IN-DRCRK = 'S'.
IT_FINAL-DEBIT = IT_FINAL_IN-HSL09.
IT_FINAL-CREDIT = 0.
ELSEIF IT_FINAL_IN-DRCRK = 'H'.
IT_FINAL-CREDIT = IT_FINAL_IN-HSL09.
IT_FINAL-DEBIT = 0.
ENDIF.
IT_FINAL-MOMENT = IT_FINAL-DEBIT + IT_FINAL-CREDIT.
COLLECT IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
*--Deleting the values with zero
DELETE IT_FINAL_PREV WHERE HSL01 = 0
AND HSL02 = 0
AND HSL03 = 0
AND HSL04 = 0
AND HSL05 = 0
AND HSL06 = 0
AND HSL07 = 0
AND HSL08 = 0
AND HSL09 = 0
AND HSL10 = 0
AND HSL11 = 0
AND HSL12 = 0
AND HSL13 = 0
AND HSL14 = 0
AND HSL15 = 0
AND HSL16 = 0.
*--Calculating the sum of credits & Debits
PERFORM CALC_BAL.
*--Calculating the closing balance account wise
SORT IT_FINAL_PREV BY RACCT.
LOOP AT IT_FINAL_PREV.
AT END OF RACCT.
READ TABLE IT_FINAL_PREV INDEX SY-TABIX.
SUM.
V_CLOSE_BAL = IT_FINAL_PREV-MOMENT_DB + IT_FINAL_PREV-MOMENT_CR.
MOVE V_CLOSE_BAL TO IT_FINAL_PREV-CLOSE_BAL.
MODIFY IT_FINAL_PREV INDEX SY-TABIX.
ENDAT.
ENDLOOP.
*--deleting the records where closing bal is = 0
DELETE IT_FINAL_PREV WHERE CLOSE_BAL = 0.
*--moving the closing balance to it_final based on saknr
LOOP AT IT_FINAL.
READ TABLE IT_FINAL_PREV WITH KEY RACCT = IT_FINAL-SAKNR.
IF SY-SUBRC EQ 0.
IF IT_FINAL_PREV-CLOSE_BAL <> 0.
*--moving the carried forward balance to it_final-balance
IT_FINAL-BALANCE = IT_FINAL_PREV-CLOSE_BAL.
MODIFY IT_FINAL INDEX SY-TABIX.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT IT_FINAL.
*--Getting the Carried forward balance
CALL FUNCTION 'BAPI_GL_GETGLACCCURRENTBALANCE'
EXPORTING
COMPANYCODE = P_BUKRS
GLACCT = IT_FINAL-SAKNR
CURRENCYTYPE = '10'
IMPORTING
ACCOUNT_BALANCE = ACCOUNT_BALANCE
RETURN =
.
IF SY-SUBRC = 0.
*--moving the carried forward balance amount to it_final-balance
IT_FINAL-BALANCE = ACCOUNT_BALANCE-BALANCE.
MODIFY IT_FINAL.
ENDIF.
CLEAR: ACCOUNT_BALANCE,IT_FINAL.
ENDLOOP.
SORT IT_FINAL BY SAKNR.
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING SAKNR DEBIT CREDIT
MOMENT.
ENDFORM. " segregate_data
&----
*& Form SELECT_DATA
&----
Getting data from database
----
FORM SELECT_DATA.
IF R_PERIOD-LOW = 'HSL01'.
PERFORM EXTRACT_DATA_HSL01.
PERFORM CALC_CLS_BAL_HSL01.
ENDIF.
IF R_PERIOD-LOW = 'HSL02'.
PERFORM EXTRACT_DATA_HSL02.
PERFORM CALC_CLS_BAL_HSL02.
ENDIF.
IF R_PERIOD-LOW = 'HSL03'.
PERFORM EXTRACT_DATA_HSL03.
PERFORM CALC_CLS_BAL_HSL03.
ENDIF.
IF R_PERIOD-LOW = 'HSL04'.
PERFORM EXTRACT_DATA_HSL04.
PERFORM CALC_CLS_BAL_HSL04.
ENDIF.
IF R_PERIOD-LOW = 'HSL05'.
PERFORM EXTRACT_DATA_HSL05.
PERFORM CALC_CLS_BAL_HSL05.
ENDIF.
IF R_PERIOD-LOW = 'HSL06'.
PERFORM EXTRACT_DATA_HSL06.
PERFORM CALC_CLS_BAL_HSL06.
ENDIF.
IF R_PERIOD-LOW = 'HSL07'.
PERFORM EXTRACT_DATA_HSL07.
PERFORM CALC_CLS_BAL_HSL07.
ENDIF.
IF R_PERIOD-LOW = 'HSL08'.
PERFORM EXTRACT_DATA_HSL08.
PERFORM CALC_CLS_BAL_HSL08.
ENDIF.
IF R_PERIOD-LOW = 'HSL09'.
PERFORM EXTRACT_DATA_HSL09.
PERFORM CALC_CLS_BAL_HSL09.
ENDIF.
IF R_PERIOD-LOW = 'HSL10'.
PERFORM EXTRACT_DATA_HSL10.
PERFORM CALC_CLS_BAL_HSL10.
ENDIF.
IF R_PERIOD-LOW = 'HSL11'.
PERFORM EXTRACT_DATA_HSL011.
PERFORM CALC_CLS_BAL_HSL011.
ENDIF.
IF R_PERIOD-LOW = 'HSL12'.
PERFORM EXTRACT_DATA_HSL012.
PERFORM CALC_CLS_BAL_HSL012.
ENDIF.
IF R_PERIOD-LOW = 'HSL13'.
PERFORM EXTRACT_DATA_HSL013.
PERFORM CALC_CLS_BAL_HSL013.
ENDIF.
IF R_PERIOD-LOW = 'HSL14'.
PERFORM EXTRACT_DATA_HSL014.
PERFORM CALC_CLS_BAL_HSL014.
ENDIF.
IF R_PERIOD-LOW = 'HSL15'.
PERFORM EXTRACT_DATA_HSL015.
PERFORM CALC_CLS_BAL_HSL015.
ENDIF.
IF R_PERIOD-LOW = 'HSL16'.
PERFORM EXTRACT_DATA_HSL016.
PERFORM CALC_CLS_BAL_HSL016.
ENDIF.
ENDFORM. " SELECT_DATA
&----
*& Form EXTRACT_DATA_HSL01
&----
text
----
FORM EXTRACT_DATA_HSL01.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL01
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL01
&----
*& Form EXTRACT_DATA_HSL02
&----
text
----
FORM EXTRACT_DATA_HSL02.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL02
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL02
&----
*& Form EXTRACT_DATA_HSL03
&----
text
----
FORM EXTRACT_DATA_HSL03.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL03
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL03
&----
*& Form EXTRACT_DATA_HSL04
&----
text
----
FORM EXTRACT_DATA_HSL04.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL04
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL04
&----
*& Form EXTRACT_DATA_HSL05
&----
text
----
FORM EXTRACT_DATA_HSL05.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL05
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL05
&----
*& Form EXTRACT_DATA_HSL06
&----
text
----
FORM EXTRACT_DATA_HSL06.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL06
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL06
&----
*& Form EXTRACT_DATA_HSL07
&----
text
----
FORM EXTRACT_DATA_HSL07.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL07
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL07
&----
*& Form EXTRACT_DATA_HSL08
&----
text
----
FORM EXTRACT_DATA_HSL08.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL08
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL08
&----
*& Form EXTRACT_DATA_HSL09
&----
text
----
FORM EXTRACT_DATA_HSL09.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL09
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL09
&----
*& Form EXTRACT_DATA_HSL10
&----
text
----
FORM EXTRACT_DATA_HSL10.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL10
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL10
&----
*& Form EXTRACT_DATA_HSL011
&----
text
----
FORM EXTRACT_DATA_HSL011.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL11
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL011
&----
*& Form EXTRACT_DATA_HSL012
&----
text
----
FORM EXTRACT_DATA_HSL012.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL12
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL012
&----
*& Form EXTRACT_DATA_HSL013
&----
text
----
FORM EXTRACT_DATA_HSL013.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL13
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL013
&----
*& Form EXTRACT_DATA_HSL014
&----
text
----
FORM EXTRACT_DATA_HSL014.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL14
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL014
&----
*& Form EXTRACT_DATA_HSL015
&----
Getting data for HSL015
----
FORM EXTRACT_DATA_HSL015.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL15
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL015
&----
*& Form EXTRACT_DATA_HSL016
&----
Getting data for HSL016
----
FORM EXTRACT_DATA_HSL016.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL16
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL016
&----
*& Form get_fldcat
&----
Generating Field catalog
----
FORM get_fldcat.
*--Account Number
WA_FLDCAT_HEAD-FIELDNAME = 'SAKNR'.
WA_FLDCAT_HEAD-COL_POS = '1'.
WA_FLDCAT_HEAD-JUST = 'L'.
WA_FLDCAT_HEAD-OUTPUTLEN = '15'.
WA_FLDCAT_HEAD-SELTEXT_M = 'G/L Account'.
WA_FLDCAT_HEAD-REF_TABNAME = ' '.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Account Desc
WA_FLDCAT_HEAD-FIELDNAME = 'TXT50'.
WA_FLDCAT_HEAD-COL_POS = '2'.
WA_FLDCAT_HEAD-JUST = 'L'.
WA_FLDCAT_HEAD-OUTPUTLEN = '52'.
WA_FLDCAT_HEAD-SELTEXT_M = 'G/L Account Description'.
WA_FLDCAT_HEAD-REF_TABNAME = ' '.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Debit
WA_FLDCAT_HEAD-FIELDNAME = 'DEBIT'.
WA_FLDCAT_HEAD-COL_POS = '3'.
WA_FLDCAT_HEAD-JUST = 'R'.
WA_FLDCAT_HEAD-OUTPUTLEN = '20'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Debit'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Credit
WA_FLDCAT_HEAD-FIELDNAME = 'CREDIT'.
WA_FLDCAT_HEAD-COL_POS = '4'.
WA_FLDCAT_HEAD-JUST = 'R'.
WA_FLDCAT_HEAD-OUTPUTLEN = '20'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Credit'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Balance
WA_FLDCAT_HEAD-FIELDNAME = 'MOMENT'.
WA_FLDCAT_HEAD-COL_POS = '5'.
WA_FLDCAT_HEAD-JUST = 'R'.
WA_FLDCAT_HEAD-OUTPUTLEN = '20'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Balance'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Account Balance to date(Closing Balance)
*--carried forward balance
WA_FLDCAT_HEAD-FIELDNAME = 'BALANCE'.
WA_FLDCAT_HEAD-COL_POS = '6'.
WA_FLDCAT_HEAD-JUST = 'R'.
WA_FLDCAT_HEAD-OUTPUTLEN = '17'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Balance to Date'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
ENDFORM. " get_fldcat
&----
*& Form get_events
&----
text
----
FORM get_events.
call function 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
importing
et_events = i_events
exceptions
list_type_wrong = 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.
if not i_events[] is initial.
read table i_events into wa_event with key name = 'TOP_OF_PAGE'.
wa_event-form = 'GENERATE_USERCOMMAND'.
modify i_events from wa_event index sy-tabix.
read table i_events into wa_event with key name = 'END_OF_LIST'.
wa_event-form = 'GENERATE_USERCOMMAND_FOOTER'.
modify i_events from wa_event index sy-tabix.
endif.
ENDFORM. " get_events
&----
*& Form GENERATE_USERCOMMAND
&----
Displaying Header-Text and Logo on Grid
----
form generate_usercommand .
clear i_comment[].
wa_comment-typ = 'H'.
wa_comment-info = 'Taiwan Extract Report'.
append wa_comment to i_comment.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_comment
i_logo = 'ENJOYSAP_LOGO'.
I_END_OF_LIST_GRID = 'X'
.
endform. " GENERATE_USERCOMMAND
&----
*& Form GENERATE_USERCOMMAND_FOOTER
&----
Displaying Footer-Text on Grid
----
form generate_usercommand_footer.
clear i_comment[].
clear wa_comment.
wa_comment-typ = 'S'.
wa_comment-key = 'GE-Betz'.
append wa_comment to i_comment.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_comment
I_LOGO = ''
i_end_of_list_grid = 'X'.
endform. " GENERATE_USERCOMMAND_FOOTER
&----
*& Form generate_layout
&----
Generating ALV Layout
----
FORM generate_layout.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "OPTIMIZING FIELD WIDTH
wa_layout-zebra = 'X'. "PUTTING ZEBRA COLORS
ENDFORM. " generate_layout
&----
*& Form do_sort
&----
Sorting Data
----
FORM do_sort.
it_sort-fieldname = 'SAKNR'.
it_sort-tabname = 'IT_FINAL'.
it_sort-up = 'X'.
append it_sort.
ENDFORM. " do_sort
&----
*& Form do_group
&----
Grouping data
----
FORM do_group.
clear i_group.
wa_group-sp_group = 'A'.
wa_group-text = 'SAKNR'.
append wa_group to i_group.
ENDFORM. " do_group
&----
*& Form download_data
&----
downloading data to Flat file
----
FORM download_data.
if p_down = 'X'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'C:\TAIWAN_EXTRACT.XLS'
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = 'X'
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
IMPORTING
FILELENGTH = FILE_LEN
TABLES
DATA_TAB = IT_FINAL_OUT
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
CASE SY-SUBRC.
WHEN '1'.
MESSAGE I004 WITH 'Error Writing File'.
WHEN '5'.
MESSAGE I004 WITH 'No Authorization to download the data into File'.
WHEN '15'.
MESSAGE I004 WITH 'ACCESS DENIED'.
WHEN '19'.
MESSAGE I004 WITH 'FILE NOT FOUND'.
WHEN '0'.
MESSAGE I004 WITH FILE_LEN 'bytes Downloaded to'
'C:\TAIWAN_EXTRACT.XLS'.
ENDCASE.
endif.
ENDFORM. " download_data
&----
*& Form CALC_CLS_BAL_HSL01
&----
text
----
FORM CALC_CLS_BAL_HSL01.
SELECT RACCT
DRCRK
HSL01
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL01
&----
*& Form CALC_CLS_BAL_HSL02
&----
text
----
FORM CALC_CLS_BAL_HSL02.
SELECT RACCT
DRCRK
HSL01
HSL02
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL02
&----
*& Form CALC_CLS_BAL_HSL03
&----
text
----
FORM CALC_CLS_BAL_HSL03.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL03
&----
*& Form CALC_CLS_BAL_HSL04
&----
text
----
FORM CALC_CLS_BAL_HSL04.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL04
&----
*& Form CALC_CLS_BAL_HSL05
&----
text
----
FORM CALC_CLS_BAL_HSL05.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL05
&----
*& Form CALC_CLS_BAL_HSL06
&----
text
----
FORM CALC_CLS_BAL_HSL06.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL06
&----
*& Form CALC_CLS_BAL_HSL07
&----
text
----
FORM CALC_CLS_BAL_HSL07.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL07
&----
*& Form CALC_CLS_BAL_HSL08
&----
text
----
FORM CALC_CLS_BAL_HSL08.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL08
&----
*& Form CALC_CLS_BAL_HSL09
&----
text
----
FORM CALC_CLS_BAL_HSL09.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL09
&----
*& Form CALC_CLS_BAL_HSL10
&----
text
----
FORM CALC_CLS_BAL_HSL10.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL10
&----
*& Form CALC_CLS_BAL_HSL011
&----
text
----
FORM CALC_CLS_BAL_HSL011.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL011
&----
*& Form CALC_CLS_BAL_HSL012
&----
text
----
FORM CALC_CLS_BAL_HSL012.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL012
&----
*& Form CALC_CLS_BAL_HSL013
&----
text
----
FORM CALC_CLS_BAL_HSL013.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL013
&----
*& Form CALC_CLS_BAL_HSL014
&----
text
----
FORM CALC_CLS_BAL_HSL014.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL014
&----
*& Form CALC_CLS_BAL_HSL015
&----
text
----
FORM CALC_CLS_BAL_HSL015.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
HSL15
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL015
&----
*& Form CALC_CLS_BAL_HSL016
&----
text
----
FORM CALC_CLS_BAL_HSL016.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
HSL15
HSL16
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL016
&----
*& Form FORMAT_DATA
&----
Putting - sign in front for negative values
----
FORM FORMAT_DATA.
CLEAR: IT_FINAL,IT_FINAL_OUT.
*--moving it_final data to it_final_out
LOOP AT IT_FINAL.
IT_FINAL_OUT-SAKNR = IT_FINAL-SAKNR.
IT_FINAL_OUT-TXT50 = IT_FINAL-TXT50.
IT_FINAL_OUT-CREDIT = IT_FINAL-CREDIT.
IT_FINAL_OUT-DEBIT = IT_FINAL-DEBIT.
IT_FINAL_OUT-MOMENT = IT_FINAL-MOMENT.
IT_FINAL_OUT-BALANCE = IT_FINAL-BALANCE.
APPEND IT_FINAL_OUT.
CLEAR IT_FINAL_OUT.
ENDLOOP.
LOOP AT IT_FINAL_OUT.
*--moving '-' sign begore for credit
IF IT_FINAL_OUT-CREDIT < 0.
V_CREDIT = IT_FINAL_OUT-CREDIT.
CONCATENATE '-' V_CREDIT INTO V_F_CREDIT.
IT_FINAL_OUT-CREDIT = V_F_CREDIT.
CONDENSE IT_FINAL_OUT-CREDIT NO-GAPS.
ENDIF.
*--moving '-' sign begore for moment
IF IT_FINAL_OUT-MOMENT < 0.
CLEAR: V_CREDIT,V_F_MOMENT.
V_CREDIT = IT_FINAL_OUT-MOMENT.
CONCATENATE '-' V_CREDIT INTO V_F_MOMENT.
IT_FINAL_OUT-MOMENT = V_F_MOMENT.
CONDENSE IT_FINAL_OUT-MOMENT NO-GAPS.
ENDIF.
*--moving '-' sign begore for balance
IF IT_FINAL_OUT-BALANCE < 0.
CLEAR: V_CREDIT,V_F_BALANCE.
V_CREDIT = IT_FINAL_OUT-BALANCE.
CONCATENATE '-' V_CREDIT INTO V_F_BALANCE.
IT_FINAL_OUT-BALANCE = V_F_BALANCE.
CONDENSE IT_FINAL_OUT-BALANCE NO-GAPS.
ENDIF.
MODIFY IT_FINAL_OUT.
ENDLOOP.
ENDFORM. " FORMAT_DATA
&----
*& Form lock_filed
&----
Disabling the Company Code Field in Selection Screen
----
FORM lock_filed.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'M1'.
SCREEN-INPUT = '0'.
SCREEN-OUTPUT = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDFORM. " lock_filed
&----
*& Form CALC_BAL
&----
Calculating the sum of all Credits and Debits
----
FORM CALC_BAL.
LOOP AT IT_FINAL_PREV.
IF IT_FINAL_PREV-DRCRK = 'S'.
IT_FINAL_PREV-DEBIT = IT_FINAL_PREV-HSL01 + IT_FINAL_PREV-HSL02 +
IT_FINAL_PREV-HSL03 + IT_FINAL_PREV-HSL04 + IT_FINAL_PREV-HSL05 +
IT_FINAL_PREV-HSL06 + IT_FINAL_PREV-HSL07 + IT_FINAL_PREV-HSL08 +
IT_FINAL_PREV-HSL09 + IT_FINAL_PREV-HSL10 + IT_FINAL_PREV-HSL11 +
IT_FINAL_PREV-HSL12 + IT_FINAL_PREV-HSL13 + IT_FINAL_PREV-HSL14 +
IT_FINAL_PREV-HSL15 + IT_FINAL_PREV-HSL16.
IT_FINAL_PREV-CREDIT = 0.
IT_FINAL_PREV-MOMENT_DB = IT_FINAL_PREV-DEBIT + IT_FINAL_PREV-CREDIT.
ELSEIF IT_FINAL_PREV-DRCRK = 'H'.
IT_FINAL_PREV-CREDIT = IT_FINAL_PREV-DEBIT = IT_FINAL_PREV-HSL01 +
IT_FINAL_PREV-HSL02 + IT_FINAL_PREV-HSL03 + IT_FINAL_PREV-HSL04 +
IT_FINAL_PREV-HSL05 + IT_FINAL_PREV-HSL06 + IT_FINAL_PREV-HSL07 +
IT_FINAL_PREV-HSL08 + IT_FINAL_PREV-HSL09 + IT_FINAL_PREV-HSL10 +
IT_FINAL_PREV-HSL11 + IT_FINAL_PREV-HSL12 + IT_FINAL_PREV-HSL13 +
IT_FINAL_PREV-HSL14 + IT_FINAL_PREV-HSL15 + IT_FINAL_PREV-HSL16.
IT_FINAL_PREV-DEBIT = 0.
IT_FINAL_PREV-MOMENT_CR = IT_FINAL_PREV-DEBIT + IT_FINAL_PREV-CREDIT.
ENDIF.
MODIFY IT_FINAL_PREV.
ENDLOOP.
ENDFORM. " CALC_BALREPORT ZTW_MONTHLY_EXTRACT
message-id zbdc
no standard page heading.
************************************************************************
Title : For Taiwan Monthly Extract
Author :
Date : 19/04/2005
Transport/Correction Id :
Clarify case ID :
Application : FI
Program Type :
Frequency :
Purpose :
Comments :
Request No :
************************************************************************
CHANGES LOG *
************************************************************************
Author :
Date : 30/6/2005
Request No : CONK931209
Purpose : Added Carried forward balance
************************************************************************
*----
TABLES DELCARATIONS
*----
tables: SKAT, "G/L Account Master Record (Chart of Accounts: Desc)
T001. "Company Codes
*----
ALV TTPE DELCARATIONS
*----
type-pools: slis.
*Type Declarations for Field Catalog
data : i_fldcat_head type slis_t_fieldcat_alv,
wa_fldcat_head type slis_fieldcat_alv.
*Type Declarations for ALV Events
data : i_events type slis_t_event,
wa_event like line of i_events.
*Type Declarations for Layout Design
data : wa_layout type slis_layout_alv.
*Type Declarations for Sorting Fields
data: it_sort type slis_sortinfo_alv occurs 0 with header line.
*Type Declarations for Displaying Images on Grid
data : i_comment type slis_t_listheader,
wa_comment type slis_listheader.
*Type Declarations for Grouping fields
data : wa_group type slis_sp_group_alv,
i_group type slis_t_sp_group_alv.
*----
DATA DELCARATIONS
*----
data: v_flag, "Status Flag
v_repid like sy-repid, "Program Name
v_period(5) type c,
FILE_LEN type i,
V_CLOSE_BAL LIKE GLT0-HSL09,
V_CREDIT(21),
V_F_CREDIT(21) TYPE C,
V_F_MOMENT(21) TYPE C,
V_F_BALANCE(21) TYPE C.
*----
CONSTANTS DELCARATIONS
*----
constants: c_x type c value 'X'.
*----
INTERNAL TABLES DELCARATIONS
*----
ranges: r_period for SKAT-SAKNR.
*--Internal table to hold the required data
data: begin of it_final_in occurs 0,
SAKNR LIKE SKAT-SAKNR,
TXT50 LIKE SKAT-TXT50,
DRCRK LIKE GLT0-DRCRK,
HSL09 LIKE GLT0-HSL09,
MOMENT LIKE GLT0-HSL09,
BALANCE LIKE GLT0-HSL09,
end of it_final_in.
*--Internal table to hold the final data
data: begin of it_final occurs 0,
SAKNR LIKE SKAT-SAKNR,
TXT50 LIKE SKAT-TXT50,
DEBIT LIKE GLT0-HSL09,
CREDIT LIKE GLT0-HSL09,
MOMENT LIKE GLT0-HSL09,
BALANCE LIKE GLT0-HSL09,
end of it_final.
*--Internal table to hold the final data for output
data: begin of it_final_out occurs 0,
SAKNR LIKE SKAT-SAKNR,
TXT50 LIKE SKAT-TXT50,
DEBIT LIKE GLT0-HSL09,
CREDIT(21) TYPE C,
MOMENT(21) TYPE C,
BALANCE(21) TYPE C,
end of it_final_out.
*--Internal table to hold the previous months closing balance
data: begin of it_final_prev occurs 0,
RACCT LIKE GLT0-RACCT,
DRCRK LIKE GLT0-DRCRK,
HSL01 LIKE GLT0-HSL09,
HSL02 LIKE GLT0-HSL09,
HSL03 LIKE GLT0-HSL09,
HSL04 LIKE GLT0-HSL09,
HSL05 LIKE GLT0-HSL09,
HSL06 LIKE GLT0-HSL09,
HSL07 LIKE GLT0-HSL09,
HSL08 LIKE GLT0-HSL09,
HSL09 LIKE GLT0-HSL09,
HSL10 LIKE GLT0-HSL09,
HSL11 LIKE GLT0-HSL09,
HSL12 LIKE GLT0-HSL09,
HSL13 LIKE GLT0-HSL09,
HSL14 LIKE GLT0-HSL09,
HSL15 LIKE GLT0-HSL09,
HSL16 LIKE GLT0-HSL09,
MOMENT_DB LIKE GLT0-HSL09,
MOMENT_CR LIKE GLT0-HSL09,
BALANCE LIKE GLT0-HSL09,
DEBIT LIKE GLT0-HSL09,
CREDIT LIKE GLT0-HSL09,
CLOSE_BAL LIKE GLT0-HSL09,
end of it_final_prev.
*--Work area to hold the carried forward balance amount
DATA: ACCOUNT_BALANCE LIKE BAPI1028_3.
*----
INITIALIZATION
*----
v_repid = sy-repid.
*--Periods
r_period-low = 'HSL01'. APPEND R_PERIOD.
r_period-low = 'HSL02'. APPEND R_PERIOD.
r_period-low = 'HSL03'. APPEND R_PERIOD.
r_period-low = 'HSL04'. APPEND R_PERIOD.
r_period-low = 'HSL05'. APPEND R_PERIOD.
r_period-low = 'HSL06'. APPEND R_PERIOD.
r_period-low = 'HSL07'. APPEND R_PERIOD.
r_period-low = 'HSL08'. APPEND R_PERIOD.
r_period-low = 'HSL09'. APPEND R_PERIOD.
r_period-low = 'HSL010'. APPEND R_PERIOD.
r_period-low = 'HSL011'. APPEND R_PERIOD.
r_period-low = 'HSL012'. APPEND R_PERIOD.
r_period-low = 'HSL013'. APPEND R_PERIOD.
r_period-low = 'HSL014'. APPEND R_PERIOD.
r_period-low = 'HSL015'. APPEND R_PERIOD.
r_period-low = 'HSL016'. APPEND R_PERIOD.
*----
SELECTION SCREEN
*----
selection-screen: begin of block b1 with frame title text-h01.
select-options : s_SAKNR for skat-SAKNR. "GL Account No
parameters : p_bukrs like t001-bukrs DEFAULT '0379' MODIF ID M1.
"Company Code
parameters : p_rpmax(2) type n obligatory. "Period
parameters : p_year like BSAK-GJAHR DEFAULT SY-DATUM(4).
selection-screen: skip.
parameters : p_down as checkbox default 'X'.
selection-screen: end of block b1.
*----
SELECTION SCREEN EVENTS
*----
at selection-screen on S_SAKNR.
*--Validating GL/Acc.
if not s_saknr[] is initial.
perform validate_s_saknr.
endif.
at selection-screen OUTPUT.
*--locking the company code field
perform lock_filed.
*----
START OF SELECTION
*----
start-of-selection.
perform get_data.
perform get_fldcat.
perform get_events.
perform generate_layout.
perform do_sort.
perform do_group.
************************************************************************
END-OF-SELECTION *
************************************************************************
end-of-selection.
*--Formatting the data
PERFORM FORMAT_DATA.
if v_flag = c_x.
perform download_data.
else.
message i004 with 'No Data Found to Display'.
endif.
*--Generating the Report Output
perform display_report.
&----
*& Form validate_s_saknr
&----
Validating GL Account No
----
FORM validate_s_saknr.
select saknr up to 1 rows
into (skat-saknr)
from skat
where saknr in s_saknr.
endselect.
if sy-subrc ne 0.
message e004 with 'Invalid Range of GL Account'
s_saknr-low 'To' s_saknr-high.
endif.
ENDFORM. " validate_s_saknr
&----
*& Form get_data
&----
Data Extraction
----
FORM get_data.
concatenate 'HSL' p_rpmax into v_period.
loop at r_period.
if r_period-low <> v_period.
delete r_period index sy-tabix.
endif.
endloop.
clear r_period.
read table r_period index 1.
*--Getting data from database
PERFORM SELECT_DATA.
IF SY-SUBRC = 0.
V_FLAG = 'X'.
perform segregate_data.
ELSE.
V_FLAG = SPACE.
ENDIF.
ENDFORM. " get_data
&----
*& Form display_report
&----
Generating the report output
----
FORM display_report.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = v_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = i_fldcat_head
IT_EXCLUDING =
it_special_groups = i_group
it_sort = it_sort[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = i_events
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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = it_final_out
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. " display_report
&----
*& Form segregate_data
&----
Segregating debit and credit values into separte fields
----
FORM segregate_data.
*--segregating Credits & Debits and Calculating the Moment
LOOP AT IT_FINAL_IN.
IT_FINAL-SAKNR = IT_FINAL_IN-SAKNR.
IT_FINAL-TXT50 = IT_FINAL_IN-TXT50.
IF IT_FINAL_IN-DRCRK = 'S'.
IT_FINAL-DEBIT = IT_FINAL_IN-HSL09.
IT_FINAL-CREDIT = 0.
ELSEIF IT_FINAL_IN-DRCRK = 'H'.
IT_FINAL-CREDIT = IT_FINAL_IN-HSL09.
IT_FINAL-DEBIT = 0.
ENDIF.
IT_FINAL-MOMENT = IT_FINAL-DEBIT + IT_FINAL-CREDIT.
COLLECT IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
*--Deleting the values with zero
DELETE IT_FINAL_PREV WHERE HSL01 = 0
AND HSL02 = 0
AND HSL03 = 0
AND HSL04 = 0
AND HSL05 = 0
AND HSL06 = 0
AND HSL07 = 0
AND HSL08 = 0
AND HSL09 = 0
AND HSL10 = 0
AND HSL11 = 0
AND HSL12 = 0
AND HSL13 = 0
AND HSL14 = 0
AND HSL15 = 0
AND HSL16 = 0.
*--Calculating the sum of credits & Debits
PERFORM CALC_BAL.
*--Calculating the closing balance account wise
SORT IT_FINAL_PREV BY RACCT.
LOOP AT IT_FINAL_PREV.
AT END OF RACCT.
READ TABLE IT_FINAL_PREV INDEX SY-TABIX.
SUM.
V_CLOSE_BAL = IT_FINAL_PREV-MOMENT_DB + IT_FINAL_PREV-MOMENT_CR.
MOVE V_CLOSE_BAL TO IT_FINAL_PREV-CLOSE_BAL.
MODIFY IT_FINAL_PREV INDEX SY-TABIX.
ENDAT.
ENDLOOP.
*--deleting the records where closing bal is = 0
DELETE IT_FINAL_PREV WHERE CLOSE_BAL = 0.
*--moving the closing balance to it_final based on saknr
LOOP AT IT_FINAL.
READ TABLE IT_FINAL_PREV WITH KEY RACCT = IT_FINAL-SAKNR.
IF SY-SUBRC EQ 0.
IF IT_FINAL_PREV-CLOSE_BAL <> 0.
*--moving the carried forward balance to it_final-balance
IT_FINAL-BALANCE = IT_FINAL_PREV-CLOSE_BAL.
MODIFY IT_FINAL INDEX SY-TABIX.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT IT_FINAL.
*--Getting the Carried forward balance
CALL FUNCTION 'BAPI_GL_GETGLACCCURRENTBALANCE'
EXPORTING
COMPANYCODE = P_BUKRS
GLACCT = IT_FINAL-SAKNR
CURRENCYTYPE = '10'
IMPORTING
ACCOUNT_BALANCE = ACCOUNT_BALANCE
RETURN =
.
IF SY-SUBRC = 0.
*--moving the carried forward balance amount to it_final-balance
IT_FINAL-BALANCE = ACCOUNT_BALANCE-BALANCE.
MODIFY IT_FINAL.
ENDIF.
CLEAR: ACCOUNT_BALANCE,IT_FINAL.
ENDLOOP.
SORT IT_FINAL BY SAKNR.
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING SAKNR DEBIT CREDIT
MOMENT.
ENDFORM. " segregate_data
&----
*& Form SELECT_DATA
&----
Getting data from database
----
FORM SELECT_DATA.
IF R_PERIOD-LOW = 'HSL01'.
PERFORM EXTRACT_DATA_HSL01.
PERFORM CALC_CLS_BAL_HSL01.
ENDIF.
IF R_PERIOD-LOW = 'HSL02'.
PERFORM EXTRACT_DATA_HSL02.
PERFORM CALC_CLS_BAL_HSL02.
ENDIF.
IF R_PERIOD-LOW = 'HSL03'.
PERFORM EXTRACT_DATA_HSL03.
PERFORM CALC_CLS_BAL_HSL03.
ENDIF.
IF R_PERIOD-LOW = 'HSL04'.
PERFORM EXTRACT_DATA_HSL04.
PERFORM CALC_CLS_BAL_HSL04.
ENDIF.
IF R_PERIOD-LOW = 'HSL05'.
PERFORM EXTRACT_DATA_HSL05.
PERFORM CALC_CLS_BAL_HSL05.
ENDIF.
IF R_PERIOD-LOW = 'HSL06'.
PERFORM EXTRACT_DATA_HSL06.
PERFORM CALC_CLS_BAL_HSL06.
ENDIF.
IF R_PERIOD-LOW = 'HSL07'.
PERFORM EXTRACT_DATA_HSL07.
PERFORM CALC_CLS_BAL_HSL07.
ENDIF.
IF R_PERIOD-LOW = 'HSL08'.
PERFORM EXTRACT_DATA_HSL08.
PERFORM CALC_CLS_BAL_HSL08.
ENDIF.
IF R_PERIOD-LOW = 'HSL09'.
PERFORM EXTRACT_DATA_HSL09.
PERFORM CALC_CLS_BAL_HSL09.
ENDIF.
IF R_PERIOD-LOW = 'HSL10'.
PERFORM EXTRACT_DATA_HSL10.
PERFORM CALC_CLS_BAL_HSL10.
ENDIF.
IF R_PERIOD-LOW = 'HSL11'.
PERFORM EXTRACT_DATA_HSL011.
PERFORM CALC_CLS_BAL_HSL011.
ENDIF.
IF R_PERIOD-LOW = 'HSL12'.
PERFORM EXTRACT_DATA_HSL012.
PERFORM CALC_CLS_BAL_HSL012.
ENDIF.
IF R_PERIOD-LOW = 'HSL13'.
PERFORM EXTRACT_DATA_HSL013.
PERFORM CALC_CLS_BAL_HSL013.
ENDIF.
IF R_PERIOD-LOW = 'HSL14'.
PERFORM EXTRACT_DATA_HSL014.
PERFORM CALC_CLS_BAL_HSL014.
ENDIF.
IF R_PERIOD-LOW = 'HSL15'.
PERFORM EXTRACT_DATA_HSL015.
PERFORM CALC_CLS_BAL_HSL015.
ENDIF.
IF R_PERIOD-LOW = 'HSL16'.
PERFORM EXTRACT_DATA_HSL016.
PERFORM CALC_CLS_BAL_HSL016.
ENDIF.
ENDFORM. " SELECT_DATA
&----
*& Form EXTRACT_DATA_HSL01
&----
text
----
FORM EXTRACT_DATA_HSL01.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL01
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL01
&----
*& Form EXTRACT_DATA_HSL02
&----
text
----
FORM EXTRACT_DATA_HSL02.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL02
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL02
&----
*& Form EXTRACT_DATA_HSL03
&----
text
----
FORM EXTRACT_DATA_HSL03.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL03
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL03
&----
*& Form EXTRACT_DATA_HSL04
&----
text
----
FORM EXTRACT_DATA_HSL04.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL04
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL04
&----
*& Form EXTRACT_DATA_HSL05
&----
text
----
FORM EXTRACT_DATA_HSL05.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL05
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL05
&----
*& Form EXTRACT_DATA_HSL06
&----
text
----
FORM EXTRACT_DATA_HSL06.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL06
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL06
&----
*& Form EXTRACT_DATA_HSL07
&----
text
----
FORM EXTRACT_DATA_HSL07.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL07
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL07
&----
*& Form EXTRACT_DATA_HSL08
&----
text
----
FORM EXTRACT_DATA_HSL08.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL08
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL08
&----
*& Form EXTRACT_DATA_HSL09
&----
text
----
FORM EXTRACT_DATA_HSL09.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL09
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL09
&----
*& Form EXTRACT_DATA_HSL10
&----
text
----
FORM EXTRACT_DATA_HSL10.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL10
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL10
&----
*& Form EXTRACT_DATA_HSL011
&----
text
----
FORM EXTRACT_DATA_HSL011.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL11
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL011
&----
*& Form EXTRACT_DATA_HSL012
&----
text
----
FORM EXTRACT_DATA_HSL012.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL12
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL012
&----
*& Form EXTRACT_DATA_HSL013
&----
text
----
FORM EXTRACT_DATA_HSL013.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL13
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL013
&----
*& Form EXTRACT_DATA_HSL014
&----
text
----
FORM EXTRACT_DATA_HSL014.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL14
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL014
&----
*& Form EXTRACT_DATA_HSL015
&----
Getting data for HSL015
----
FORM EXTRACT_DATA_HSL015.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL15
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL015
&----
*& Form EXTRACT_DATA_HSL016
&----
Getting data for HSL016
----
FORM EXTRACT_DATA_HSL016.
SELECT A~SAKNR
A~TXT50
B~DRCRK
B~HSL16
INTO (IT_FINAL_IN-SAKNR,IT_FINAL_IN-TXT50,IT_FINAL_IN-DRCRK,
IT_FINAL_IN-HSL09)
FROM SKAT AS A
INNER JOIN GLT0 AS B
ON ASAKNR = BRACCT
WHERE SAKNR IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year
and SPRAS = sy-langu.
APPEND IT_FINAL_IN.
ENDSELECT.
ENDFORM. " EXTRACT_DATA_HSL016
&----
*& Form get_fldcat
&----
Generating Field catalog
----
FORM get_fldcat.
*--Account Number
WA_FLDCAT_HEAD-FIELDNAME = 'SAKNR'.
WA_FLDCAT_HEAD-COL_POS = '1'.
WA_FLDCAT_HEAD-JUST = 'L'.
WA_FLDCAT_HEAD-OUTPUTLEN = '15'.
WA_FLDCAT_HEAD-SELTEXT_M = 'G/L Account'.
WA_FLDCAT_HEAD-REF_TABNAME = ' '.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Account Desc
WA_FLDCAT_HEAD-FIELDNAME = 'TXT50'.
WA_FLDCAT_HEAD-COL_POS = '2'.
WA_FLDCAT_HEAD-JUST = 'L'.
WA_FLDCAT_HEAD-OUTPUTLEN = '52'.
WA_FLDCAT_HEAD-SELTEXT_M = 'G/L Account Description'.
WA_FLDCAT_HEAD-REF_TABNAME = ' '.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Debit
WA_FLDCAT_HEAD-FIELDNAME = 'DEBIT'.
WA_FLDCAT_HEAD-COL_POS = '3'.
WA_FLDCAT_HEAD-JUST = 'R'.
WA_FLDCAT_HEAD-OUTPUTLEN = '20'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Debit'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Credit
WA_FLDCAT_HEAD-FIELDNAME = 'CREDIT'.
WA_FLDCAT_HEAD-COL_POS = '4'.
WA_FLDCAT_HEAD-JUST = 'R'.
WA_FLDCAT_HEAD-OUTPUTLEN = '20'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Credit'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Balance
WA_FLDCAT_HEAD-FIELDNAME = 'MOMENT'.
WA_FLDCAT_HEAD-COL_POS = '5'.
WA_FLDCAT_HEAD-JUST = 'R'.
WA_FLDCAT_HEAD-OUTPUTLEN = '20'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Balance'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD.
*--Account Balance to date(Closing Balance)
*--carried forward balance
WA_FLDCAT_HEAD-FIELDNAME = 'BALANCE'.
WA_FLDCAT_HEAD-COL_POS = '6'.
WA_FLDCAT_HEAD-JUST = 'R'.
WA_FLDCAT_HEAD-OUTPUTLEN = '17'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Balance to Date'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
ENDFORM. " get_fldcat
&----
*& Form get_events
&----
text
----
FORM get_events.
call function 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
importing
et_events = i_events
exceptions
list_type_wrong = 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.
if not i_events[] is initial.
read table i_events into wa_event with key name = 'TOP_OF_PAGE'.
wa_event-form = 'GENERATE_USERCOMMAND'.
modify i_events from wa_event index sy-tabix.
read table i_events into wa_event with key name = 'END_OF_LIST'.
wa_event-form = 'GENERATE_USERCOMMAND_FOOTER'.
modify i_events from wa_event index sy-tabix.
endif.
ENDFORM. " get_events
&----
*& Form GENERATE_USERCOMMAND
&----
Displaying Header-Text and Logo on Grid
----
form generate_usercommand .
clear i_comment[].
wa_comment-typ = 'H'.
wa_comment-info = 'Taiwan Extract Report'.
append wa_comment to i_comment.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_comment
i_logo = 'ENJOYSAP_LOGO'.
I_END_OF_LIST_GRID = 'X'
.
endform. " GENERATE_USERCOMMAND
&----
*& Form GENERATE_USERCOMMAND_FOOTER
&----
Displaying Footer-Text on Grid
----
form generate_usercommand_footer.
clear i_comment[].
clear wa_comment.
wa_comment-typ = 'S'.
wa_comment-key = 'GE-Betz'.
append wa_comment to i_comment.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_comment
I_LOGO = ''
i_end_of_list_grid = 'X'.
endform. " GENERATE_USERCOMMAND_FOOTER
&----
*& Form generate_layout
&----
Generating ALV Layout
----
FORM generate_layout.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "OPTIMIZING FIELD WIDTH
wa_layout-zebra = 'X'. "PUTTING ZEBRA COLORS
ENDFORM. " generate_layout
&----
*& Form do_sort
&----
Sorting Data
----
FORM do_sort.
it_sort-fieldname = 'SAKNR'.
it_sort-tabname = 'IT_FINAL'.
it_sort-up = 'X'.
append it_sort.
ENDFORM. " do_sort
&----
*& Form do_group
&----
Grouping data
----
FORM do_group.
clear i_group.
wa_group-sp_group = 'A'.
wa_group-text = 'SAKNR'.
append wa_group to i_group.
ENDFORM. " do_group
&----
*& Form download_data
&----
downloading data to Flat file
----
FORM download_data.
if p_down = 'X'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'C:\TAIWAN_EXTRACT.XLS'
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = 'X'
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
IMPORTING
FILELENGTH = FILE_LEN
TABLES
DATA_TAB = IT_FINAL_OUT
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
CASE SY-SUBRC.
WHEN '1'.
MESSAGE I004 WITH 'Error Writing File'.
WHEN '5'.
MESSAGE I004 WITH 'No Authorization to download the data into File'.
WHEN '15'.
MESSAGE I004 WITH 'ACCESS DENIED'.
WHEN '19'.
MESSAGE I004 WITH 'FILE NOT FOUND'.
WHEN '0'.
MESSAGE I004 WITH FILE_LEN 'bytes Downloaded to'
'C:\TAIWAN_EXTRACT.XLS'.
ENDCASE.
endif.
ENDFORM. " download_data
&----
*& Form CALC_CLS_BAL_HSL01
&----
text
----
FORM CALC_CLS_BAL_HSL01.
SELECT RACCT
DRCRK
HSL01
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL01
&----
*& Form CALC_CLS_BAL_HSL02
&----
text
----
FORM CALC_CLS_BAL_HSL02.
SELECT RACCT
DRCRK
HSL01
HSL02
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL02
&----
*& Form CALC_CLS_BAL_HSL03
&----
text
----
FORM CALC_CLS_BAL_HSL03.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL03
&----
*& Form CALC_CLS_BAL_HSL04
&----
text
----
FORM CALC_CLS_BAL_HSL04.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL04
&----
*& Form CALC_CLS_BAL_HSL05
&----
text
----
FORM CALC_CLS_BAL_HSL05.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL05
&----
*& Form CALC_CLS_BAL_HSL06
&----
text
----
FORM CALC_CLS_BAL_HSL06.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
and ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL06
&----
*& Form CALC_CLS_BAL_HSL07
&----
text
----
FORM CALC_CLS_BAL_HSL07.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL07
&----
*& Form CALC_CLS_BAL_HSL08
&----
text
----
FORM CALC_CLS_BAL_HSL08.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL08
&----
*& Form CALC_CLS_BAL_HSL09
&----
text
----
FORM CALC_CLS_BAL_HSL09.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL09
&----
*& Form CALC_CLS_BAL_HSL10
&----
text
----
FORM CALC_CLS_BAL_HSL10.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL10
&----
*& Form CALC_CLS_BAL_HSL011
&----
text
----
FORM CALC_CLS_BAL_HSL011.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL011
&----
*& Form CALC_CLS_BAL_HSL012
&----
text
----
FORM CALC_CLS_BAL_HSL012.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL012
&----
*& Form CALC_CLS_BAL_HSL013
&----
text
----
FORM CALC_CLS_BAL_HSL013.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL013
&----
*& Form CALC_CLS_BAL_HSL014
&----
text
----
FORM CALC_CLS_BAL_HSL014.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL014
&----
*& Form CALC_CLS_BAL_HSL015
&----
text
----
FORM CALC_CLS_BAL_HSL015.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
HSL15
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL015
&----
*& Form CALC_CLS_BAL_HSL016
&----
text
----
FORM CALC_CLS_BAL_HSL016.
SELECT RACCT
DRCRK
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
HSL15
HSL16
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL_PREV
FROM GLT0
WHERE RACCT IN S_SAKNR
AND BUKRS = P_BUKRS
AND ryear = p_year.
ENDFORM. " CALC_CLS_BAL_HSL016
&----
*& Form FORMAT_DATA
&----
Putting - sign in front for negative values
----
FORM FORMAT_DATA.
CLEAR: IT_FINAL,IT_FINAL_OUT.
*--moving it_final data to it_final_out
LOOP AT IT_FINAL.
IT_FINAL_OUT-SAKNR = IT_FINAL-SAKNR.
IT_FINAL_OUT-TXT50 = IT_FINAL-TXT50.
IT_FINAL_OUT-CREDIT = IT_FINAL-CREDIT.
IT_FINAL_OUT-DEBIT = IT_FINAL-DEBIT.
IT_FINAL_OUT-MOMENT = IT_FINAL-MOMENT.
IT_FINAL_OUT-BALANCE = IT_FINAL-BALANCE.
APPEND IT_FINAL_OUT.
CLEAR IT_FINAL_OUT.
ENDLOOP.
LOOP AT IT_FINAL_OUT.
*--moving '-' sign begore for credit
IF IT_FINAL_OUT-CREDIT < 0.
V_CREDIT = IT_FINAL_OUT-CREDIT.
CONCATENATE '-' V_CREDIT INTO V_F_CREDIT.
IT_FINAL_OUT-CREDIT = V_F_CREDIT.
CONDENSE IT_FINAL_OUT-CREDIT NO-GAPS.
ENDIF.
*--moving '-' sign begore for moment
IF IT_FINAL_OUT-MOMENT < 0.
CLEAR: V_CREDIT,V_F_MOMENT.
V_CREDIT = IT_FINAL_OUT-MOMENT.
CONCATENATE '-' V_CREDIT INTO V_F_MOMENT.
IT_FINAL_OUT-MOMENT = V_F_MOMENT.
CONDENSE IT_FINAL_OUT-MOMENT NO-GAPS.
ENDIF.
*--moving '-' sign begore for balance
IF IT_FINAL_OUT-BALANCE < 0.
CLEAR: V_CREDIT,V_F_BALANCE.
V_CREDIT = IT_FINAL_OUT-BALANCE.
CONCATENATE '-' V_CREDIT INTO V_F_BALANCE.
IT_FINAL_OUT-BALANCE = V_F_BALANCE.
CONDENSE IT_FINAL_OUT-BALANCE NO-GAPS.
ENDIF.
MODIFY IT_FINAL_OUT.
ENDLOOP.
ENDFORM. " FORMAT_DATA
&----
*& Form lock_filed
&----
Disabling the Company Code Field in Selection Screen
----
FORM lock_filed.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'M1'.
SCREEN-INPUT = '0'.
SCREEN-OUTPUT = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDFORM. " lock_filed
&----
*& Form CALC_BAL
&----
Calculating the sum of all Credits and Debits
----
FORM CALC_BAL.
LOOP AT IT_FINAL_PREV.
IF IT_FINAL_PREV-DRCRK = 'S'.
IT_FINAL_PREV-DEBIT = IT_FINAL_PREV-HSL01 + IT_FINAL_PREV-HSL02 +
IT_FINAL_PREV-HSL03 + IT_FINAL_PREV-HSL04 + IT_FINAL_PREV-HSL05 +
IT_FINAL_PREV-HSL06 + IT_FINAL_PREV-HSL07 + IT_FINAL_PREV-HSL08 +
IT_FINAL_PREV-HSL09 + IT_FINAL_PREV-HSL10 + IT_FINAL_PREV-HSL11 +
IT_FINAL_PREV-HSL12 + IT_FINAL_PREV-HSL13 + IT_FINAL_PREV-HSL14 +
IT_FINAL_PREV-HSL15 + IT_FINAL_PREV-HSL16.
IT_FINAL_PREV-CREDIT = 0.
IT_FINAL_PREV-MOMENT_DB = IT_FINAL_PREV-DEBIT + IT_FINAL_PREV-CREDIT.
ELSEIF IT_FINAL_PREV-DRCRK = 'H'.
IT_FINAL_PREV-CREDIT = IT_FINAL_PREV-DEBIT = IT_FINAL_PREV-HSL01 +
IT_FINAL_PREV-HSL02 + IT_FINAL_PREV-HSL03 + IT_FINAL_PREV-HSL04 +
IT_FINAL_PREV-HSL05 + IT_FINAL_PREV-HSL06 + IT_FINAL_PREV-HSL07 +
IT_FINAL_PREV-HSL08 + IT_FINAL_PREV-HSL09 + IT_FINAL_PREV-HSL10 +
IT_FINAL_PREV-HSL11 + IT_FINAL_PREV-HSL12 + IT_FINAL_PREV-HSL13 +
IT_FINAL_PREV-HSL14 + IT_FINAL_PREV-HSL15 + IT_FINAL_PREV-HSL16.
IT_FINAL_PREV-DEBIT = 0.
IT_FINAL_PREV-MOMENT_CR = IT_FINAL_PREV-DEBIT + IT_FINAL_PREV-CREDIT.
ENDIF.
MODIFY IT_FINAL_PREV.
ENDLOOP.
ENDFORM. " CALC_BAL
Hope it will help you,
ThankQ
Rohini.
03-03-2008 9:45 AM
Hi Rohini,
This perfectly fine but I want to know the parameter name which I need to set for this. Because I have already my report. I just want to add this functionality in that report. So please let me know about that.
Thanks and regards,
Siddarth.
03-04-2008 4:25 AM
>
> Hi Folks,
>
> Client has given us one requirement to introduce summation levels in an ALV Report. Currently summation levels are in settings and further enabling Define Breakdown we can define different summation levels for this.
>
> I am not able to find the specific parameter for this. This is currently enabled in transaction FBL5N.
>
> So please help me locating that particular parameter to enable this.
>
> Thanks and regards.
> Siddarth
Hi Folks,
Any help can I get on this. Earlier folks pasted the complete code I don't need the same. I just need to know that what all are the parameters I have to take care.
Posting Code wouldn't help. Still first code posted by Sankar is working fine but I am not able to figure out exact details. So please help me with that.
Thanks and regards,
Siddarth.
04-18-2008 4:53 PM
Dear Siddarth,
Good Day,
If you need summation Levels you have to maitain Fieldcat Datatype should be "CURR". for example find the Sankar coding have the below Codes.
IF do_sum = 'X'.
t_fieldcat-datatype = 'CURR'.
ENDIF.
t_fieldcat-do_sum = do_sum.
All the best.
If Info is useful please assign the points. thanks.
Best Regards,
KSK
04-18-2008 5:02 PM
For getting the Totals you need to use the
DO_SUM = 'X'
for the column you want totals while filling the fieldcatalog.
For getting the subtotals
you need to Build the sort table, Suppose you have a report based on Different countries .
Then you want subtotals on Country wise then we will use SORT option.
SORT-FIELDNAME = 'COUNTRY'.
SORT-UP = 'X'.
SORT-SUBTOTAL = 'X'. "This calculates the subtotals based on country.
append sort.
pass this sort option to the it_sort parameter of the Function module.