Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Help required regarding Summation Levels in ALV report

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

p291102
Active Contributor
0 Kudos

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

7 REPLIES 7

p291102
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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.

Former Member
0 Kudos

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.

0 Kudos

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.

Former Member
0 Kudos

>

> 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.

0 Kudos

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

0 Kudos

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.