<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Classes in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/classes/m-p/2805195#M655463</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;[code]&lt;/P&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Local classes are classes that you define in your programs while global classes are the ones that&lt;/P&gt;&lt;P&gt;are implemented by SAP or the ones that you create using tcode SE24 and can be used by reports, FM's, etc.&lt;/P&gt;&lt;P&gt;I pasted a report I made which uses local classes. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report ZFI_REP_DISBURSE_SUM&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp; PROGRAM TYPE  : Report&lt;/P&gt;&lt;P&gt;*&amp;amp; RICEF ID      :&lt;/P&gt;&lt;P&gt;*&amp;amp; TITLE         : Disbursement Summary Report(New version)&lt;/P&gt;&lt;P&gt;*&amp;amp; SAP Module    : FI&lt;/P&gt;&lt;P&gt;*&amp;amp; CREATION DATE : 07/20/2007&lt;/P&gt;&lt;P&gt;*&amp;amp; AUTHOR        : Aris Hidalgo&lt;/P&gt;&lt;P&gt;*&amp;amp; DESIGNER      : Aris Hidalgo&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; DESCRIPTION   : Disbursement Summary Report&lt;/P&gt;&lt;P&gt;*&amp;amp;               : NOTE: Backed up the original version to&lt;/P&gt;&lt;P&gt;*&amp;amp;               : ZFI_REP_DISBURSE_SUM_BACKUP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;*********************************************************************&lt;/P&gt;&lt;P&gt;*$     CHANGE HISTORY&lt;/P&gt;&lt;P&gt;*$----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*$   DATE        | T-Num      | Description                   | Reference&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;              |            |                               |&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;*********************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zfi_rep_disburse_sum&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;       LINE-SIZE 142&lt;/P&gt;&lt;P&gt;       MESSAGE-ID zfi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SELECTION-SCREEN                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_bukrs TYPE bsak-bukrs OBLIGATORY,&lt;/P&gt;&lt;P&gt;            p_gjahr TYPE bkpf-gjahr OBLIGATORY,&lt;/P&gt;&lt;P&gt;            p_monat TYPE bkpf-monat OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_sign  TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;            p_sgpos TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;            p_note  TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;            p_ntpos TYPE kna1-name1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_other_routines DEFINITION DEFERRED.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_get_data DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_get_data DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_payr,&lt;/P&gt;&lt;P&gt;            zbukr TYPE payr-zbukr,&lt;/P&gt;&lt;P&gt;            vblnr TYPE payr-vblnr,&lt;/P&gt;&lt;P&gt;            gjahr TYPE payr-gjahr,&lt;/P&gt;&lt;P&gt;            lifnr TYPE payr-lifnr,&lt;/P&gt;&lt;P&gt;            zaldt TYPE payr-zaldt,&lt;/P&gt;&lt;P&gt;           END OF t_payr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_bsak,&lt;/P&gt;&lt;P&gt;            bukrs TYPE bsak-bukrs,&lt;/P&gt;&lt;P&gt;            gjahr TYPE bsak-gjahr,&lt;/P&gt;&lt;P&gt;            belnr TYPE bsak-belnr,&lt;/P&gt;&lt;P&gt;            monat TYPE bsak-monat,&lt;/P&gt;&lt;P&gt;            shkzg TYPE bsak-shkzg,&lt;/P&gt;&lt;P&gt;            blart TYPE bsak-blart,&lt;/P&gt;&lt;P&gt;            buzei TYPE bsak-buzei,&lt;/P&gt;&lt;P&gt;            lifnr TYPE bsak-lifnr,&lt;/P&gt;&lt;P&gt;            dmbtr TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            bschl TYPE bsak-bschl,&lt;/P&gt;&lt;P&gt;           END OF t_bsak.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_collect,&lt;/P&gt;&lt;P&gt;            blart TYPE bsak-blart,&lt;/P&gt;&lt;P&gt;            gjahr TYPE bsak-gjahr,&lt;/P&gt;&lt;P&gt;            monat TYPE bsak-monat,&lt;/P&gt;&lt;P&gt;            dmbtr TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;           END OF t_collect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_bsis,&lt;/P&gt;&lt;P&gt;            bukrs TYPE bsis-bukrs,&lt;/P&gt;&lt;P&gt;            belnr TYPE bsis-belnr,&lt;/P&gt;&lt;P&gt;            hkont TYPE bsis-hkont,&lt;/P&gt;&lt;P&gt;            gjahr TYPE bsis-gjahr,&lt;/P&gt;&lt;P&gt;            buzei TYPE bsis-buzei,&lt;/P&gt;&lt;P&gt;            blart TYPE bsis-blart,&lt;/P&gt;&lt;P&gt;            monat TYPE bsis-monat,&lt;/P&gt;&lt;P&gt;            shkzg TYPE bsis-shkzg,&lt;/P&gt;&lt;P&gt;            dmbtr TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;            bschl TYPE bsis-bschl,&lt;/P&gt;&lt;P&gt;           END OF t_bsis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_output,&lt;/P&gt;&lt;P&gt;            blart            TYPE bsak-blart,&lt;/P&gt;&lt;P&gt;            last_year        TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            this_year        TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            percent1         TYPE prozab,&lt;/P&gt;&lt;P&gt;            cum_last_year    TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            cum_this_year    TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            percent2         TYPE prozab,&lt;/P&gt;&lt;P&gt;            description(200) TYPE c,&lt;/P&gt;&lt;P&gt;            header(200)      TYPE c,&lt;/P&gt;&lt;P&gt;           END OF t_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_text,&lt;/P&gt;&lt;P&gt;            sort_order       TYPE i,&lt;/P&gt;&lt;P&gt;            header(200)      TYPE c,&lt;/P&gt;&lt;P&gt;            description(200) TYPE c,&lt;/P&gt;&lt;P&gt;            blart            TYPE bsak-blart,&lt;/P&gt;&lt;P&gt;           END OF t_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS: get_payment_details,&lt;/P&gt;&lt;P&gt;             get_additional_data,&lt;/P&gt;&lt;P&gt;             process_data,&lt;/P&gt;&lt;P&gt;             move_to_output_table&lt;/P&gt;&lt;P&gt;               IMPORTING&lt;/P&gt;&lt;P&gt;                 im_blart TYPE bsak-blart&lt;/P&gt;&lt;P&gt;                 im_gjahr TYPE bsak-gjahr&lt;/P&gt;&lt;P&gt;                 im_monat TYPE bsak-monat&lt;/P&gt;&lt;P&gt;                 im_dmbtr TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;             display_data,&lt;/P&gt;&lt;P&gt;             fill_text_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PROTECTED SECTION.&lt;/P&gt;&lt;P&gt;    CLASS-DATA: gt_payr      TYPE STANDARD TABLE OF t_payr,&lt;/P&gt;&lt;P&gt;                gt_bsak      TYPE STANDARD TABLE OF t_bsak,&lt;/P&gt;&lt;P&gt;                gt_payments  TYPE STANDARD TABLE OF t_bsak,&lt;/P&gt;&lt;P&gt;                wa_payments  LIKE LINE OF gt_payments,&lt;/P&gt;&lt;P&gt;                gt_bsis      TYPE STANDARD TABLE OF t_bsis,&lt;/P&gt;&lt;P&gt;                wa_bsis      LIKE LINE OF gt_bsis,&lt;/P&gt;&lt;P&gt;                gt_bsas      TYPE STANDARD TABLE OF t_bsis,&lt;/P&gt;&lt;P&gt;                gt_output    TYPE STANDARD TABLE OF t_output,&lt;/P&gt;&lt;P&gt;                wa_output    LIKE LINE OF gt_output,&lt;/P&gt;&lt;P&gt;                gt_text      TYPE STANDARD TABLE OF t_text,&lt;/P&gt;&lt;P&gt;                wa_text      LIKE LINE OF gt_text,&lt;/P&gt;&lt;P&gt;                gt_collect   TYPE STANDARD TABLE OF t_collect,&lt;/P&gt;&lt;P&gt;                wa_collect   LIKE LINE OF gt_collect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA: lv_year              TYPE payr-gjahr,&lt;/P&gt;&lt;P&gt;          lv_jan               TYPE t247-ktx,&lt;/P&gt;&lt;P&gt;          lv_pres_month        TYPE t247-ktx,&lt;/P&gt;&lt;P&gt;          lv_month_range       TYPE string,&lt;/P&gt;&lt;P&gt;          lv_old_header        TYPE t_text-header,&lt;/P&gt;&lt;P&gt;          lv_new_header        TYPE t_text-header,&lt;/P&gt;&lt;P&gt;          lv_sub_lyear         TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_gtot_lyear        TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_sub_tyear         TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_gtot_tyear        TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_sub_cum_lyear     TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_gtot_cum_lyear    TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_sub_cum_tyear     TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_gtot_cum_tyear    TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_percent1          TYPE prozab,&lt;/P&gt;&lt;P&gt;          lv_percent2          TYPE prozab,&lt;/P&gt;&lt;P&gt;          lv_gtot_percent1     TYPE prozab,&lt;/P&gt;&lt;P&gt;          lv_gtot_percent2     TYPE prozab,&lt;/P&gt;&lt;P&gt;          o_lcl_other_routines TYPE REF TO lcl_other_routines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONSTANTS: lc_kb TYPE bsak-blart VALUE 'KB',&lt;/P&gt;&lt;P&gt;               lc_kd TYPE bsak-blart VALUE 'KD',&lt;/P&gt;&lt;P&gt;               lc_k3 TYPE bsak-blart VALUE 'K3',&lt;/P&gt;&lt;P&gt;               lc_k4 TYPE bsak-blart VALUE 'K4',&lt;/P&gt;&lt;P&gt;               lc_k5 TYPE bsak-blart VALUE 'K5',&lt;/P&gt;&lt;P&gt;               lc_k6 TYPE bsak-blart VALUE 'K6',&lt;/P&gt;&lt;P&gt;               lc_py TYPE bsak-blart VALUE 'PY',&lt;/P&gt;&lt;P&gt;               lc_pf TYPE bsak-blart VALUE 'PF',&lt;/P&gt;&lt;P&gt;               lc_pq TYPE bsak-blart VALUE 'PQ',&lt;/P&gt;&lt;P&gt;               lc_pj TYPE bsak-blart VALUE 'PJ',&lt;/P&gt;&lt;P&gt;               lc_pm TYPE bsak-blart VALUE 'PM',&lt;/P&gt;&lt;P&gt;               lc_pt TYPE bsak-blart VALUE 'PT',&lt;/P&gt;&lt;P&gt;               lc_p0 TYPE bsak-blart VALUE 'P0',&lt;/P&gt;&lt;P&gt;               lc_re TYPE bsak-blart VALUE 'RE',&lt;/P&gt;&lt;P&gt;               lc_ps TYPE bsak-blart VALUE 'PS',&lt;/P&gt;&lt;P&gt;               lc_pp TYPE bsak-blart VALUE 'PP',&lt;/P&gt;&lt;P&gt;               lc_kp TYPE bsak-blart VALUE 'KP',&lt;/P&gt;&lt;P&gt;               lc_pu TYPE bsak-blart VALUE 'PU',&lt;/P&gt;&lt;P&gt;               lc_pd TYPE bsak-blart VALUE 'PD',&lt;/P&gt;&lt;P&gt;               lc_pe TYPE bsak-blart VALUE 'PE',&lt;/P&gt;&lt;P&gt;               lc_su TYPE bsak-blart VALUE 'SU',&lt;/P&gt;&lt;P&gt;               lc_pc TYPE bsak-blart VALUE 'PC',&lt;/P&gt;&lt;P&gt;               lc_p2 TYPE bsak-blart VALUE 'P2',&lt;/P&gt;&lt;P&gt;               lc_po TYPE bsak-blart VALUE 'PO',&lt;/P&gt;&lt;P&gt;               lc_pw TYPE bsak-blart VALUE 'PW',&lt;/P&gt;&lt;P&gt;               lc_pv TYPE bsak-blart VALUE 'PV',&lt;/P&gt;&lt;P&gt;               lc_p7 TYPE bsak-blart VALUE 'P7',&lt;/P&gt;&lt;P&gt;               lc_pa TYPE bsak-blart VALUE 'PA',&lt;/P&gt;&lt;P&gt;               lc_px TYPE bsis-blart VALUE 'PX',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_x0 TYPE bsis-blart VALUE 'X0',  "Capital Expenditures(CAPEX)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_x1 TYPE bsis-blart VALUE 'X1',  "Request of payment - Vendor&lt;/P&gt;&lt;P&gt;               lc_x2 TYPE bsis-blart VALUE 'X2',  "Logistics Fee - Diethelm&lt;/P&gt;&lt;P&gt;               lc_x3 TYPE bsis-blart VALUE 'X3',  "Logistics Fee - First Pioneer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_y1 TYPE bsis-blart VALUE 'Y1',  "Profit Share&lt;/P&gt;&lt;P&gt;               lc_y2 TYPE bsis-blart VALUE 'Y2',  "Dividend Payments&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_z1 TYPE bsis-blart VALUE 'Z1',&lt;/P&gt;&lt;P&gt;               lc_z2 TYPE bsis-blart VALUE 'Z2',&lt;/P&gt;&lt;P&gt;               lc_z3 TYPE bsis-blart VALUE 'Z3',&lt;/P&gt;&lt;P&gt;               lc_z4 TYPE bsis-blart VALUE 'Z4',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_p8 TYPE bsis-blart VALUE 'P8',&lt;/P&gt;&lt;P&gt;               lc_p9 TYPE bsis-blart VALUE 'P9'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONSTANTS: lc_0020000800 TYPE bsis-hkont VALUE '0020000800',&lt;/P&gt;&lt;P&gt;               lc_0060000653 TYPE bsis-hkont VALUE '0060000653',&lt;/P&gt;&lt;P&gt;               lc_0020000660 TYPE bsis-hkont VALUE '0020000660',&lt;/P&gt;&lt;P&gt;               lc_0020000770 TYPE bsis-hkont VALUE '0020000770'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONSTANTS: lc_8000000525 TYPE lfa1-lifnr VALUE '8000000525',&lt;/P&gt;&lt;P&gt;               lc_8000001015 TYPE lfa1-lifnr VALUE '8000001015'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_get_data DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_other_routines DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_other_routines DEFINITION INHERITING FROM lcl_get_data.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    CLASS-DATA: gv_butxt TYPE t001-butxt,&lt;/P&gt;&lt;P&gt;                gt_t247  TYPE STANDARD TABLE OF t247,&lt;/P&gt;&lt;P&gt;                wa_t247  LIKE LINE OF gt_t247.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS: display_header&lt;/P&gt;&lt;P&gt;               IMPORTING&lt;/P&gt;&lt;P&gt;                 im_flag TYPE flag OPTIONAL&lt;/P&gt;&lt;P&gt;               EXPORTING&lt;/P&gt;&lt;P&gt;                 ex_month_name TYPE t247-ltx&lt;/P&gt;&lt;P&gt;                 ex_jan        TYPE t247-ktx&lt;/P&gt;&lt;P&gt;                 ex_pres_month TYPE t247-ktx.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_other_routines DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_get_data IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_get_data IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD get_payment_details.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get previous year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lv_year = p_gjahr - 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get records from PAYR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT zbukr vblnr gjahr lifnr zaldt&lt;/P&gt;&lt;P&gt;      FROM payr&lt;/P&gt;&lt;P&gt;      INTO TABLE gt_payr&lt;/P&gt;&lt;P&gt;     WHERE zbukr = p_bukrs&lt;/P&gt;&lt;P&gt;       AND gjahr IN (lv_year, p_gjahr).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_payr WHERE zaldt+4(2) &amp;gt; p_monat.&lt;/P&gt;&lt;P&gt;    SORT gt_payr BY zbukr vblnr gjahr lifnr zaldt.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM gt_payr COMPARING zbukr vblnr gjahr lifnr zaldt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT gt_payr[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get records from BSAK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SELECT bukrs gjahr belnr&lt;/P&gt;&lt;P&gt;             monat shkzg blart&lt;/P&gt;&lt;P&gt;             buzei lifnr dmbtr&lt;/P&gt;&lt;P&gt;             bschl&lt;/P&gt;&lt;P&gt;        FROM bsak&lt;/P&gt;&lt;P&gt;        INTO TABLE gt_bsak&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN gt_payr&lt;/P&gt;&lt;P&gt;       WHERE lifnr = gt_payr-lifnr&lt;/P&gt;&lt;P&gt;         AND bukrs = gt_payr-zbukr&lt;/P&gt;&lt;P&gt;         AND augdt = gt_payr-zaldt&lt;/P&gt;&lt;P&gt;         AND augbl = gt_payr-vblnr&lt;/P&gt;&lt;P&gt;         AND gjahr = gt_payr-gjahr.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_bsak WHERE monat &amp;gt; p_monat.&lt;/P&gt;&lt;P&gt;    DELETE gt_bsak WHERE shkzg &amp;lt;&amp;gt; 'H'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    gt_payments[] = gt_bsak[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT gt_payments[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      CALL METHOD: me-&amp;gt;get_additional_data,&lt;/P&gt;&lt;P&gt;                       process_data.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE i000 WITH text-057.&lt;/P&gt;&lt;P&gt;      LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "get_payment_details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD get_additional_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get records from BSIS(Open items)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT bukrs belnr hkont gjahr&lt;/P&gt;&lt;P&gt;           buzei blart monat shkzg&lt;/P&gt;&lt;P&gt;           dmbtr bschl&lt;/P&gt;&lt;P&gt;      FROM bsis&lt;/P&gt;&lt;P&gt;      INTO TABLE gt_bsis&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN gt_payments&lt;/P&gt;&lt;P&gt;     WHERE bukrs = gt_payments-bukrs&lt;/P&gt;&lt;P&gt;       AND belnr = gt_payments-belnr&lt;/P&gt;&lt;P&gt;       AND gjahr = gt_payments-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get records from BSAS(Cleared items)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT bukrs belnr hkont gjahr&lt;/P&gt;&lt;P&gt;           buzei blart monat shkzg&lt;/P&gt;&lt;P&gt;           dmbtr bschl&lt;/P&gt;&lt;P&gt;      FROM bsas&lt;/P&gt;&lt;P&gt;      INTO TABLE gt_bsas&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN gt_payments&lt;/P&gt;&lt;P&gt;     WHERE bukrs = gt_payments-bukrs&lt;/P&gt;&lt;P&gt;       AND belnr = gt_payments-belnr&lt;/P&gt;&lt;P&gt;       AND gjahr = gt_payments-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_bsis WHERE monat &amp;gt; p_monat.&lt;/P&gt;&lt;P&gt;    DELETE gt_bsis WHERE blart &amp;lt;&amp;gt; lc_su AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_px AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_pt AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_p0 AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_re.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_bsas WHERE monat &amp;gt; p_monat.&lt;/P&gt;&lt;P&gt;    DELETE gt_bsas WHERE blart &amp;lt;&amp;gt; lc_su AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_px AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_pt AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_p0 AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_re.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Combine data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    APPEND LINES OF gt_bsas TO gt_bsis.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "get_additional_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD process_data.&lt;/P&gt;&lt;P&gt;    FIELD-SYMBOLS: &amp;lt;fs_payments&amp;gt; LIKE LINE OF gt_payments,&lt;/P&gt;&lt;P&gt;                   &amp;lt;fs_bsis&amp;gt;     LIKE LINE OF gt_bsis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT gt_payments ASCENDING BY: bukrs blart gjahr monat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt;.&lt;/P&gt;&lt;P&gt;      IF &amp;lt;fs_payments&amp;gt;-blart = lc_pv OR&lt;/P&gt;&lt;P&gt;         &amp;lt;fs_payments&amp;gt;-blart = lc_p7.&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_payments&amp;gt;-lifnr &amp;lt;&amp;gt; lc_8000000525 AND   "Request of payment - Vendor&lt;/P&gt;&lt;P&gt;           &amp;lt;fs_payments&amp;gt;-lifnr &amp;lt;&amp;gt; lc_8000001015.&lt;/P&gt;&lt;P&gt;          CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              im_blart = lc_x1&lt;/P&gt;&lt;P&gt;              im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;              im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;              im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_payments&amp;gt;-lifnr = lc_8000000525.  "Diethelm&lt;/P&gt;&lt;P&gt;          CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              im_blart = lc_x2&lt;/P&gt;&lt;P&gt;              im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;              im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;              im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_payments&amp;gt;-lifnr = lc_8000001015.  "First Pioneer&lt;/P&gt;&lt;P&gt;          CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              im_blart = lc_x3&lt;/P&gt;&lt;P&gt;              im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;              im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;              im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING &amp;lt;fs_payments&amp;gt; TO wa_collect.&lt;/P&gt;&lt;P&gt;      COLLECT wa_collect INTO gt_collect.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Process records from BSAK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT gt_collect INTO wa_collect.&lt;/P&gt;&lt;P&gt;      CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          im_blart = wa_collect-blart&lt;/P&gt;&lt;P&gt;          im_gjahr = wa_collect-gjahr&lt;/P&gt;&lt;P&gt;          im_monat = wa_collect-monat&lt;/P&gt;&lt;P&gt;          im_dmbtr = wa_collect-dmbtr.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT gt_bsis     BY bukrs belnr hkont gjahr.&lt;/P&gt;&lt;P&gt;    SORT gt_payments BY bukrs gjahr belnr monat shkzg.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM gt_bsis COMPARING bukrs belnr hkont gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Process records from BSIS and BSAS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT gt_bsis ASSIGNING &amp;lt;fs_bsis&amp;gt;.&lt;/P&gt;&lt;P&gt;      IF &amp;lt;fs_bsis&amp;gt;-blart = lc_su.&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_bsis&amp;gt;-hkont = lc_0020000800 OR&lt;/P&gt;&lt;P&gt;           &amp;lt;fs_bsis&amp;gt;-hkont = lc_0060000653.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_y1&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont = lc_0020000770.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_y2&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ELSEIF &amp;lt;fs_bsis&amp;gt;-blart = lc_px.&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_bsis&amp;gt;-hkont = '0020000650' OR&lt;/P&gt;&lt;P&gt;           &amp;lt;fs_bsis&amp;gt;-hkont = '0020000651'.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                   gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                   belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                   monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                   shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                   BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_z1&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont BETWEEN '0020000200' AND '0020000320'.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_z2&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont BETWEEN '0060001100' AND '0060001114'.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_z3&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont = lc_0020000660.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_z4&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ELSEIF &amp;lt;fs_bsis&amp;gt;-blart = lc_pt OR&lt;/P&gt;&lt;P&gt;             &amp;lt;fs_bsis&amp;gt;-blart = lc_p0 OR&lt;/P&gt;&lt;P&gt;             &amp;lt;fs_bsis&amp;gt;-blart = lc_re.&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_bsis&amp;gt;-hkont BETWEEN '0070000001' AND '0070000024'.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_x0&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_pt&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "process_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD move_to_output_table.&lt;/P&gt;&lt;P&gt;    CLEAR wa_output.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_output INTO wa_output WITH KEY blart = im_blart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If document type is not yet added&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      wa_output-blart = im_blart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Year before the user specified year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF im_gjahr = lv_year.&lt;/P&gt;&lt;P&gt;        IF im_monat = p_monat.&lt;/P&gt;&lt;P&gt;          wa_output-last_year = im_dmbtr.&lt;/P&gt;&lt;P&gt;          APPEND wa_output TO gt_output.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD im_dmbtr TO wa_output-cum_last_year.&lt;/P&gt;&lt;P&gt;        APPEND wa_output TO gt_output.&lt;/P&gt;&lt;P&gt;        CLEAR wa_output.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    User specified year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSEIF im_gjahr = p_gjahr.&lt;/P&gt;&lt;P&gt;        IF im_monat = p_monat.&lt;/P&gt;&lt;P&gt;          wa_output-this_year = im_dmbtr.&lt;/P&gt;&lt;P&gt;          APPEND wa_output TO gt_output.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD im_dmbtr TO wa_output-cum_this_year.&lt;/P&gt;&lt;P&gt;        APPEND wa_output TO gt_output.&lt;/P&gt;&lt;P&gt;        CLEAR wa_output.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If document type has been already added&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ELSEIF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      wa_output-blart = im_blart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Year before the user specified year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF im_gjahr = lv_year.&lt;/P&gt;&lt;P&gt;        IF im_monat = p_monat.&lt;/P&gt;&lt;P&gt;          wa_output-last_year = im_dmbtr.&lt;/P&gt;&lt;P&gt;          MODIFY TABLE gt_output FROM wa_output.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD im_dmbtr TO wa_output-cum_last_year.&lt;/P&gt;&lt;P&gt;        MODIFY TABLE gt_output FROM wa_output.&lt;/P&gt;&lt;P&gt;        CLEAR wa_output.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    User specified year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSEIF im_gjahr = p_gjahr.&lt;/P&gt;&lt;P&gt;        IF im_monat = p_monat.&lt;/P&gt;&lt;P&gt;          wa_output-this_year = im_dmbtr.&lt;/P&gt;&lt;P&gt;          MODIFY TABLE gt_output FROM wa_output.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD im_dmbtr TO wa_output-cum_this_year.&lt;/P&gt;&lt;P&gt;        MODIFY TABLE gt_output FROM wa_output.&lt;/P&gt;&lt;P&gt;        CLEAR wa_output.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "move_to_output_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display_data.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT o_lcl_other_routines.&lt;/P&gt;&lt;P&gt;    CALL METHOD o_lcl_other_routines-&amp;gt;display_header&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        im_flag       = space&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ex_month_name = lv_month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ex_jan        = lv_jan&lt;/P&gt;&lt;P&gt;        ex_pres_month = lv_pres_month.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Write header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    WRITE:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          AT /60 lv_month CENTERED,  "Month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           AT /98 text-005 CENTERED.   "Cumulative&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: AT  60 text-006 CENTERED,   "Current month&lt;/P&gt;&lt;P&gt;           AT /44 text-007 CENTERED,   "Last year&lt;/P&gt;&lt;P&gt;           AT  63 text-008 CENTERED,   "This year&lt;/P&gt;&lt;P&gt;           AT  75 text-009 CENTERED,   "% Inc/Dec&lt;/P&gt;&lt;P&gt;           AT  97 text-010 CENTERED,   "Last year(Cumulative)&lt;/P&gt;&lt;P&gt;           AT 115 text-011 CENTERED,   "This year(Cumulative)&lt;/P&gt;&lt;P&gt;           AT 130 text-012 CENTERED,   "% Inc/Dec&lt;/P&gt;&lt;P&gt;              /   lv_year  CENTERED UNDER text-007,&lt;/P&gt;&lt;P&gt;                  p_gjahr  CENTERED UNDER text-008.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE: lv_jan '-' lv_pres_month INTO lv_month_range.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: lv_month_range CENTERED UNDER text-010,&lt;/P&gt;&lt;P&gt;           lv_month_range CENTERED UNDER text-011,&lt;/P&gt;&lt;P&gt;           AT 130(15) space COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;    SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;fill_text_table.&lt;/P&gt;&lt;P&gt;    SORT gt_text BY sort_order.&lt;/P&gt;&lt;P&gt;    SORT gt_output BY blart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT gt_text INTO wa_text.&lt;/P&gt;&lt;P&gt;      lv_new_header = wa_text-header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF lv_old_header &amp;lt;&amp;gt; lv_new_header AND&lt;/P&gt;&lt;P&gt;      NOT lv_old_header IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write subtotal&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        FORMAT COLOR COL_TOTAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;        WRITE: / text-054,&lt;/P&gt;&lt;P&gt;               AT 40  lv_sub_lyear     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 59  lv_sub_tyear     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 78  lv_percent1                     RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 93  lv_sub_cum_lyear CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 111 lv_sub_cum_tyear CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 135 lv_percent2                     RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE: sy-uline.&lt;/P&gt;&lt;P&gt;        CLEAR: lv_sub_lyear, lv_sub_tyear, lv_percent1,&lt;/P&gt;&lt;P&gt;               lv_sub_cum_lyear, lv_sub_cum_tyear, lv_percent2.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Write subcategory&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF lv_old_header &amp;lt;&amp;gt; lv_new_header.&lt;/P&gt;&lt;P&gt;        SKIP 2.&lt;/P&gt;&lt;P&gt;        WRITE: / wa_text-header COLOR COL_GROUP INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      lv_old_header = lv_new_header.&lt;/P&gt;&lt;P&gt;      WRITE: AT /2 wa_text-description.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR wa_output.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_output INTO wa_output WITH KEY blart = wa_text-blart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Write details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        WRITE: AT 40 wa_output-last_year     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 59 wa_output-this_year     CURRENCY 'PHP' RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_output-last_year &amp;lt;&amp;gt; 0 AND&lt;/P&gt;&lt;P&gt;           wa_output-this_year &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          wa_output-percent1 = ( wa_output-this_year - wa_output-last_year ) /&lt;/P&gt;&lt;P&gt;                                 wa_output-last_year.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WRITE: AT  78 wa_output-percent1 RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;        WRITE: AT  93 wa_output-cum_last_year CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 111 wa_output-cum_this_year CURRENCY 'PHP' RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_output-cum_last_year &amp;lt;&amp;gt; 0 AND&lt;/P&gt;&lt;P&gt;           wa_output-cum_this_year &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          wa_output-percent2 = ( wa_output-cum_this_year - wa_output-cum_last_year ) /&lt;/P&gt;&lt;P&gt;                                 wa_output-cum_last_year.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WRITE: AT 135 wa_output-percent2 RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ADD wa_output-last_year     TO: lv_sub_lyear, lv_gtot_lyear.&lt;/P&gt;&lt;P&gt;        ADD wa_output-this_year     TO: lv_sub_tyear, lv_gtot_tyear.&lt;/P&gt;&lt;P&gt;        ADD wa_output-percent1      TO: lv_percent1, lv_gtot_percent1.&lt;/P&gt;&lt;P&gt;        ADD wa_output-cum_last_year TO: lv_sub_cum_lyear, lv_gtot_cum_lyear.&lt;/P&gt;&lt;P&gt;        ADD wa_output-cum_this_year TO: lv_sub_cum_tyear, lv_gtot_cum_tyear.&lt;/P&gt;&lt;P&gt;        ADD wa_output-percent2      TO: lv_percent2, lv_gtot_percent2.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT LAST.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write subtotal&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        FORMAT COLOR COL_TOTAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;        WRITE: / text-054,&lt;/P&gt;&lt;P&gt;               AT 40  lv_sub_lyear     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 59  lv_sub_tyear     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 78  lv_percent1                     RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 93  lv_sub_cum_lyear CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 111 lv_sub_cum_tyear CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 135 lv_percent2                     RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE: sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write grand total&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        SKIP 1.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_TOTAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;        WRITE: / text-055,&lt;/P&gt;&lt;P&gt;               AT 40  lv_gtot_lyear     CURRENCY 'PHP',&lt;/P&gt;&lt;P&gt;               AT 59  lv_gtot_tyear     CURRENCY 'PHP',&lt;/P&gt;&lt;P&gt;               AT 78  lv_gtot_percent1  RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 93  lv_gtot_cum_lyear CURRENCY 'PHP',&lt;/P&gt;&lt;P&gt;               AT 111 lv_gtot_cum_tyear CURRENCY 'PHP',&lt;/P&gt;&lt;P&gt;               AT 135 lv_gtot_percent2  RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE: sy-uline.&lt;/P&gt;&lt;P&gt;        SKIP 3.&lt;/P&gt;&lt;P&gt;        WRITE: / p_sign  UNDER text-010,&lt;/P&gt;&lt;P&gt;               / p_sgpos UNDER text-010,&lt;/P&gt;&lt;P&gt;               / text-056,&lt;/P&gt;&lt;P&gt;               / p_note  UNDER text-056,&lt;/P&gt;&lt;P&gt;               / p_ntpos UNDER text-056.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "display_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD fill_text_table.&lt;/P&gt;&lt;P&gt;    DEFINE fill_text_table.&lt;/P&gt;&lt;P&gt;      wa_text-sort_order  = &amp;amp;1.&lt;/P&gt;&lt;P&gt;      wa_text-header      = &amp;amp;2.&lt;/P&gt;&lt;P&gt;      wa_text-description = &amp;amp;3.&lt;/P&gt;&lt;P&gt;      wa_text-blart       = &amp;amp;4.&lt;/P&gt;&lt;P&gt;      append wa_text to gt_text.&lt;/P&gt;&lt;P&gt;      clear wa_text.&lt;/P&gt;&lt;P&gt;    END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Importation details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '1' text-048 text-013 lc_kb.&lt;/P&gt;&lt;P&gt;    fill_text_table '2' text-048 text-014 lc_kd.&lt;/P&gt;&lt;P&gt;    fill_text_table '3' text-048 text-015 lc_k3.&lt;/P&gt;&lt;P&gt;    fill_text_table '4' text-048 text-016 lc_k4.&lt;/P&gt;&lt;P&gt;    fill_text_table '5' text-048 text-017 lc_k6.&lt;/P&gt;&lt;P&gt;    fill_text_table '6' text-048 text-018 lc_k5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Finished goods details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '7' text-049 text-019 lc_py.&lt;/P&gt;&lt;P&gt;    fill_text_table '8' text-049 text-020 lc_pf.&lt;/P&gt;&lt;P&gt;    fill_text_table '9' text-049 text-021 lc_pq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Local production items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '10' text-050 text-022 lc_pj.&lt;/P&gt;&lt;P&gt;    fill_text_table '11' text-050 text-023 lc_pm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Local non-production items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '12' text-051 text-024 lc_pt.&lt;/P&gt;&lt;P&gt;    fill_text_table '13' text-051 text-058 lc_x0.&lt;/P&gt;&lt;P&gt;    fill_text_table '14' text-051 text-025 lc_ps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Payroll transactions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '15' text-052 text-026 lc_pp.&lt;/P&gt;&lt;P&gt;    fill_text_table '16' text-052 text-027 lc_kp.&lt;/P&gt;&lt;P&gt;    fill_text_table '17' text-052 text-028 lc_pu.&lt;/P&gt;&lt;P&gt;    fill_text_table '18' text-052 text-029 lc_pd.&lt;/P&gt;&lt;P&gt;    fill_text_table '19' text-052 text-030 lc_pe.&lt;/P&gt;&lt;P&gt;    fill_text_table '20' text-052 text-040 lc_y1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Taxes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '21' text-059 text-042 lc_z1.&lt;/P&gt;&lt;P&gt;    fill_text_table '22' text-059 text-043 lc_z2.&lt;/P&gt;&lt;P&gt;    fill_text_table '23' text-059 text-044 lc_z3.&lt;/P&gt;&lt;P&gt;    fill_text_table '24' text-059 text-045 lc_z4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Others&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '25' text-053 text-032 lc_pc.&lt;/P&gt;&lt;P&gt;    fill_text_table '26' text-053 text-033 lc_p2.&lt;/P&gt;&lt;P&gt;    fill_text_table '27' text-053 text-036 lc_x1.&lt;/P&gt;&lt;P&gt;    fill_text_table '28' text-053 text-034 lc_po.&lt;/P&gt;&lt;P&gt;    fill_text_table '29' text-053 text-035 lc_pw.&lt;/P&gt;&lt;P&gt;    fill_text_table '30' text-053 text-037 lc_x2.&lt;/P&gt;&lt;P&gt;    fill_text_table '31' text-053 text-038 lc_x3.&lt;/P&gt;&lt;P&gt;    fill_text_table '32' text-053 text-039 lc_pa.&lt;/P&gt;&lt;P&gt;    fill_text_table '33' text-053 text-041 lc_y2.&lt;/P&gt;&lt;P&gt;    fill_text_table '34' text-053 text-046 lc_p8.&lt;/P&gt;&lt;P&gt;    fill_text_table '35' text-053 text-047 lc_p9.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "fill_text_table&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_get_data IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_other_routines IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_other_routines IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD display_header.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE butxt&lt;/P&gt;&lt;P&gt;    FROM t001&lt;/P&gt;&lt;P&gt;    INTO gv_butxt&lt;/P&gt;&lt;P&gt;   WHERE bukrs = p_bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'MONTH_NAMES_GET'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       language                    = sy-langu&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN_CODE                 =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        month_names                 = gt_t247&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     month_names_not_found       = 1&lt;/P&gt;&lt;P&gt;     OTHERS                      = 2&lt;/P&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Month in parameter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE gt_t247 INTO wa_t247 WITH KEY mnr = p_monat.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      ex_month_name = wa_t247-ltx.&lt;/P&gt;&lt;P&gt;      ex_pres_month = wa_t247-ktx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  January&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE gt_t247 INTO wa_t247 WITH KEY mnr = '01'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      ex_jan = wa_t247-ktx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF im_flag = 'X'.&lt;/P&gt;&lt;P&gt;      WRITE: AT /60 gv_butxt,&lt;/P&gt;&lt;P&gt;             AT /60 text-003,&lt;/P&gt;&lt;P&gt;             AT /60 text-004,&lt;/P&gt;&lt;P&gt;             AT  77 ex_month_name,&lt;/P&gt;&lt;P&gt;             AT  86 p_gjahr.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "display_header&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_other_routines IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TOP-OF-PAGE                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  DATA: o_lcl_other_routines TYPE REF TO lcl_other_routines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_lcl_other_routines.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_lcl_other_routines-&amp;gt;display_header&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_flag = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START-OF-SELECTION                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  DATA: o_lcl_get_data TYPE REF TO lcl_get_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_lcl_get_data.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_lcl_get_data-&amp;gt;get_payment_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;END-OF-SELECTION                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_lcl_get_data-&amp;gt;display_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;P.S. Please award points if it helps...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[/code]&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 06 Sep 2007 05:43:55 GMT</pubDate>
    <dc:creator>aris_hidalgo</dc:creator>
    <dc:date>2007-09-06T05:43:55Z</dc:date>
    <item>
      <title>Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/classes/m-p/2805193#M655461</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI,&lt;/P&gt;&lt;P&gt;what are the difference between local and global classes?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please send me with some docs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rahul&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Sep 2007 05:38:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/classes/m-p/2805193#M655461</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-06T05:38:09Z</dc:date>
    </item>
    <item>
      <title>Re: Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/classes/m-p/2805194#M655462</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Classes &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LIKE-Zusatz&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Classes are templates for objects. Conversely, you can say that the type of an object is the same as its class. A class is an abstract description of an object. You could say that it is a set of instructions for building an object. The attributes of objects are defined by the components of the class, which describe the state and behavior of objects. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Local and Global Classes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Classes in ABAP Objects can be declared either globally or locally. You define global classes and interfaces in the Class Builder (Transaction SE24) in the ABAP Workbench. They are stored centrally in class pools in the class library in the R/3 Repository. All of the ABAP programs in an R/3 System can access the global classes. Local classes are defined within an ABAP program. Local classes and interfaces can only be used in the program in which they are defined. When you use a class in an ABAP program, the system first searches for a local class with the specified name. If it does not find one, it then looks for a global class. Apart from the visibility question, there is no difference between using a global class and using a local class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is, however, a significant difference in the way that local and global classes are designed. If you are defining a local class that is only used in a single program, it is usually sufficient to define the outwardly visible components so that it fits into that program. Global classes, on the other hand, must be able to be used anywhere. This means that certain restrictions apply when you define the interface of a global class, since the system must be able to guarantee that any program using an object of a global class can recognize the data type of each interface parameter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following sections describe how to define local classes and interfaces in an ABAP program. For information about how to define local classes and interfaces, refer to the  Class Builder section of the ABAP Workbench Tools documentation. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Defining Local Classes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Local classes consist of ABAP source code, enclosed in the ABAP statements CLASS ... ENDCLASS. A complete class definition consists of a declaration part and, if required, an implementation part. The declaration part of a class &amp;lt;class&amp;gt; is a statement block:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS &amp;lt;class&amp;gt; DEFINITION. &lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It contains the declaration for all components (attributes, methods, events) of the class. When you define local classes, the declaration part belongs to the global program data. You should therefore place it at the beginning of the program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you declare methods in the declaration part of a class, you must also write an implementation part for it. This consists of a further statement block:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS &amp;lt;class&amp;gt; IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The implementation part of a class contains the implementation of all methods of the class. The implementation part of a local class is a processing block. Subsequent coding that is not itself part of a processing block is therefore not accessible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Structure of a Class&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following statements define the structure of a class:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A class contains components &lt;/P&gt;&lt;P&gt;Each component is assigned to a visibility section &lt;/P&gt;&lt;P&gt;Classes implement methods&lt;/P&gt;&lt;P&gt;The following sections describe the structure of classes in more detail. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Class Components&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The components of a class make up its contents. All components are declared in the declaration part of the class. The components define the attributes of the objects in a class. When you define the class, each component is assigned to one of the three visibility sections, which define the external interface of the class. All of the components of a class are visible within the class. All components are in the same namespace. This means that all components of the class must have names that are unique within the class. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are two kinds of components in a class - those that exist separately for each object in the class, and those that exist only once for the whole class, regardless of the number of instances. Instance-specific components are known as instance components. Components that are not instance-specific are called static components. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In ABAP Objects, classes can define the following components. Since all components that you can declare in classes can also be declared in interfaces, the following descriptions apply equally to interfaces. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attributes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attributes are internal data fields within a class that can have any ABAP data type. The state of an object is determined by the contents of its attributes. One kind of attribute is the reference variable. Reference variables allow you to create and address objects. Reference variables can be defined in classes, allowing you to access objects from within a class. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instance Attributes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The contents of instance attributes define the instance-specific state of an object. You declare them using the DATA statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Static Attributes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The contents of static attributes define the state of the class that is valid for all instances of the class. Static attributes exist once for each class. You declare them using the CLASS-DATA statement. They are accessible for the entire runtime of the class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All of the objects in a class can access its static attributes. If you change a static attribute in an object, the change is visible in all other objects in the class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Methods&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Methods are internal procedures in a class that define the behavior of an object. They can access all of the attributes of a class. This allows them to change the data content of an object. They also have a parameter interface, with which users can supply them with values when calling them, and receive values back from them The private attributes of a class can only be changed by methods in the same class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The definition and parameter interface of a method is similar to that of function modules. You define a method &amp;lt;met&amp;gt; in the definition part of a class and implement it in the implementation part using the following processing block:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD &amp;lt;meth&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can declare local data types and objects in methods in the same way as in other ABAP procedures (subroutines and function modules). You call methods using the CALL METHOD statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instance Methods&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You declare instance methods using the METHODS statement. They can access all of the attributes of a class, and can trigger all of the events of the class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Static Methods&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You declare static methods using the CLASS-METHODS statement. They can only access static attributes and trigger static events. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Special Methods&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As well as normal methods, which you call using CALL METHOD, there are two special methods called CONSTRUCTOR and CLASS_CONSTRUCTOR, which are automatically called when you create an object (CONSTRUCTOR) or when you first access the components of a class (CLASS_CONSTRUCTOR).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Objects or classes can use events to trigger event handler methods in other objects or classes. In a normal method call, one method can be called by any number of users. When an event is triggered, any number of event handler methods can be called. The link between the trigger and the handler is not established until runtime. In a normal method call, the calling program determines the methods that it wants to call. These methods must exist. With events, the handler determines the events to which it wants to react. There does not have to be a handler method registered for every event. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The events of a class can be triggered in the methods of the same class using the RAISE EVENT statement. You can declare a method of the same or a different class as an event handler method for the event &amp;lt;evt&amp;gt; of class &amp;lt;class&amp;gt; using the addition FOR EVENT &amp;lt;evt&amp;gt; OF &amp;lt;class&amp;gt;. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Events have a similar parameter interface to methods, but only have output parameters. These parameters are passed by the trigger (RAISE EVENT statement) to the event handler method, which receives them as input parameters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The link between trigger and handler is established dynamically in a program using the SET HANDLER statement. The trigger and handlers can be objects or classes, depending on whether you have instance or static events and event handler methods. When an event is triggered, the corresponding event handler methods are executed in all registered handling classes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instance Events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You declare instance events using the EVENTS statement. An instance event can only be triggered in an instance method. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Static Events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You declare static events using the CLASS-EVENTS statement. All methods (instance and static methods) can trigger static events. Static events are the only type of event that can be triggered in a static method. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See also Triggering and Handling Events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Types&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can define your own ABAP data types within a class using the TYPES statement. Types are not instance-specific, and exist once only for all of the objects in a class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Constants&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Constants are special static attributes. You set their values when you declare them, and they can then no longer be changed. You declare them using the CONSTANTS statement. Constants are not instance-specific, and exist once only for all of the objects in a class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Visibility Sections&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can divide the declaration part of a class into up to three visibility areas:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS &amp;lt;class&amp;gt; DEFINITION. &lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;  PROTECTED SECTION.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These areas define the external visibility of the class components, that is, the interface between the class and its users. Each component of a class must be assigned to one of the visibility sections. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Public Section&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All of the components declared in the public section are accessible to all users of the class, and to the methods of the class and any classes that inherit from it. The public components of the class form the interface between the class and its users.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Protected Section&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All of the components declared in the protected section are accessible to all methods of the class and of classes that inherit from it. Protected components form a special interface between a class and its subclasses. Since inheritance is not active in Release 4.5B, the protected section currently has the same effect as the private section. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Private Section&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Components that you declare in the private section are only visible in the methods of the same class. The private components are not part of the external interface of the class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Encapsulation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The three visibility areas are the basis for one of the important features of object orientation - encapsulation. When you define a class, you should take great care in designing the public components, and try to declare as few public components as possible. The public components of global classes may not be changed once you have released the class. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example, public attributes are visible externally, and form a part of the interface between an object and its users. If you want to encapsulate the state of an object fully, you cannot declare any public attributes. As well as defining the visibility of an attribute, you can also protect it from changes using the READ-ONLY addition. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;reward if helpful&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vivekanand&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Sep 2007 05:41:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/classes/m-p/2805194#M655462</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-06T05:41:50Z</dc:date>
    </item>
    <item>
      <title>Re: Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/classes/m-p/2805195#M655463</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;[code]&lt;/P&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Local classes are classes that you define in your programs while global classes are the ones that&lt;/P&gt;&lt;P&gt;are implemented by SAP or the ones that you create using tcode SE24 and can be used by reports, FM's, etc.&lt;/P&gt;&lt;P&gt;I pasted a report I made which uses local classes. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report ZFI_REP_DISBURSE_SUM&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp; PROGRAM TYPE  : Report&lt;/P&gt;&lt;P&gt;*&amp;amp; RICEF ID      :&lt;/P&gt;&lt;P&gt;*&amp;amp; TITLE         : Disbursement Summary Report(New version)&lt;/P&gt;&lt;P&gt;*&amp;amp; SAP Module    : FI&lt;/P&gt;&lt;P&gt;*&amp;amp; CREATION DATE : 07/20/2007&lt;/P&gt;&lt;P&gt;*&amp;amp; AUTHOR        : Aris Hidalgo&lt;/P&gt;&lt;P&gt;*&amp;amp; DESIGNER      : Aris Hidalgo&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; DESCRIPTION   : Disbursement Summary Report&lt;/P&gt;&lt;P&gt;*&amp;amp;               : NOTE: Backed up the original version to&lt;/P&gt;&lt;P&gt;*&amp;amp;               : ZFI_REP_DISBURSE_SUM_BACKUP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;*********************************************************************&lt;/P&gt;&lt;P&gt;*$     CHANGE HISTORY&lt;/P&gt;&lt;P&gt;*$----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*$   DATE        | T-Num      | Description                   | Reference&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;              |            |                               |&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;*********************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zfi_rep_disburse_sum&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;       LINE-SIZE 142&lt;/P&gt;&lt;P&gt;       MESSAGE-ID zfi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SELECTION-SCREEN                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_bukrs TYPE bsak-bukrs OBLIGATORY,&lt;/P&gt;&lt;P&gt;            p_gjahr TYPE bkpf-gjahr OBLIGATORY,&lt;/P&gt;&lt;P&gt;            p_monat TYPE bkpf-monat OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_sign  TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;            p_sgpos TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;            p_note  TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;            p_ntpos TYPE kna1-name1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_other_routines DEFINITION DEFERRED.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_get_data DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_get_data DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_payr,&lt;/P&gt;&lt;P&gt;            zbukr TYPE payr-zbukr,&lt;/P&gt;&lt;P&gt;            vblnr TYPE payr-vblnr,&lt;/P&gt;&lt;P&gt;            gjahr TYPE payr-gjahr,&lt;/P&gt;&lt;P&gt;            lifnr TYPE payr-lifnr,&lt;/P&gt;&lt;P&gt;            zaldt TYPE payr-zaldt,&lt;/P&gt;&lt;P&gt;           END OF t_payr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_bsak,&lt;/P&gt;&lt;P&gt;            bukrs TYPE bsak-bukrs,&lt;/P&gt;&lt;P&gt;            gjahr TYPE bsak-gjahr,&lt;/P&gt;&lt;P&gt;            belnr TYPE bsak-belnr,&lt;/P&gt;&lt;P&gt;            monat TYPE bsak-monat,&lt;/P&gt;&lt;P&gt;            shkzg TYPE bsak-shkzg,&lt;/P&gt;&lt;P&gt;            blart TYPE bsak-blart,&lt;/P&gt;&lt;P&gt;            buzei TYPE bsak-buzei,&lt;/P&gt;&lt;P&gt;            lifnr TYPE bsak-lifnr,&lt;/P&gt;&lt;P&gt;            dmbtr TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            bschl TYPE bsak-bschl,&lt;/P&gt;&lt;P&gt;           END OF t_bsak.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_collect,&lt;/P&gt;&lt;P&gt;            blart TYPE bsak-blart,&lt;/P&gt;&lt;P&gt;            gjahr TYPE bsak-gjahr,&lt;/P&gt;&lt;P&gt;            monat TYPE bsak-monat,&lt;/P&gt;&lt;P&gt;            dmbtr TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;           END OF t_collect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_bsis,&lt;/P&gt;&lt;P&gt;            bukrs TYPE bsis-bukrs,&lt;/P&gt;&lt;P&gt;            belnr TYPE bsis-belnr,&lt;/P&gt;&lt;P&gt;            hkont TYPE bsis-hkont,&lt;/P&gt;&lt;P&gt;            gjahr TYPE bsis-gjahr,&lt;/P&gt;&lt;P&gt;            buzei TYPE bsis-buzei,&lt;/P&gt;&lt;P&gt;            blart TYPE bsis-blart,&lt;/P&gt;&lt;P&gt;            monat TYPE bsis-monat,&lt;/P&gt;&lt;P&gt;            shkzg TYPE bsis-shkzg,&lt;/P&gt;&lt;P&gt;            dmbtr TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;            bschl TYPE bsis-bschl,&lt;/P&gt;&lt;P&gt;           END OF t_bsis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_output,&lt;/P&gt;&lt;P&gt;            blart            TYPE bsak-blart,&lt;/P&gt;&lt;P&gt;            last_year        TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            this_year        TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            percent1         TYPE prozab,&lt;/P&gt;&lt;P&gt;            cum_last_year    TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            cum_this_year    TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;            percent2         TYPE prozab,&lt;/P&gt;&lt;P&gt;            description(200) TYPE c,&lt;/P&gt;&lt;P&gt;            header(200)      TYPE c,&lt;/P&gt;&lt;P&gt;           END OF t_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF t_text,&lt;/P&gt;&lt;P&gt;            sort_order       TYPE i,&lt;/P&gt;&lt;P&gt;            header(200)      TYPE c,&lt;/P&gt;&lt;P&gt;            description(200) TYPE c,&lt;/P&gt;&lt;P&gt;            blart            TYPE bsak-blart,&lt;/P&gt;&lt;P&gt;           END OF t_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS: get_payment_details,&lt;/P&gt;&lt;P&gt;             get_additional_data,&lt;/P&gt;&lt;P&gt;             process_data,&lt;/P&gt;&lt;P&gt;             move_to_output_table&lt;/P&gt;&lt;P&gt;               IMPORTING&lt;/P&gt;&lt;P&gt;                 im_blart TYPE bsak-blart&lt;/P&gt;&lt;P&gt;                 im_gjahr TYPE bsak-gjahr&lt;/P&gt;&lt;P&gt;                 im_monat TYPE bsak-monat&lt;/P&gt;&lt;P&gt;                 im_dmbtr TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;             display_data,&lt;/P&gt;&lt;P&gt;             fill_text_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PROTECTED SECTION.&lt;/P&gt;&lt;P&gt;    CLASS-DATA: gt_payr      TYPE STANDARD TABLE OF t_payr,&lt;/P&gt;&lt;P&gt;                gt_bsak      TYPE STANDARD TABLE OF t_bsak,&lt;/P&gt;&lt;P&gt;                gt_payments  TYPE STANDARD TABLE OF t_bsak,&lt;/P&gt;&lt;P&gt;                wa_payments  LIKE LINE OF gt_payments,&lt;/P&gt;&lt;P&gt;                gt_bsis      TYPE STANDARD TABLE OF t_bsis,&lt;/P&gt;&lt;P&gt;                wa_bsis      LIKE LINE OF gt_bsis,&lt;/P&gt;&lt;P&gt;                gt_bsas      TYPE STANDARD TABLE OF t_bsis,&lt;/P&gt;&lt;P&gt;                gt_output    TYPE STANDARD TABLE OF t_output,&lt;/P&gt;&lt;P&gt;                wa_output    LIKE LINE OF gt_output,&lt;/P&gt;&lt;P&gt;                gt_text      TYPE STANDARD TABLE OF t_text,&lt;/P&gt;&lt;P&gt;                wa_text      LIKE LINE OF gt_text,&lt;/P&gt;&lt;P&gt;                gt_collect   TYPE STANDARD TABLE OF t_collect,&lt;/P&gt;&lt;P&gt;                wa_collect   LIKE LINE OF gt_collect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA: lv_year              TYPE payr-gjahr,&lt;/P&gt;&lt;P&gt;          lv_jan               TYPE t247-ktx,&lt;/P&gt;&lt;P&gt;          lv_pres_month        TYPE t247-ktx,&lt;/P&gt;&lt;P&gt;          lv_month_range       TYPE string,&lt;/P&gt;&lt;P&gt;          lv_old_header        TYPE t_text-header,&lt;/P&gt;&lt;P&gt;          lv_new_header        TYPE t_text-header,&lt;/P&gt;&lt;P&gt;          lv_sub_lyear         TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_gtot_lyear        TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_sub_tyear         TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_gtot_tyear        TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_sub_cum_lyear     TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_gtot_cum_lyear    TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_sub_cum_tyear     TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_gtot_cum_tyear    TYPE bsak-dmbtr,&lt;/P&gt;&lt;P&gt;          lv_percent1          TYPE prozab,&lt;/P&gt;&lt;P&gt;          lv_percent2          TYPE prozab,&lt;/P&gt;&lt;P&gt;          lv_gtot_percent1     TYPE prozab,&lt;/P&gt;&lt;P&gt;          lv_gtot_percent2     TYPE prozab,&lt;/P&gt;&lt;P&gt;          o_lcl_other_routines TYPE REF TO lcl_other_routines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONSTANTS: lc_kb TYPE bsak-blart VALUE 'KB',&lt;/P&gt;&lt;P&gt;               lc_kd TYPE bsak-blart VALUE 'KD',&lt;/P&gt;&lt;P&gt;               lc_k3 TYPE bsak-blart VALUE 'K3',&lt;/P&gt;&lt;P&gt;               lc_k4 TYPE bsak-blart VALUE 'K4',&lt;/P&gt;&lt;P&gt;               lc_k5 TYPE bsak-blart VALUE 'K5',&lt;/P&gt;&lt;P&gt;               lc_k6 TYPE bsak-blart VALUE 'K6',&lt;/P&gt;&lt;P&gt;               lc_py TYPE bsak-blart VALUE 'PY',&lt;/P&gt;&lt;P&gt;               lc_pf TYPE bsak-blart VALUE 'PF',&lt;/P&gt;&lt;P&gt;               lc_pq TYPE bsak-blart VALUE 'PQ',&lt;/P&gt;&lt;P&gt;               lc_pj TYPE bsak-blart VALUE 'PJ',&lt;/P&gt;&lt;P&gt;               lc_pm TYPE bsak-blart VALUE 'PM',&lt;/P&gt;&lt;P&gt;               lc_pt TYPE bsak-blart VALUE 'PT',&lt;/P&gt;&lt;P&gt;               lc_p0 TYPE bsak-blart VALUE 'P0',&lt;/P&gt;&lt;P&gt;               lc_re TYPE bsak-blart VALUE 'RE',&lt;/P&gt;&lt;P&gt;               lc_ps TYPE bsak-blart VALUE 'PS',&lt;/P&gt;&lt;P&gt;               lc_pp TYPE bsak-blart VALUE 'PP',&lt;/P&gt;&lt;P&gt;               lc_kp TYPE bsak-blart VALUE 'KP',&lt;/P&gt;&lt;P&gt;               lc_pu TYPE bsak-blart VALUE 'PU',&lt;/P&gt;&lt;P&gt;               lc_pd TYPE bsak-blart VALUE 'PD',&lt;/P&gt;&lt;P&gt;               lc_pe TYPE bsak-blart VALUE 'PE',&lt;/P&gt;&lt;P&gt;               lc_su TYPE bsak-blart VALUE 'SU',&lt;/P&gt;&lt;P&gt;               lc_pc TYPE bsak-blart VALUE 'PC',&lt;/P&gt;&lt;P&gt;               lc_p2 TYPE bsak-blart VALUE 'P2',&lt;/P&gt;&lt;P&gt;               lc_po TYPE bsak-blart VALUE 'PO',&lt;/P&gt;&lt;P&gt;               lc_pw TYPE bsak-blart VALUE 'PW',&lt;/P&gt;&lt;P&gt;               lc_pv TYPE bsak-blart VALUE 'PV',&lt;/P&gt;&lt;P&gt;               lc_p7 TYPE bsak-blart VALUE 'P7',&lt;/P&gt;&lt;P&gt;               lc_pa TYPE bsak-blart VALUE 'PA',&lt;/P&gt;&lt;P&gt;               lc_px TYPE bsis-blart VALUE 'PX',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_x0 TYPE bsis-blart VALUE 'X0',  "Capital Expenditures(CAPEX)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_x1 TYPE bsis-blart VALUE 'X1',  "Request of payment - Vendor&lt;/P&gt;&lt;P&gt;               lc_x2 TYPE bsis-blart VALUE 'X2',  "Logistics Fee - Diethelm&lt;/P&gt;&lt;P&gt;               lc_x3 TYPE bsis-blart VALUE 'X3',  "Logistics Fee - First Pioneer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_y1 TYPE bsis-blart VALUE 'Y1',  "Profit Share&lt;/P&gt;&lt;P&gt;               lc_y2 TYPE bsis-blart VALUE 'Y2',  "Dividend Payments&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_z1 TYPE bsis-blart VALUE 'Z1',&lt;/P&gt;&lt;P&gt;               lc_z2 TYPE bsis-blart VALUE 'Z2',&lt;/P&gt;&lt;P&gt;               lc_z3 TYPE bsis-blart VALUE 'Z3',&lt;/P&gt;&lt;P&gt;               lc_z4 TYPE bsis-blart VALUE 'Z4',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               lc_p8 TYPE bsis-blart VALUE 'P8',&lt;/P&gt;&lt;P&gt;               lc_p9 TYPE bsis-blart VALUE 'P9'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONSTANTS: lc_0020000800 TYPE bsis-hkont VALUE '0020000800',&lt;/P&gt;&lt;P&gt;               lc_0060000653 TYPE bsis-hkont VALUE '0060000653',&lt;/P&gt;&lt;P&gt;               lc_0020000660 TYPE bsis-hkont VALUE '0020000660',&lt;/P&gt;&lt;P&gt;               lc_0020000770 TYPE bsis-hkont VALUE '0020000770'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONSTANTS: lc_8000000525 TYPE lfa1-lifnr VALUE '8000000525',&lt;/P&gt;&lt;P&gt;               lc_8000001015 TYPE lfa1-lifnr VALUE '8000001015'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_get_data DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_other_routines DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_other_routines DEFINITION INHERITING FROM lcl_get_data.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    CLASS-DATA: gv_butxt TYPE t001-butxt,&lt;/P&gt;&lt;P&gt;                gt_t247  TYPE STANDARD TABLE OF t247,&lt;/P&gt;&lt;P&gt;                wa_t247  LIKE LINE OF gt_t247.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS: display_header&lt;/P&gt;&lt;P&gt;               IMPORTING&lt;/P&gt;&lt;P&gt;                 im_flag TYPE flag OPTIONAL&lt;/P&gt;&lt;P&gt;               EXPORTING&lt;/P&gt;&lt;P&gt;                 ex_month_name TYPE t247-ltx&lt;/P&gt;&lt;P&gt;                 ex_jan        TYPE t247-ktx&lt;/P&gt;&lt;P&gt;                 ex_pres_month TYPE t247-ktx.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_other_routines DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_get_data IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_get_data IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD get_payment_details.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get previous year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    lv_year = p_gjahr - 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get records from PAYR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT zbukr vblnr gjahr lifnr zaldt&lt;/P&gt;&lt;P&gt;      FROM payr&lt;/P&gt;&lt;P&gt;      INTO TABLE gt_payr&lt;/P&gt;&lt;P&gt;     WHERE zbukr = p_bukrs&lt;/P&gt;&lt;P&gt;       AND gjahr IN (lv_year, p_gjahr).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_payr WHERE zaldt+4(2) &amp;gt; p_monat.&lt;/P&gt;&lt;P&gt;    SORT gt_payr BY zbukr vblnr gjahr lifnr zaldt.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM gt_payr COMPARING zbukr vblnr gjahr lifnr zaldt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT gt_payr[] IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get records from BSAK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SELECT bukrs gjahr belnr&lt;/P&gt;&lt;P&gt;             monat shkzg blart&lt;/P&gt;&lt;P&gt;             buzei lifnr dmbtr&lt;/P&gt;&lt;P&gt;             bschl&lt;/P&gt;&lt;P&gt;        FROM bsak&lt;/P&gt;&lt;P&gt;        INTO TABLE gt_bsak&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN gt_payr&lt;/P&gt;&lt;P&gt;       WHERE lifnr = gt_payr-lifnr&lt;/P&gt;&lt;P&gt;         AND bukrs = gt_payr-zbukr&lt;/P&gt;&lt;P&gt;         AND augdt = gt_payr-zaldt&lt;/P&gt;&lt;P&gt;         AND augbl = gt_payr-vblnr&lt;/P&gt;&lt;P&gt;         AND gjahr = gt_payr-gjahr.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_bsak WHERE monat &amp;gt; p_monat.&lt;/P&gt;&lt;P&gt;    DELETE gt_bsak WHERE shkzg &amp;lt;&amp;gt; 'H'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    gt_payments[] = gt_bsak[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT gt_payments[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      CALL METHOD: me-&amp;gt;get_additional_data,&lt;/P&gt;&lt;P&gt;                       process_data.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE i000 WITH text-057.&lt;/P&gt;&lt;P&gt;      LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "get_payment_details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD get_additional_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get records from BSIS(Open items)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT bukrs belnr hkont gjahr&lt;/P&gt;&lt;P&gt;           buzei blart monat shkzg&lt;/P&gt;&lt;P&gt;           dmbtr bschl&lt;/P&gt;&lt;P&gt;      FROM bsis&lt;/P&gt;&lt;P&gt;      INTO TABLE gt_bsis&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN gt_payments&lt;/P&gt;&lt;P&gt;     WHERE bukrs = gt_payments-bukrs&lt;/P&gt;&lt;P&gt;       AND belnr = gt_payments-belnr&lt;/P&gt;&lt;P&gt;       AND gjahr = gt_payments-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get records from BSAS(Cleared items)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT bukrs belnr hkont gjahr&lt;/P&gt;&lt;P&gt;           buzei blart monat shkzg&lt;/P&gt;&lt;P&gt;           dmbtr bschl&lt;/P&gt;&lt;P&gt;      FROM bsas&lt;/P&gt;&lt;P&gt;      INTO TABLE gt_bsas&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN gt_payments&lt;/P&gt;&lt;P&gt;     WHERE bukrs = gt_payments-bukrs&lt;/P&gt;&lt;P&gt;       AND belnr = gt_payments-belnr&lt;/P&gt;&lt;P&gt;       AND gjahr = gt_payments-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_bsis WHERE monat &amp;gt; p_monat.&lt;/P&gt;&lt;P&gt;    DELETE gt_bsis WHERE blart &amp;lt;&amp;gt; lc_su AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_px AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_pt AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_p0 AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_re.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_bsas WHERE monat &amp;gt; p_monat.&lt;/P&gt;&lt;P&gt;    DELETE gt_bsas WHERE blart &amp;lt;&amp;gt; lc_su AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_px AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_pt AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_p0 AND&lt;/P&gt;&lt;P&gt;                         blart &amp;lt;&amp;gt; lc_re.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Combine data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    APPEND LINES OF gt_bsas TO gt_bsis.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "get_additional_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD process_data.&lt;/P&gt;&lt;P&gt;    FIELD-SYMBOLS: &amp;lt;fs_payments&amp;gt; LIKE LINE OF gt_payments,&lt;/P&gt;&lt;P&gt;                   &amp;lt;fs_bsis&amp;gt;     LIKE LINE OF gt_bsis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT gt_payments ASCENDING BY: bukrs blart gjahr monat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt;.&lt;/P&gt;&lt;P&gt;      IF &amp;lt;fs_payments&amp;gt;-blart = lc_pv OR&lt;/P&gt;&lt;P&gt;         &amp;lt;fs_payments&amp;gt;-blart = lc_p7.&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_payments&amp;gt;-lifnr &amp;lt;&amp;gt; lc_8000000525 AND   "Request of payment - Vendor&lt;/P&gt;&lt;P&gt;           &amp;lt;fs_payments&amp;gt;-lifnr &amp;lt;&amp;gt; lc_8000001015.&lt;/P&gt;&lt;P&gt;          CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              im_blart = lc_x1&lt;/P&gt;&lt;P&gt;              im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;              im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;              im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_payments&amp;gt;-lifnr = lc_8000000525.  "Diethelm&lt;/P&gt;&lt;P&gt;          CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              im_blart = lc_x2&lt;/P&gt;&lt;P&gt;              im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;              im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;              im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_payments&amp;gt;-lifnr = lc_8000001015.  "First Pioneer&lt;/P&gt;&lt;P&gt;          CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              im_blart = lc_x3&lt;/P&gt;&lt;P&gt;              im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;              im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;              im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING &amp;lt;fs_payments&amp;gt; TO wa_collect.&lt;/P&gt;&lt;P&gt;      COLLECT wa_collect INTO gt_collect.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Process records from BSAK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT gt_collect INTO wa_collect.&lt;/P&gt;&lt;P&gt;      CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          im_blart = wa_collect-blart&lt;/P&gt;&lt;P&gt;          im_gjahr = wa_collect-gjahr&lt;/P&gt;&lt;P&gt;          im_monat = wa_collect-monat&lt;/P&gt;&lt;P&gt;          im_dmbtr = wa_collect-dmbtr.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT gt_bsis     BY bukrs belnr hkont gjahr.&lt;/P&gt;&lt;P&gt;    SORT gt_payments BY bukrs gjahr belnr monat shkzg.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM gt_bsis COMPARING bukrs belnr hkont gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Process records from BSIS and BSAS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT gt_bsis ASSIGNING &amp;lt;fs_bsis&amp;gt;.&lt;/P&gt;&lt;P&gt;      IF &amp;lt;fs_bsis&amp;gt;-blart = lc_su.&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_bsis&amp;gt;-hkont = lc_0020000800 OR&lt;/P&gt;&lt;P&gt;           &amp;lt;fs_bsis&amp;gt;-hkont = lc_0060000653.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_y1&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont = lc_0020000770.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_y2&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ELSEIF &amp;lt;fs_bsis&amp;gt;-blart = lc_px.&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_bsis&amp;gt;-hkont = '0020000650' OR&lt;/P&gt;&lt;P&gt;           &amp;lt;fs_bsis&amp;gt;-hkont = '0020000651'.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                   gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                   belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                   monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                   shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                   BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_z1&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont BETWEEN '0020000200' AND '0020000320'.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_z2&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont BETWEEN '0060001100' AND '0060001114'.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_z3&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont = lc_0020000660.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_z4&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ELSEIF &amp;lt;fs_bsis&amp;gt;-blart = lc_pt OR&lt;/P&gt;&lt;P&gt;             &amp;lt;fs_bsis&amp;gt;-blart = lc_p0 OR&lt;/P&gt;&lt;P&gt;             &amp;lt;fs_bsis&amp;gt;-blart = lc_re.&lt;/P&gt;&lt;P&gt;        IF &amp;lt;fs_bsis&amp;gt;-hkont BETWEEN '0070000001' AND '0070000024'.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_x0&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          READ TABLE gt_payments ASSIGNING &amp;lt;fs_payments&amp;gt; WITH KEY bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;                                                                  gjahr = &amp;lt;fs_bsis&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                                                                  belnr = &amp;lt;fs_bsis&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;                                                                  monat = &amp;lt;fs_bsis&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                                                                  shkzg = 'H'&lt;/P&gt;&lt;P&gt;                                                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            CALL METHOD move_to_output_table&lt;/P&gt;&lt;P&gt;              EXPORTING&lt;/P&gt;&lt;P&gt;                im_blart = lc_pt&lt;/P&gt;&lt;P&gt;                im_gjahr = &amp;lt;fs_payments&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;                im_monat = &amp;lt;fs_payments&amp;gt;-monat&lt;/P&gt;&lt;P&gt;                im_dmbtr = &amp;lt;fs_payments&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;            CONTINUE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "process_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD move_to_output_table.&lt;/P&gt;&lt;P&gt;    CLEAR wa_output.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_output INTO wa_output WITH KEY blart = im_blart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If document type is not yet added&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      wa_output-blart = im_blart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Year before the user specified year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF im_gjahr = lv_year.&lt;/P&gt;&lt;P&gt;        IF im_monat = p_monat.&lt;/P&gt;&lt;P&gt;          wa_output-last_year = im_dmbtr.&lt;/P&gt;&lt;P&gt;          APPEND wa_output TO gt_output.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD im_dmbtr TO wa_output-cum_last_year.&lt;/P&gt;&lt;P&gt;        APPEND wa_output TO gt_output.&lt;/P&gt;&lt;P&gt;        CLEAR wa_output.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    User specified year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSEIF im_gjahr = p_gjahr.&lt;/P&gt;&lt;P&gt;        IF im_monat = p_monat.&lt;/P&gt;&lt;P&gt;          wa_output-this_year = im_dmbtr.&lt;/P&gt;&lt;P&gt;          APPEND wa_output TO gt_output.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD im_dmbtr TO wa_output-cum_this_year.&lt;/P&gt;&lt;P&gt;        APPEND wa_output TO gt_output.&lt;/P&gt;&lt;P&gt;        CLEAR wa_output.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If document type has been already added&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ELSEIF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      wa_output-blart = im_blart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Year before the user specified year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF im_gjahr = lv_year.&lt;/P&gt;&lt;P&gt;        IF im_monat = p_monat.&lt;/P&gt;&lt;P&gt;          wa_output-last_year = im_dmbtr.&lt;/P&gt;&lt;P&gt;          MODIFY TABLE gt_output FROM wa_output.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD im_dmbtr TO wa_output-cum_last_year.&lt;/P&gt;&lt;P&gt;        MODIFY TABLE gt_output FROM wa_output.&lt;/P&gt;&lt;P&gt;        CLEAR wa_output.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    User specified year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSEIF im_gjahr = p_gjahr.&lt;/P&gt;&lt;P&gt;        IF im_monat = p_monat.&lt;/P&gt;&lt;P&gt;          wa_output-this_year = im_dmbtr.&lt;/P&gt;&lt;P&gt;          MODIFY TABLE gt_output FROM wa_output.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD im_dmbtr TO wa_output-cum_this_year.&lt;/P&gt;&lt;P&gt;        MODIFY TABLE gt_output FROM wa_output.&lt;/P&gt;&lt;P&gt;        CLEAR wa_output.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "move_to_output_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display_data.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT o_lcl_other_routines.&lt;/P&gt;&lt;P&gt;    CALL METHOD o_lcl_other_routines-&amp;gt;display_header&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        im_flag       = space&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ex_month_name = lv_month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ex_jan        = lv_jan&lt;/P&gt;&lt;P&gt;        ex_pres_month = lv_pres_month.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Write header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    WRITE:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          AT /60 lv_month CENTERED,  "Month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           AT /98 text-005 CENTERED.   "Cumulative&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: AT  60 text-006 CENTERED,   "Current month&lt;/P&gt;&lt;P&gt;           AT /44 text-007 CENTERED,   "Last year&lt;/P&gt;&lt;P&gt;           AT  63 text-008 CENTERED,   "This year&lt;/P&gt;&lt;P&gt;           AT  75 text-009 CENTERED,   "% Inc/Dec&lt;/P&gt;&lt;P&gt;           AT  97 text-010 CENTERED,   "Last year(Cumulative)&lt;/P&gt;&lt;P&gt;           AT 115 text-011 CENTERED,   "This year(Cumulative)&lt;/P&gt;&lt;P&gt;           AT 130 text-012 CENTERED,   "% Inc/Dec&lt;/P&gt;&lt;P&gt;              /   lv_year  CENTERED UNDER text-007,&lt;/P&gt;&lt;P&gt;                  p_gjahr  CENTERED UNDER text-008.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE: lv_jan '-' lv_pres_month INTO lv_month_range.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: lv_month_range CENTERED UNDER text-010,&lt;/P&gt;&lt;P&gt;           lv_month_range CENTERED UNDER text-011,&lt;/P&gt;&lt;P&gt;           AT 130(15) space COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;    SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;fill_text_table.&lt;/P&gt;&lt;P&gt;    SORT gt_text BY sort_order.&lt;/P&gt;&lt;P&gt;    SORT gt_output BY blart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT gt_text INTO wa_text.&lt;/P&gt;&lt;P&gt;      lv_new_header = wa_text-header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF lv_old_header &amp;lt;&amp;gt; lv_new_header AND&lt;/P&gt;&lt;P&gt;      NOT lv_old_header IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write subtotal&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        FORMAT COLOR COL_TOTAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;        WRITE: / text-054,&lt;/P&gt;&lt;P&gt;               AT 40  lv_sub_lyear     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 59  lv_sub_tyear     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 78  lv_percent1                     RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 93  lv_sub_cum_lyear CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 111 lv_sub_cum_tyear CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 135 lv_percent2                     RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE: sy-uline.&lt;/P&gt;&lt;P&gt;        CLEAR: lv_sub_lyear, lv_sub_tyear, lv_percent1,&lt;/P&gt;&lt;P&gt;               lv_sub_cum_lyear, lv_sub_cum_tyear, lv_percent2.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Write subcategory&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF lv_old_header &amp;lt;&amp;gt; lv_new_header.&lt;/P&gt;&lt;P&gt;        SKIP 2.&lt;/P&gt;&lt;P&gt;        WRITE: / wa_text-header COLOR COL_GROUP INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      lv_old_header = lv_new_header.&lt;/P&gt;&lt;P&gt;      WRITE: AT /2 wa_text-description.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR wa_output.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_output INTO wa_output WITH KEY blart = wa_text-blart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Write details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        WRITE: AT 40 wa_output-last_year     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 59 wa_output-this_year     CURRENCY 'PHP' RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_output-last_year &amp;lt;&amp;gt; 0 AND&lt;/P&gt;&lt;P&gt;           wa_output-this_year &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          wa_output-percent1 = ( wa_output-this_year - wa_output-last_year ) /&lt;/P&gt;&lt;P&gt;                                 wa_output-last_year.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WRITE: AT  78 wa_output-percent1 RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;        WRITE: AT  93 wa_output-cum_last_year CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 111 wa_output-cum_this_year CURRENCY 'PHP' RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_output-cum_last_year &amp;lt;&amp;gt; 0 AND&lt;/P&gt;&lt;P&gt;           wa_output-cum_this_year &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          wa_output-percent2 = ( wa_output-cum_this_year - wa_output-cum_last_year ) /&lt;/P&gt;&lt;P&gt;                                 wa_output-cum_last_year.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WRITE: AT 135 wa_output-percent2 RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ADD wa_output-last_year     TO: lv_sub_lyear, lv_gtot_lyear.&lt;/P&gt;&lt;P&gt;        ADD wa_output-this_year     TO: lv_sub_tyear, lv_gtot_tyear.&lt;/P&gt;&lt;P&gt;        ADD wa_output-percent1      TO: lv_percent1, lv_gtot_percent1.&lt;/P&gt;&lt;P&gt;        ADD wa_output-cum_last_year TO: lv_sub_cum_lyear, lv_gtot_cum_lyear.&lt;/P&gt;&lt;P&gt;        ADD wa_output-cum_this_year TO: lv_sub_cum_tyear, lv_gtot_cum_tyear.&lt;/P&gt;&lt;P&gt;        ADD wa_output-percent2      TO: lv_percent2, lv_gtot_percent2.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT LAST.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write subtotal&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        FORMAT COLOR COL_TOTAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;        WRITE: / text-054,&lt;/P&gt;&lt;P&gt;               AT 40  lv_sub_lyear     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 59  lv_sub_tyear     CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 78  lv_percent1                     RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 93  lv_sub_cum_lyear CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 111 lv_sub_cum_tyear CURRENCY 'PHP' RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 135 lv_percent2                     RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE: sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write grand total&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        SKIP 1.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_TOTAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;        WRITE: / text-055,&lt;/P&gt;&lt;P&gt;               AT 40  lv_gtot_lyear     CURRENCY 'PHP',&lt;/P&gt;&lt;P&gt;               AT 59  lv_gtot_tyear     CURRENCY 'PHP',&lt;/P&gt;&lt;P&gt;               AT 78  lv_gtot_percent1  RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               AT 93  lv_gtot_cum_lyear CURRENCY 'PHP',&lt;/P&gt;&lt;P&gt;               AT 111 lv_gtot_cum_tyear CURRENCY 'PHP',&lt;/P&gt;&lt;P&gt;               AT 135 lv_gtot_percent2  RIGHT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE: sy-uline.&lt;/P&gt;&lt;P&gt;        SKIP 3.&lt;/P&gt;&lt;P&gt;        WRITE: / p_sign  UNDER text-010,&lt;/P&gt;&lt;P&gt;               / p_sgpos UNDER text-010,&lt;/P&gt;&lt;P&gt;               / text-056,&lt;/P&gt;&lt;P&gt;               / p_note  UNDER text-056,&lt;/P&gt;&lt;P&gt;               / p_ntpos UNDER text-056.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "display_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD fill_text_table.&lt;/P&gt;&lt;P&gt;    DEFINE fill_text_table.&lt;/P&gt;&lt;P&gt;      wa_text-sort_order  = &amp;amp;1.&lt;/P&gt;&lt;P&gt;      wa_text-header      = &amp;amp;2.&lt;/P&gt;&lt;P&gt;      wa_text-description = &amp;amp;3.&lt;/P&gt;&lt;P&gt;      wa_text-blart       = &amp;amp;4.&lt;/P&gt;&lt;P&gt;      append wa_text to gt_text.&lt;/P&gt;&lt;P&gt;      clear wa_text.&lt;/P&gt;&lt;P&gt;    END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Importation details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '1' text-048 text-013 lc_kb.&lt;/P&gt;&lt;P&gt;    fill_text_table '2' text-048 text-014 lc_kd.&lt;/P&gt;&lt;P&gt;    fill_text_table '3' text-048 text-015 lc_k3.&lt;/P&gt;&lt;P&gt;    fill_text_table '4' text-048 text-016 lc_k4.&lt;/P&gt;&lt;P&gt;    fill_text_table '5' text-048 text-017 lc_k6.&lt;/P&gt;&lt;P&gt;    fill_text_table '6' text-048 text-018 lc_k5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Finished goods details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '7' text-049 text-019 lc_py.&lt;/P&gt;&lt;P&gt;    fill_text_table '8' text-049 text-020 lc_pf.&lt;/P&gt;&lt;P&gt;    fill_text_table '9' text-049 text-021 lc_pq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Local production items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '10' text-050 text-022 lc_pj.&lt;/P&gt;&lt;P&gt;    fill_text_table '11' text-050 text-023 lc_pm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Local non-production items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '12' text-051 text-024 lc_pt.&lt;/P&gt;&lt;P&gt;    fill_text_table '13' text-051 text-058 lc_x0.&lt;/P&gt;&lt;P&gt;    fill_text_table '14' text-051 text-025 lc_ps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Payroll transactions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '15' text-052 text-026 lc_pp.&lt;/P&gt;&lt;P&gt;    fill_text_table '16' text-052 text-027 lc_kp.&lt;/P&gt;&lt;P&gt;    fill_text_table '17' text-052 text-028 lc_pu.&lt;/P&gt;&lt;P&gt;    fill_text_table '18' text-052 text-029 lc_pd.&lt;/P&gt;&lt;P&gt;    fill_text_table '19' text-052 text-030 lc_pe.&lt;/P&gt;&lt;P&gt;    fill_text_table '20' text-052 text-040 lc_y1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Taxes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '21' text-059 text-042 lc_z1.&lt;/P&gt;&lt;P&gt;    fill_text_table '22' text-059 text-043 lc_z2.&lt;/P&gt;&lt;P&gt;    fill_text_table '23' text-059 text-044 lc_z3.&lt;/P&gt;&lt;P&gt;    fill_text_table '24' text-059 text-045 lc_z4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Others&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    fill_text_table '25' text-053 text-032 lc_pc.&lt;/P&gt;&lt;P&gt;    fill_text_table '26' text-053 text-033 lc_p2.&lt;/P&gt;&lt;P&gt;    fill_text_table '27' text-053 text-036 lc_x1.&lt;/P&gt;&lt;P&gt;    fill_text_table '28' text-053 text-034 lc_po.&lt;/P&gt;&lt;P&gt;    fill_text_table '29' text-053 text-035 lc_pw.&lt;/P&gt;&lt;P&gt;    fill_text_table '30' text-053 text-037 lc_x2.&lt;/P&gt;&lt;P&gt;    fill_text_table '31' text-053 text-038 lc_x3.&lt;/P&gt;&lt;P&gt;    fill_text_table '32' text-053 text-039 lc_pa.&lt;/P&gt;&lt;P&gt;    fill_text_table '33' text-053 text-041 lc_y2.&lt;/P&gt;&lt;P&gt;    fill_text_table '34' text-053 text-046 lc_p8.&lt;/P&gt;&lt;P&gt;    fill_text_table '35' text-053 text-047 lc_p9.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "fill_text_table&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_get_data IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_other_routines IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_other_routines IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD display_header.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE butxt&lt;/P&gt;&lt;P&gt;    FROM t001&lt;/P&gt;&lt;P&gt;    INTO gv_butxt&lt;/P&gt;&lt;P&gt;   WHERE bukrs = p_bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'MONTH_NAMES_GET'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       language                    = sy-langu&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN_CODE                 =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        month_names                 = gt_t247&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     month_names_not_found       = 1&lt;/P&gt;&lt;P&gt;     OTHERS                      = 2&lt;/P&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Month in parameter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE gt_t247 INTO wa_t247 WITH KEY mnr = p_monat.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      ex_month_name = wa_t247-ltx.&lt;/P&gt;&lt;P&gt;      ex_pres_month = wa_t247-ktx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  January&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE gt_t247 INTO wa_t247 WITH KEY mnr = '01'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      ex_jan = wa_t247-ktx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF im_flag = 'X'.&lt;/P&gt;&lt;P&gt;      WRITE: AT /60 gv_butxt,&lt;/P&gt;&lt;P&gt;             AT /60 text-003,&lt;/P&gt;&lt;P&gt;             AT /60 text-004,&lt;/P&gt;&lt;P&gt;             AT  77 ex_month_name,&lt;/P&gt;&lt;P&gt;             AT  86 p_gjahr.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "display_header&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_other_routines IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TOP-OF-PAGE                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  DATA: o_lcl_other_routines TYPE REF TO lcl_other_routines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_lcl_other_routines.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_lcl_other_routines-&amp;gt;display_header&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_flag = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START-OF-SELECTION                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  DATA: o_lcl_get_data TYPE REF TO lcl_get_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_lcl_get_data.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_lcl_get_data-&amp;gt;get_payment_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;END-OF-SELECTION                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_lcl_get_data-&amp;gt;display_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;P.S. Please award points if it helps...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[/code]&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Sep 2007 05:43:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/classes/m-p/2805195#M655463</guid>
      <dc:creator>aris_hidalgo</dc:creator>
      <dc:date>2007-09-06T05:43:55Z</dc:date>
    </item>
  </channel>
</rss>

