<?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: ALV GRID Using oo abap example in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285311#M785811</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_callback_program       = sy-repid&lt;/P&gt;&lt;P&gt;   TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                 = it_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here sy-repid is our program name&lt;/P&gt;&lt;P&gt;it_kna1 is the internal table, this table data we want to print on the ALV grid control.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 Jan 2008 05:04:52 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-18T05:04:52Z</dc:date>
    <item>
      <title>ALV GRID Using oo abap example</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285309#M785809</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Friends,&lt;/P&gt;&lt;P&gt;I am new to oo abap, Can any one give me a basic example how i can create alv grid in oo abap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;DVNS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2008 05:00:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285309#M785809</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-18T05:00:23Z</dc:date>
    </item>
    <item>
      <title>Re: ALV GRID Using oo abap example</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285310#M785810</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check the code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zbcalv_grid_test                        .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS :cl_gui_alv_grid DEFINITION LOAD,&lt;/P&gt;&lt;P&gt;       cl_gui_custom_container DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF itab OCCURS 0,&lt;/P&gt;&lt;P&gt;       matnr TYPE mara-matnr,&lt;/P&gt;&lt;P&gt;       mtart TYPE mara-mtart,&lt;/P&gt;&lt;P&gt;      END OF itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***SCREEN VARIABLE&lt;/P&gt;&lt;P&gt;DATA:  ok_code LIKE sy-ucomm,&lt;/P&gt;&lt;P&gt;       gv_valid(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*****ALV DATA DECLARATION&lt;/P&gt;&lt;P&gt;DATA : gs_layout   TYPE lvc_s_layo,&lt;/P&gt;&lt;P&gt;       container TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;       g_grid TYPE REF TO cl_gui_alv_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**************&lt;STRONG&gt;START-OF-SELECTION&lt;/STRONG&gt;*********&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL SCREEN 1000.&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;      Module  STATUS_1000  OUTPUT&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&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;MODULE status_1000 OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'STATUS1'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'xxx'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT matnr mtart&lt;/P&gt;&lt;P&gt;         FROM mara UP TO 10 ROWS&lt;/P&gt;&lt;P&gt;         INTO TABLE itab.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT container&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      PARENT                      =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        container_name              = 'CONTAINER'&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        cntl_error                  = 1&lt;/P&gt;&lt;P&gt;        cntl_system_error           = 2&lt;/P&gt;&lt;P&gt;        create_error                = 3&lt;/P&gt;&lt;P&gt;        lifetime_error              = 4&lt;/P&gt;&lt;P&gt;        lifetime_dynpro_dynpro_link = 5&lt;/P&gt;&lt;P&gt;        OTHERS                      = 6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    gs_layout-cwidth_opt = 'X'.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT g_grid&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_SHELLSTYLE      = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_LIFETIME        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        i_parent          = container&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_APPL_EVENTS     = space&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_PARENTDBG       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_APPLOGPARENT    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_GRAPHICSPARENT  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_NAME            =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        error_cntl_create = 1&lt;/P&gt;&lt;P&gt;        error_cntl_init   = 2&lt;/P&gt;&lt;P&gt;        error_cntl_link   = 3&lt;/P&gt;&lt;P&gt;        error_dp_create   = 4&lt;/P&gt;&lt;P&gt;        OTHERS            = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD g_grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_BUFFER_ACTIVE               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_BYPASSING_BUFFER            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_CONSISTENCY_CHECK           =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        i_structure_name              = 'MARA'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IS_VARIANT                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_SAVE                        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I_DEFAULT                     = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        is_layout                      =  gs_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IS_PRINT                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IT_SPECIAL_GROUPS             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IT_TOOLBAR_EXCLUDING          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IT_HYPERLINK                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IT_ALV_GRAPHICS               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IT_EXCEPT_QINFO               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        it_outtab                     = itab[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IT_FIELDCATALOG               = T_FIELDCAT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IT_SORT                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IT_FILTER                     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        invalid_parameter_combination = 1&lt;/P&gt;&lt;P&gt;        program_error                 = 2&lt;/P&gt;&lt;P&gt;        too_many_lines                = 3&lt;/P&gt;&lt;P&gt;        OTHERS                        = 4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_1000  OUTPUT&lt;/P&gt;&lt;P&gt;&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;      Module  USER_COMMAND_1000  INPUT&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&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;module USER_COMMAND_1000 input.&lt;/P&gt;&lt;P&gt;***USER INTERATION ON SCREEN 100&lt;/P&gt;&lt;P&gt;  CASE ok_code.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;F03'.&lt;/P&gt;&lt;P&gt;      LEAVE program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;endmodule.                 " USER_COMMAND_1000  INPUT&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2008 05:01:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285310#M785810</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-18T05:01:51Z</dc:date>
    </item>
    <item>
      <title>Re: ALV GRID Using oo abap example</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285311#M785811</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_callback_program       = sy-repid&lt;/P&gt;&lt;P&gt;   TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                 = it_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here sy-repid is our program name&lt;/P&gt;&lt;P&gt;it_kna1 is the internal table, this table data we want to print on the ALV grid control.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2008 05:04:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285311#M785811</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-18T05:04:52Z</dc:date>
    </item>
    <item>
      <title>Re: ALV GRID Using oo abap example</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285312#M785812</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;In SE38 you can type in BC*&lt;STRONG&gt;ALV&lt;/STRONG&gt; and press F4 to check OO ALV examples. It ranges from basic to complex examples. Also, type in SALV* in SE38 if you want to use the factory method of ALV.&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;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2008 05:06:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285312#M785812</guid>
      <dc:creator>aris_hidalgo</dc:creator>
      <dc:date>2008-01-18T05:06:16Z</dc:date>
    </item>
    <item>
      <title>Re: ALV GRID Using oo abap example</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285313#M785813</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;Programming for ALV grid display using the classes involves  creation of a screen and calling it for display.&lt;/P&gt;&lt;P&gt;Since there has to be a linking between the program and the screen we have created , this comes in the form of a container. We use two important classes during the programming for displaying ALV grid, CL_GUI_ALV_GRID and CL_GUI_CUSTOM_CONTAINER.&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Steps To Use ALV Grid in a Program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Declare reference variables for,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       Container (class CL_GUI_CUSTOM_CONTAINER) and &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       Grid (class CL_GUI_ALV_GRID)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example&lt;/P&gt;&lt;P&gt;DATA: grid  TYPE REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;            custom_container  TYPE REF TO cl_gui_custom_container&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Create Standard Screen and a container on that screen  and give a name to that container ( Use custom control button from tool bar) . This name will be used to link the container we have created on the screen with the object reference of class CL_GUI_CUSTOM_CONTAINER, which we have declared in the first step&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. Call the screen which has been created&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. Instantiate the container control and the ALV Grid Control in PBO of the screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF custom_container IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT custom_container&lt;/P&gt;&lt;P&gt;         EXPORTING &lt;/P&gt;&lt;P&gt;        CONTAINER_NAME = &amp;#145;MY_CONTAINER'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT grid&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;       I_PARENT = custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. For displaying the data, call the method set_table_for_first_display of object reference of CL_GUI_ALV_GRID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_BUFFER_ACTIVE               =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_BYPASSING_BUFFER            =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_CONSISTENCY_CHECK           =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_STRUCTURE_NAME              =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IS_VARIANT                    =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_SAVE                        =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_DEFAULT                     =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IS_LAYOUT                     =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IS_PRINT                      =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_SPECIAL_GROUPS             =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_TOOLBAR_EXCLUDING          =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_HYPERLINK                  =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_ALV_GRAPHICS               =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_EXCEPT_QINFO               =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_OUTTAB                     =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_FIELDCATALOG               =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_SORT                       =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_FILTER                     =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXCEPTION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INVALID_PARAMETER_COMBINATION =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROGRAM_ERROR                 =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOO_MANY_LINES                =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                        =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPLANATION OF SOME IMPORTANT PARAMETERS.&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_BYPASSING_BUFFER &amp;amp; I_BUFFER_ACTIVE :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the program is run for the first time, the fields present in the output table and their positions are stored in a buffer.  So the buffer is taken as reference for the successive executions.  In order to bypass this buffer the above parameter values should be &amp;#145;X&amp;#146; and  &amp;#145; &amp;#145;(space)  respectively. If these values are not passed  to the function module, the changes made in the structure of the internal table will not be reflected in the output.&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_STRUCTURE_NAME:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the structure of your output table corresponds to a structure stored in the Data Dictionary (DDIC), the ALV Grid Control can use this information to generate the field catalog automatically. Pass the table structure as parameter. In this case, all fields of this DDIC structure are displayed in the list.&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IS_VARIANT :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It allows the user to save and reuse the layout. It is a structure of type DISVARIANT and contain the display variant name. It  facilitates pre-assignment for a layout, rather than displaying report and then choosing displaying variant.&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_SAVE:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This single character variable specifies whether the user specific display variants can be saved or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The I_SAVE "Options for saving layouts" parameter can have the following values:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U Only user specific layouts can be saved &lt;/P&gt;&lt;P&gt;X Only global layouts can be saved &lt;/P&gt;&lt;P&gt;A Both user specific and global layouts can be saved &lt;/P&gt;&lt;P&gt;Space Layouts can not be saved &lt;/P&gt;&lt;P&gt;IS_LAYOUT:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This structure of type LVC_S_LAYO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is used to control the layout of the ALV.  Two important fields are:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GRID TITLE. : Title of grid &lt;/P&gt;&lt;P&gt;ZEBRA : Alternate lines in list are displayed in different colors. &lt;/P&gt;&lt;P&gt;IT_FIELDCATALOG:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This internal table of type LVC_T_FCAT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is used to specify the position of various fields in the report itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are three ways we can fill the field catalog table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Automatically through data dictionary structure (DDIC). In this case we pass the table structure to I_STRUCTURE_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Manually in ABAP program. Filling the internal table of type LVC_T_FCAT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.                  . With each row corresponding to each column of output table. Each row of this table will hold value like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i). TABNAME &amp;amp; FIELDNAME specifies the reference fields for F1 help&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ii). CTABNAME &amp;amp; CFIELDNAME specifies the reference fields for currency formatting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;iii). QTABNAME &amp;amp; QFIELDNAME specifies the reference fields for quantity formatting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;iv). SELTEXT_L holds the long description of the field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;v).  SELTEXT_M holds the medium description of the field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vi). SELTEXT_S holds the small description of the field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vii). KEY specifies the Key field ( cannot be hidden )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;viii). OUTPUTLEN species the output length of the field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ix). DO_SUM specifies that subtotal is required on this field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x). NO_OUT specifies a hidden field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.  Semi-Automatically by combining the above 2 procedures.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Call function Module REUSE_ALV_FIELDCATALOG_MERGE and pass DDIC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;structure or the output table to generate the field catalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Add additional Rows or modify existing properties of the fields to be displayed.&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHODS OF IMPLEMENTING SOME EXTRA FEATURES&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Set focus to the grid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After CALL METHODgrid-&amp;gt;set_table_for_first_display insert the following stament:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_control=&amp;gt;set_focus EXPORTING control = grid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Refresh grid display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use the grid method REFRESH_TABLE_DISPLAY&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Set the title of the grid&lt;/P&gt;&lt;P&gt;Fill the grid_title field of structure lvc_s_layo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: &lt;/P&gt;&lt;P&gt;gs_layout TYPE lvc_s_layo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gs_layout-grid_title = 'TITLE'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;CALL METHOD go_grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;EXPORTING i_structure_name = 'structure name'&lt;/P&gt;&lt;P&gt;is_layout               = gs_layout&lt;/P&gt;&lt;P&gt;CHANGING   it_outtab               = Output table.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The structure lvc_s_layo contains fields for setting graphical properties, displaying exceptions, calculating totals and enabling specific interaction options&lt;/P&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;&lt;P&gt;Event Handling&lt;/P&gt;&lt;P&gt;We can handle the events triggered by&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. User defined Text Output&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Mouse-controlled Actions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. Self-defined and Standard Functions&lt;/P&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;&lt;P&gt; &lt;/P&gt;&lt;P&gt;Steps for Event Handling&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Define a (local) class for event handling&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Define a method for each event you need to handle&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. Implement your event handler methods.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. Create Object of the above class&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. Link used events and event handler methods of the  receiver object and the grid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example program : Handling &amp;#147;Double Click&amp;#148; Event&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step1.Define a class.&lt;/P&gt;&lt;P&gt;class lcl_my_event_receiver definition.&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;methods:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;handle_double_click&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for event double_click of cl_gui_alv_grid.&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;Step 2. Implement the class&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class lcl_my_event_receiver implementation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method handle_double_click.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message i001(zz) with ' double click event - Triggerd '.&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;endclass.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step 3. Declare and create Object for the local class defined and implemented in steps 1 and 2 respectively&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;o_receiver   TYPE REF TO lcl_my_event_receiver   (Declaration)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create object o_receiver.                                            (Instantiation)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step 4. Link the method for handling the event with the grid object in the PBO of screen after instantiating the grid object&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set handler o_receiver-&amp;gt;handle_double_click for grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXAMPLE PROGRAM TO CHANGE A CLASSICAL REPORT OUTPUT TO A ALV GRID&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This can be used as a template program to convert a classical report layout to a ALV grid.&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Report&amp;lt;Report name&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Grid data Declarations----------------------------------------------*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  INCLUDE ZVINALVD.&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;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for ALV grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_ALV,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         Field1 like table-field1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         Field2 like table-field2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       END OF T_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: I_ALV  TYPE TABLE OF T_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: WA_ALV TYPE T_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-Class declarations----&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;  INCLUDE ZVINALVE.&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;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;/LI&gt;&lt;/UL&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;&lt;P&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;&lt;/P&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;&lt;P&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; &lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Add a checkbox in selection screen for ALV grid display. If it is unchecked&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;output will be of classical type.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK box01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF LINE.                            &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 4(30) &amp;#145;To display repot output as a ALV grid&amp;#146;.                   &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_alv AS CHECKBOX.                              &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF LINE.                              &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK box01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the ALV grid internal table &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF P_ALV = &amp;#145;X&amp;#146;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM ALV_DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM CLASSICAL_DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Alv Display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ALV_DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&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;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Module  STATUS_0100  OUTPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;PBO for ALV Grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;P&gt;MODULE STATUS_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'GRID_DISPLAY'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For parameter IS_VARIANT that is used to set up options for storing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the grid layout as a variant in method set_table_for_first_display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_layout TYPE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-SEL_MODE = 'B'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Optimize column width&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GS_LAYOUT-CWIDTH_OPT = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read data and create objects&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF go_custom_container IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create objects for container and ALV grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CREATE OBJECT go_custom_container&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXPORTING container_name = 'ALV_CONTAINER'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CREATE OBJECT go_grid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXPORTING i_parent = go_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create object for event_receiver class&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and set handlers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CREATE OBJECT o_event_receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SET HANDLER o_event_receiver-&amp;gt;handle_user_command FOR go_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SET HANDLER o_event_receiver-&amp;gt;handle_toolbar FOR go_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Layout (Variant) for ALV grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_layout-report = sy-repid. "Layout to report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To built fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM alv_build_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Grid setup for first display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD go_grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                is_variant      = l_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                i_save          = 'A'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                is_layout       = gs_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CHANGING  it_outtab       = I_ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                it_fieldcatalog = fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Raise event toolbar to show the modified toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD go_grid-&amp;gt;set_toolbar_interactive.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;/P&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;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form ALV_BUILD_FIELDCATALOG.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Store contents of selected line in a internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM alv_build_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR afield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-fieldname = 'FIELD1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-tabname   = 'I_ALV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-coltext   = &amp;#145;Field Name 1&amp;#146;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-lzero     = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-key       = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-outputlen =  XX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND afield TO fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR afield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-fieldname = 'FIELD2'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-tabname   = 'I_ALV'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  afield-coltext   = &amp;#145;Field Name 2&amp;#146;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND afield TO fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " alv_build_fieldcatalog&lt;/P&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;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Module  USER_COMMAND_0100  INPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;PAI for ALV Grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE USER_COMMAND_0100 INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE OK_100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0100  INPUT&lt;/P&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;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  SELECT_LINE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Store contents of selected line in a internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SELECT_LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:l_lines TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH gi_index_rows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR   g_selected_row.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read index of selected rows&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD go_grid-&amp;gt;get_selected_rows&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IMPORTING et_index_rows = gi_index_rows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if any row are selected at all. If not&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table  gi_index_rows will be empty&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE gi_index_rows LINES l_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF l_lines = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              textline1 = 'You must choose a line'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;&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;Read indexes of selected rows.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gi_index_rows INTO g_selected_row.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE I_ALV INDEX g_selected_row-index INTO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                     WA_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SELECT_LINE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Includes:&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. ZVINALVD for data declarations&lt;/P&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;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INCLUDE ZVINALVD .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type pool for icons - used in the toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS: icon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To allow the declaration of o_event_receiver before the&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;lcl_event_receiver class is defined, decale it as deferred in the&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of the program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION DEFERRED.&lt;/P&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;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GLOBAL DATA FOR ALV GRID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OK code for alv grid screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  OK_100(4)           TYPE C,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV control: Layout structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gs_layout           TYPE   lvc_s_layo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Declare reference variables to the ALV grid and the container&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  go_grid             TYPE REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  go_custom_container TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  o_event_receiver    TYPE REF TO lcl_event_receiver,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data for storing information about selected rows in the grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gi_index_rows       TYPE lvc_t_row,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Information about 1 row&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_selected_row      LIKE lvc_s_row.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: fieldcat        TYPE LVC_T_FCAT,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      afield          TYPE LVC_S_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. ZVINALVE for Class/object declarations&lt;/P&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;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INCLUDE ZVINALVE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;C L A S S E S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &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;    METHODS:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IMPORTING e_object e_interactive,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      handle_user_command FOR EVENT user_command OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IMPORTING e_ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &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;*----&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_event_receiver IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Event handler method for event toolbar.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONSTANTS:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants for button type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        c_button_normal           TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        c_menu_and_default_button TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        c_menu                    TYPE i VALUE 2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        c_separator               TYPE i VALUE 3,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        c_radio_button            TYPE i VALUE 4,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        c_checkbox                TYPE i VALUE 5,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        c_menu_entry              TYPE i VALUE 6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA: ls_toolbar              TYPE stb_button.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append seperator to the normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE c_separator TO ls_toolbar-butn_type..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append a new button that to the toolbar. Use E_OBJECT of&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;event toolbar. E_OBJECT is of type CL_ALV_EVENT_TOOLBAR_SET.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This class has one attribute MT_TOOLBAR which is of table type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TTB_BUTTON. The structure is STB_BUTTON&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE 'DISPLAY'        TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE  icon_DISPLAY    TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE 'Displaying customer' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE 'Display'        TO ls_toolbar-text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE ' '             TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND ls_toolbar    TO e_object-&amp;gt;mt_toolbar.&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;  METHOD handle_user_command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Handle own functions defined in the toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE e_ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN 'DISPLAY'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        PERFORM SELECT_LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDCASE.&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;Reward if useful&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2008 05:11:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285313#M785813</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-18T05:11:01Z</dc:date>
    </item>
    <item>
      <title>Re: ALV GRID Using oo abap example</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285314#M785814</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please take a look at my code below. Just create a custom control in screen painter and PF-status and title as well. 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;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Report ZFI_CASH_PROOF_SHEET&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 : R-149&lt;/P&gt;&lt;P&gt;*&amp;amp; TITLE : ZFI_CASH_PROOF_SHEET&lt;/P&gt;&lt;P&gt;*&amp;amp; SAP Module : FI&lt;/P&gt;&lt;P&gt;*&amp;amp; CREATION DATE : 11/06/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;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; DESCRIPTION :&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&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;P&gt;&lt;/P&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;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zfi_cash_proof_sheet&lt;/P&gt;&lt;P&gt;NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;MESSAGE-ID zfi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data Dictionary Table/s * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;TABLES: t012k.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION DEFERRED.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Global Data/s * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;DATA: gt_fieldcat TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;wa_fieldcat LIKE LINE OF gt_fieldcat,&lt;/P&gt;&lt;P&gt;ok_code TYPE syst-ucomm,&lt;/P&gt;&lt;P&gt;save_ok TYPE syst-ucomm,&lt;/P&gt;&lt;P&gt;g_repid TYPE syst-repid,&lt;/P&gt;&lt;P&gt;gs_layout TYPE lvc_s_layo,&lt;/P&gt;&lt;P&gt;gv_container TYPE scrfname VALUE 'CUSTOM_CONTROL',&lt;/P&gt;&lt;P&gt;lcl_grid1 TYPE REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;lcl_custom_container TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;gs_disvariant TYPE disvariant,&lt;/P&gt;&lt;P&gt;lcl_event_receiver TYPE REF TO lcl_event_receiver,&lt;/P&gt;&lt;P&gt;gt_sort TYPE lvc_t_sort,&lt;/P&gt;&lt;P&gt;gs_sort TYPE lvc_s_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Global Structure/s * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;TYPES: BEGIN OF t_output,&lt;/P&gt;&lt;P&gt;bukrs TYPE bsis-bukrs,&lt;/P&gt;&lt;P&gt;hbkid TYPE t012k-hbkid,&lt;/P&gt;&lt;P&gt;hktid TYPE t012k-hktid,&lt;/P&gt;&lt;P&gt;cash_in_bank TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;one_day TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;two_days TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;more_than_two_days TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;misc_collection TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;outs_rel_checks TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;treas_transactions TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;tot_cash_bal TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;outs_unrel_checks TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;imp_docs_due TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;est_cash_balance TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;END OF t_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: 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;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_bukrs FOR t012k-bukrs OBLIGATORY,&lt;/P&gt;&lt;P&gt;s_hbkid FOR t012k-hbkid,&lt;/P&gt;&lt;P&gt;s_hktid FOR t012k-hktid.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_budat TYPE bsak-budat 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;*/ CLASS DEFINITION/S */&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_data_def DEFINITION &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS lcl_data_def DEFINITION ABSTRACT.&lt;/P&gt;&lt;P&gt;PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_t012k,&lt;/P&gt;&lt;P&gt;bukrs TYPE t012k-bukrs,&lt;/P&gt;&lt;P&gt;hbkid TYPE t012k-hbkid,&lt;/P&gt;&lt;P&gt;hktid TYPE t012k-hktid,&lt;/P&gt;&lt;P&gt;hkont TYPE t012k-hkont,&lt;/P&gt;&lt;P&gt;END OF t_t012k.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_bsis_bsas,&lt;/P&gt;&lt;P&gt;bukrs TYPE bsis-bukrs,&lt;/P&gt;&lt;P&gt;hkont TYPE bsis-hkont,&lt;/P&gt;&lt;P&gt;belnr TYPE bsis-belnr,&lt;/P&gt;&lt;P&gt;buzei TYPE bsis-buzei,&lt;/P&gt;&lt;P&gt;gjahr TYPE bsis-gjahr,&lt;/P&gt;&lt;P&gt;budat TYPE bsis-budat,&lt;/P&gt;&lt;P&gt;blart TYPE bsis-blart,&lt;/P&gt;&lt;P&gt;dmbtr TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;shkzg TYPE bsis-shkzg,&lt;/P&gt;&lt;P&gt;END OF t_bsis_bsas.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_bsid_bsad,&lt;/P&gt;&lt;P&gt;bukrs TYPE bsid-bukrs,&lt;/P&gt;&lt;P&gt;belnr TYPE bsid-belnr,&lt;/P&gt;&lt;P&gt;gjahr TYPE bsid-gjahr,&lt;/P&gt;&lt;P&gt;blart TYPE bsid-blart,&lt;/P&gt;&lt;P&gt;buzei TYPE bsid-buzei,&lt;/P&gt;&lt;P&gt;budat TYPE bsid-budat,&lt;/P&gt;&lt;P&gt;dmbtr TYPE bsid-dmbtr,&lt;/P&gt;&lt;P&gt;shkzg TYPE bsid-shkzg,&lt;/P&gt;&lt;P&gt;bschl TYPE bsid-bschl,&lt;/P&gt;&lt;P&gt;END OF t_bsid_bsad.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_cash_in_bank,&lt;/P&gt;&lt;P&gt;bukrs TYPE bsis-bukrs,&lt;/P&gt;&lt;P&gt;hkont TYPE bsis-hkont,&lt;/P&gt;&lt;P&gt;dmbtr TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;END OF t_cash_in_bank.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_outs_trade_coll,&lt;/P&gt;&lt;P&gt;bukrs TYPE bsis-bukrs,&lt;/P&gt;&lt;P&gt;hkont TYPE bsis-hkont,&lt;/P&gt;&lt;P&gt;one_day TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;two_days TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;more_than_two_days TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;END OF t_outs_trade_coll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_zcheck_monitor,&lt;/P&gt;&lt;P&gt;zzbukr TYPE zcheck_monitor-zzbukr,&lt;/P&gt;&lt;P&gt;zhbkid TYPE zcheck_monitor-zhbkid,&lt;/P&gt;&lt;P&gt;zhktid TYPE zcheck_monitor-zhktid,&lt;/P&gt;&lt;P&gt;zubhkt TYPE zcheck_monitor-zubhkt,&lt;/P&gt;&lt;P&gt;zrwbtr TYPE zcheck_monitor-zrwbtr,&lt;/P&gt;&lt;P&gt;zrlsvd TYPE zcheck_monitor-zrlsvd,&lt;/P&gt;&lt;P&gt;zrlsdt TYPE zcheck_monitor-zrlsdt,&lt;/P&gt;&lt;P&gt;END OF t_zcheck_monitor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_zcheck_monitor_collect,&lt;/P&gt;&lt;P&gt;zzbukr TYPE zcheck_monitor-zzbukr,&lt;/P&gt;&lt;P&gt;zubhkt TYPE zcheck_monitor-zubhkt,&lt;/P&gt;&lt;P&gt;zrwbtr TYPE zcheck_monitor-zrwbtr,&lt;/P&gt;&lt;P&gt;END OF t_zcheck_monitor_collect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_company,&lt;/P&gt;&lt;P&gt;bukrs TYPE t001-bukrs,&lt;/P&gt;&lt;P&gt;butxt TYPE t001-butxt,&lt;/P&gt;&lt;P&gt;END OF t_company.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_header,&lt;/P&gt;&lt;P&gt;bukrs TYPE t001-bukrs,&lt;/P&gt;&lt;P&gt;butxt TYPE t001-butxt,&lt;/P&gt;&lt;P&gt;hbkid TYPE t012k-hbkid,&lt;/P&gt;&lt;P&gt;hktid TYPE t012k-hktid,&lt;/P&gt;&lt;P&gt;expand(1) TYPE c,&lt;/P&gt;&lt;P&gt;END OF t_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_t012k TYPE HASHED TABLE OF t_t012k&lt;/P&gt;&lt;P&gt;WITH UNIQUE KEY bukrs hbkid hktid,&lt;/P&gt;&lt;P&gt;gt_bsis TYPE STANDARD TABLE OF t_bsis_bsas,&lt;/P&gt;&lt;P&gt;wa_bsis LIKE LINE OF gt_bsis,&lt;/P&gt;&lt;P&gt;gt_bsas LIKE gt_bsis,&lt;/P&gt;&lt;P&gt;gt_bsis_bsas LIKE gt_bsas,&lt;/P&gt;&lt;P&gt;gt_bsid_bsad TYPE STANDARD TABLE OF t_bsid_bsad&lt;/P&gt;&lt;P&gt;WITH NON-UNIQUE KEY bukrs belnr gjahr blart,&lt;/P&gt;&lt;P&gt;gt_bsid LIKE gt_bsid_bsad,&lt;/P&gt;&lt;P&gt;gt_bsad LIKE gt_bsid_bsad,&lt;/P&gt;&lt;P&gt;gt_bsik LIKE gt_bsid_bsad,&lt;/P&gt;&lt;P&gt;gt_bsak LIKE gt_bsid_bsad,&lt;/P&gt;&lt;P&gt;gt_cash_in_bank TYPE HASHED TABLE OF t_cash_in_bank&lt;/P&gt;&lt;P&gt;WITH UNIQUE KEY bukrs hkont,&lt;/P&gt;&lt;P&gt;gt_misc_collection LIKE gt_cash_in_bank,&lt;/P&gt;&lt;P&gt;wa_misc_collection LIKE LINE OF gt_misc_collection,&lt;/P&gt;&lt;P&gt;gt_importation_docs_due LIKE gt_cash_in_bank,&lt;/P&gt;&lt;P&gt;wa_importation_docs_due LIKE LINE OF gt_importation_docs_due,&lt;/P&gt;&lt;P&gt;wa_cash_in_bank LIKE LINE OF gt_cash_in_bank,&lt;/P&gt;&lt;P&gt;gt_outs_trade_coll TYPE HASHED TABLE OF t_outs_trade_coll&lt;/P&gt;&lt;P&gt;WITH UNIQUE KEY bukrs hkont,&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll LIKE LINE OF gt_outs_trade_coll,&lt;/P&gt;&lt;P&gt;gt_zcheck_monitor TYPE STANDARD TABLE OF t_zcheck_monitor,&lt;/P&gt;&lt;P&gt;gt_zcheck_monitor_collect TYPE HASHED TABLE OF t_zcheck_monitor_collect&lt;/P&gt;&lt;P&gt;WITH UNIQUE KEY zzbukr zubhkt,&lt;/P&gt;&lt;P&gt;wa_zcheck_monitor_collect LIKE LINE OF gt_zcheck_monitor_collect,&lt;/P&gt;&lt;P&gt;gt_outs_rel_checks LIKE gt_cash_in_bank,&lt;/P&gt;&lt;P&gt;wa_outs_rel_checks LIKE LINE OF gt_outs_rel_checks,&lt;/P&gt;&lt;P&gt;gt_outs_unrel_checks LIKE gt_cash_in_bank,&lt;/P&gt;&lt;P&gt;wa_outs_unrel_checks LIKE LINE OF gt_outs_unrel_checks,&lt;/P&gt;&lt;P&gt;gt_company TYPE HASHED TABLE OF t_company&lt;/P&gt;&lt;P&gt;WITH UNIQUE KEY bukrs,&lt;/P&gt;&lt;P&gt;wa_company LIKE LINE OF gt_company,&lt;/P&gt;&lt;P&gt;gt_header TYPE STANDARD TABLE OF t_header,&lt;/P&gt;&lt;P&gt;wa_header LIKE LINE OF gt_header.&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_data_def DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS lcl_get_data DEFINITION INHERITING FROM lcl_data_def.&lt;/P&gt;&lt;P&gt;PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;METHODS: get_bank_details,&lt;/P&gt;&lt;P&gt;get_gl_balances,&lt;/P&gt;&lt;P&gt;get_cust_items,&lt;/P&gt;&lt;P&gt;get_vend_items,&lt;/P&gt;&lt;P&gt;sum_gl_accounts,&lt;/P&gt;&lt;P&gt;monday_routines&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;im_date TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_bukrs TYPE bsis-bukrs&lt;/P&gt;&lt;P&gt;im_hkont TYPE bsis-hkont&lt;/P&gt;&lt;P&gt;im_budat TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_dmbtr TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;sunday_routines&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;im_date TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_bukrs TYPE bsis-bukrs&lt;/P&gt;&lt;P&gt;im_hkont TYPE bsis-hkont&lt;/P&gt;&lt;P&gt;im_budat TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_dmbtr TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;tuesday_routines&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;im_date TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_bukrs TYPE bsis-bukrs&lt;/P&gt;&lt;P&gt;im_hkont TYPE bsis-hkont&lt;/P&gt;&lt;P&gt;im_budat TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_dmbtr TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;other_days_routines&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;im_date TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_bukrs TYPE bsis-bukrs&lt;/P&gt;&lt;P&gt;im_hkont TYPE bsis-hkont&lt;/P&gt;&lt;P&gt;im_budat TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_dmbtr TYPE bsis-dmbtr,&lt;/P&gt;&lt;P&gt;difference_in_days&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;im_date TYPE bsis-budat&lt;/P&gt;&lt;P&gt;im_budat TYPE bsis-budat&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ex_diff TYPE vtbbewe-atage,&lt;/P&gt;&lt;P&gt;outs_check_released,&lt;/P&gt;&lt;P&gt;process_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;CONSTANTS: lc_credit TYPE bsis-shkzg VALUE 'H',&lt;/P&gt;&lt;P&gt;lc_debit TYPE bsis-shkzg VALUE 'S',&lt;/P&gt;&lt;P&gt;lc_nt TYPE bsis-blart VALUE 'NT',&lt;/P&gt;&lt;P&gt;lc_nc TYPE bsis-blart VALUE 'NC',&lt;/P&gt;&lt;P&gt;lc_gl_zero TYPE bsis-hkont VALUE '+++++++++0',&lt;/P&gt;&lt;P&gt;lc_gl_one TYPE bsis-hkont VALUE '+++++++++1',&lt;/P&gt;&lt;P&gt;lc_gl_three TYPE bsis-hkont VALUE '+++++++++3',&lt;/P&gt;&lt;P&gt;lc_monday TYPE dtresr-weekday VALUE 'Monday',"#EC NOTEXT&lt;/P&gt;&lt;P&gt;lc_tuesday TYPE dtresr-weekday VALUE 'Tuesday',"#EC NOTEXT&lt;/P&gt;&lt;P&gt;lc_sunday TYPE dtresr-weekday VALUE 'Sunday'."#EC NOTEXT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: lc_k3 TYPE bsik-blart VALUE 'K3',&lt;/P&gt;&lt;P&gt;lc_k4 TYPE bsik-blart VALUE 'K4',&lt;/P&gt;&lt;P&gt;lc_k5 TYPE bsik-blart VALUE 'K5',&lt;/P&gt;&lt;P&gt;lc_k6 TYPE bsik-blart VALUE 'K6',&lt;/P&gt;&lt;P&gt;lc_k7 TYPE bsik-blart VALUE 'K7',&lt;/P&gt;&lt;P&gt;lc_kb TYPE bsik-blart VALUE 'KB',&lt;/P&gt;&lt;P&gt;lc_kd TYPE bsik-blart VALUE 'KD',&lt;/P&gt;&lt;P&gt;lc_31 TYPE bsid-blart VALUE '31',&lt;/P&gt;&lt;P&gt;lc_001 TYPE bsid-buzei VALUE '001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lv_hkont TYPE bsis-hkont,&lt;/P&gt;&lt;P&gt;lr_hkont TYPE RANGE OF bsis-hkont,&lt;/P&gt;&lt;P&gt;wa_hkont LIKE LINE OF lr_hkont,&lt;/P&gt;&lt;P&gt;lr_blart TYPE RANGE OF bsik-blart,&lt;/P&gt;&lt;P&gt;wa_blart LIKE LINE OF lr_blart,&lt;/P&gt;&lt;P&gt;lv_hkont_new TYPE bsis-hkont,&lt;/P&gt;&lt;P&gt;lv_hkont_old TYPE bsis-hkont,&lt;/P&gt;&lt;P&gt;lv_date TYPE vtbbewe-atage,&lt;/P&gt;&lt;P&gt;lv_budat TYPE bsis-budat,&lt;/P&gt;&lt;P&gt;lv_day TYPE dtresr-weekday.&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_get_data DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_alv_routines DEFINITION &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS lcl_alv_routines DEFINITION INHERITING FROM lcl_data_def.&lt;/P&gt;&lt;P&gt;PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;METHODS: build_fieldcat FINAL,&lt;/P&gt;&lt;P&gt;sort_alv_display FINAL.&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_alv_routines DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION.&lt;/P&gt;&lt;P&gt;PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;METHODS:&lt;/P&gt;&lt;P&gt;handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;er_data_changed,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;handle_top_of_page FOR EVENT print_top_of_page OF cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;handle_top_of_list FOR EVENT print_top_of_list OF cl_gui_alv_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;DATA: ls_good TYPE lvc_s_modi,&lt;/P&gt;&lt;P&gt;lv_treas_transactions TYPE t_output-tot_cash_bal,&lt;/P&gt;&lt;P&gt;lv_tot_cash_bal TYPE t_output-tot_cash_bal,&lt;/P&gt;&lt;P&gt;lv_outs_unrel_checks TYPE t_output-outs_unrel_checks,&lt;/P&gt;&lt;P&gt;lv_imp_docs_due TYPE t_output-imp_docs_due,&lt;/P&gt;&lt;P&gt;lv_est_cash_balance TYPE t_output-est_cash_balance.&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_event_receiver DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*/ CLASS IMPLEMENTATION/S */&lt;/P&gt;&lt;P&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;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS lcl_get_data IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD get_bank_details &lt;/P&gt;&lt;P&gt;METHOD get_bank_details.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;fs_t012k&amp;gt; LIKE LINE OF gt_t012k.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get bank account/s and their corresponding G/L account/s &lt;/P&gt;&lt;P&gt;SELECT bukrs hbkid&lt;/P&gt;&lt;P&gt;hktid hkont&lt;/P&gt;&lt;P&gt;FROM t012k&lt;/P&gt;&lt;P&gt;INTO TABLE gt_t012k&lt;/P&gt;&lt;P&gt;WHERE bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;AND hbkid IN s_hbkid&lt;/P&gt;&lt;P&gt;AND hktid IN s_hktid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT gt_t012k[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SORT gt_t012k BY bukrs hbkid hktid hkont.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get company name &lt;/P&gt;&lt;P&gt;SELECT bukrs butxt&lt;/P&gt;&lt;P&gt;FROM t001&lt;/P&gt;&lt;P&gt;INTO TABLE gt_company&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN gt_t012k&lt;/P&gt;&lt;P&gt;WHERE bukrs = gt_t012k-bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT gt_t012k ASSIGNING &amp;lt;fs_t012k&amp;gt;.&lt;/P&gt;&lt;P&gt;wa_hkont-sign = 'I'.&lt;/P&gt;&lt;P&gt;wa_hkont-option = 'EQ'.&lt;/P&gt;&lt;P&gt;wa_hkont-low = &amp;lt;fs_t012k&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;SHIFT wa_hkont-low LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;APPEND wa_hkont TO lr_hkont.&lt;/P&gt;&lt;P&gt;CLEAR wa_hkont.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_hkont_new = &amp;lt;fs_t012k&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;IF lv_hkont_new lv_hkont_old.&lt;/P&gt;&lt;P&gt;CLEAR lv_hkont.&lt;/P&gt;&lt;P&gt;lv_hkont = &amp;lt;fs_t012k&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;DO 4 TIMES.&lt;/P&gt;&lt;P&gt;ADD 1 TO lv_hkont.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = lv_hkont&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = lv_hkont.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_hkont-sign = 'I'.&lt;/P&gt;&lt;P&gt;wa_hkont-option = 'EQ'.&lt;/P&gt;&lt;P&gt;wa_hkont-low = lv_hkont.&lt;/P&gt;&lt;P&gt;SHIFT wa_hkont-low LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;APPEND wa_hkont TO lr_hkont.&lt;/P&gt;&lt;P&gt;CLEAR wa_hkont.&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;lv_hkont_old = lv_hkont_new.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;get_gl_balances.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "get_bank_details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD get_gl_balances &lt;/P&gt;&lt;P&gt;METHOD get_gl_balances.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get G/L line items(Open items) &lt;/P&gt;&lt;P&gt;SELECT bukrs hkont belnr&lt;/P&gt;&lt;P&gt;buzei gjahr budat&lt;/P&gt;&lt;P&gt;blart dmbtr shkzg&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_t012k&lt;/P&gt;&lt;P&gt;WHERE bukrs = gt_t012k-bukrs&lt;/P&gt;&lt;P&gt;AND hkont IN lr_hkont&lt;/P&gt;&lt;P&gt;AND budat &amp;lt;= p_budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get G/L line items(Cleared items) &lt;/P&gt;&lt;P&gt;SELECT bukrs hkont belnr&lt;/P&gt;&lt;P&gt;buzei gjahr budat&lt;/P&gt;&lt;P&gt;blart dmbtr shkzg&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_t012k&lt;/P&gt;&lt;P&gt;WHERE bukrs = gt_t012k-bukrs&lt;/P&gt;&lt;P&gt;AND hkont IN lr_hkont&lt;/P&gt;&lt;P&gt;AND budat &amp;lt;= p_budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND LINES OF gt_bsis TO gt_bsis_bsas.&lt;/P&gt;&lt;P&gt;APPEND LINES OF gt_bsas TO gt_bsis_bsas.&lt;/P&gt;&lt;P&gt;IF NOT gt_bsis_bsas[] IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;get_cust_items.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;get_vend_items.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;sum_gl_accounts.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "get_gl_balances&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD get_cust_items &lt;/P&gt;&lt;P&gt;METHOD get_cust_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get customer line items(Open items) &lt;/P&gt;&lt;P&gt;SELECT bukrs belnr gjahr blart&lt;/P&gt;&lt;P&gt;buzei budat dmbtr shkzg&lt;/P&gt;&lt;P&gt;bschl&lt;/P&gt;&lt;P&gt;FROM bsid&lt;/P&gt;&lt;P&gt;INTO TABLE gt_bsid&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN gt_bsis_bsas&lt;/P&gt;&lt;P&gt;WHERE bukrs = gt_bsis_bsas-bukrs&lt;/P&gt;&lt;P&gt;AND gjahr = gt_bsis_bsas-gjahr&lt;/P&gt;&lt;P&gt;AND belnr = gt_bsis_bsas-belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get customer line items(Cleared items) &lt;/P&gt;&lt;P&gt;SELECT bukrs belnr gjahr blart&lt;/P&gt;&lt;P&gt;buzei budat dmbtr shkzg&lt;/P&gt;&lt;P&gt;bschl&lt;/P&gt;&lt;P&gt;FROM bsad&lt;/P&gt;&lt;P&gt;INTO TABLE gt_bsad&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN gt_bsis_bsas&lt;/P&gt;&lt;P&gt;WHERE bukrs = gt_bsis_bsas-bukrs&lt;/P&gt;&lt;P&gt;AND gjahr = gt_bsis_bsas-gjahr&lt;/P&gt;&lt;P&gt;AND belnr = gt_bsis_bsas-belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND LINES OF gt_bsid TO gt_bsid_bsad.&lt;/P&gt;&lt;P&gt;APPEND LINES OF gt_bsad TO gt_bsid_bsad.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "get_cust_items&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD get_vend_items &lt;/P&gt;&lt;P&gt;METHOD get_vend_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get vendor line items(Open items) &lt;/P&gt;&lt;P&gt;SELECT bukrs belnr gjahr blart&lt;/P&gt;&lt;P&gt;buzei budat dmbtr shkzg&lt;/P&gt;&lt;P&gt;bschl&lt;/P&gt;&lt;P&gt;FROM bsik&lt;/P&gt;&lt;P&gt;INTO TABLE gt_bsik&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN gt_bsis_bsas&lt;/P&gt;&lt;P&gt;WHERE bukrs = gt_bsis_bsas-bukrs&lt;/P&gt;&lt;P&gt;AND gjahr = gt_bsis_bsas-gjahr&lt;/P&gt;&lt;P&gt;AND belnr = gt_bsis_bsas-belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DEFINE m_blart.&lt;/P&gt;&lt;P&gt;wa_blart-sign = 'I'.&lt;/P&gt;&lt;P&gt;wa_blart-option = 'EQ'.&lt;/P&gt;&lt;P&gt;wa_blart-low = &amp;amp;1.&lt;/P&gt;&lt;P&gt;append wa_blart to lr_blart.&lt;/P&gt;&lt;P&gt;clear wa_blart.&lt;/P&gt;&lt;P&gt;END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;m_blart lc_k3.&lt;/P&gt;&lt;P&gt;m_blart lc_k4.&lt;/P&gt;&lt;P&gt;m_blart lc_k5.&lt;/P&gt;&lt;P&gt;m_blart lc_k6.&lt;/P&gt;&lt;P&gt;m_blart lc_k7.&lt;/P&gt;&lt;P&gt;m_blart lc_kb.&lt;/P&gt;&lt;P&gt;m_blart lc_kd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT gt_bsik] IS INITIAL AND NOT lr_blart[ IS INITIAL.&lt;/P&gt;&lt;P&gt;DELETE gt_bsik WHERE blart NOT IN lr_blart[].&lt;/P&gt;&lt;P&gt;DELETE gt_bsik WHERE bschl lc_31.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "get_vend_items&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD sum_gl_accounts &lt;/P&gt;&lt;P&gt;METHOD sum_gl_accounts.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;fs_bsis_bsas&amp;gt; LIKE LINE OF gt_bsis_bsas,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_bsis&amp;gt; LIKE LINE OF gt_bsis,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_bsid_bsad&amp;gt; LIKE LINE OF gt_bsid_bsad,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_bsik&amp;gt; LIKE LINE OF gt_bsik,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_rel_checks&amp;gt; LIKE LINE OF gt_outs_rel_checks,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_unrel_checks&amp;gt; LIKE LINE OF gt_outs_unrel_checks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT gt_bsis_bsas BY bukrs hkont belnr.&lt;/P&gt;&lt;P&gt;LOOP AT gt_bsis_bsas ASSIGNING &amp;lt;fs_bsis_bsas&amp;gt;.&lt;/P&gt;&lt;P&gt;IF &amp;lt;fs_bsis_bsas&amp;gt;-shkzg = lc_credit. "H&lt;/P&gt;&lt;P&gt;MULTIPLY &amp;lt;fs_bsis_bsas&amp;gt;-dmbtr BY -1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*/Routine for cash in bank&lt;/P&gt;&lt;P&gt;IF &amp;lt;fs_bsis_bsas&amp;gt;-hkont CP lc_gl_zero.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING &amp;lt;fs_bsis_bsas&amp;gt; TO wa_cash_in_bank.&lt;/P&gt;&lt;P&gt;COLLECT wa_cash_in_bank INTO gt_cash_in_bank.&lt;/P&gt;&lt;P&gt;CLEAR wa_cash_in_bank.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*/Routine for miscellaneous collection&lt;/P&gt;&lt;P&gt;IF &amp;lt;fs_bsis_bsas&amp;gt;-blart = lc_nt OR&lt;/P&gt;&lt;P&gt;&amp;lt;fs_bsis_bsas&amp;gt;-blart = lc_nc AND&lt;/P&gt;&lt;P&gt;&amp;lt;fs_bsis_bsas&amp;gt;-shkzg = lc_debit AND&lt;/P&gt;&lt;P&gt;&amp;lt;fs_bsis_bsas&amp;gt;-hkont CP lc_gl_one.&lt;/P&gt;&lt;P&gt;READ TABLE gt_bsid_bsad ASSIGNING &amp;lt;fs_bsid_bsad&amp;gt; WITH TABLE KEY bukrs = &amp;lt;fs_bsis_bsas&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;belnr = &amp;lt;fs_bsis_bsas&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;gjahr = &amp;lt;fs_bsis_bsas&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;blart = &amp;lt;fs_bsis_bsas&amp;gt;-blart.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING &amp;lt;fs_bsis_bsas&amp;gt; TO wa_misc_collection.&lt;/P&gt;&lt;P&gt;COLLECT wa_misc_collection INTO gt_misc_collection.&lt;/P&gt;&lt;P&gt;CLEAR wa_misc_collection.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*/Routine for importation docs.due&lt;/P&gt;&lt;P&gt;IF &amp;lt;fs_bsis_bsas&amp;gt;-shkzg = lc_credit.&lt;/P&gt;&lt;P&gt;READ TABLE gt_bsik ASSIGNING &amp;lt;fs_bsik&amp;gt; WITH TABLE KEY bukrs = &amp;lt;fs_bsis_bsas&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;belnr = &amp;lt;fs_bsis_bsas&amp;gt;-belnr&lt;/P&gt;&lt;P&gt;gjahr = &amp;lt;fs_bsis_bsas&amp;gt;-gjahr&lt;/P&gt;&lt;P&gt;blart = &amp;lt;fs_bsis_bsas&amp;gt;-blart.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING &amp;lt;fs_bsis_bsas&amp;gt; TO wa_importation_docs_due.&lt;/P&gt;&lt;P&gt;COLLECT wa_importation_docs_due INTO gt_importation_docs_due.&lt;/P&gt;&lt;P&gt;CLEAR gt_importation_docs_due.&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;IF NOT gt_bsis[] IS INITIAL.&lt;/P&gt;&lt;P&gt;IF NOT gt_bsis[] IS INITIAL.&lt;/P&gt;&lt;P&gt;lv_budat = p_budat.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'DATE_TO_DAY'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;date = lv_budat&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;weekday = lv_day.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT gt_bsis ASSIGNING &amp;lt;fs_bsis&amp;gt;.&lt;/P&gt;&lt;P&gt;*/Routine for outstanding trade collection&lt;/P&gt;&lt;P&gt;IF &amp;lt;fs_bsis&amp;gt;-shkzg = lc_debit AND &amp;lt;fs_bsis&amp;gt;-blart lc_nt.&lt;/P&gt;&lt;P&gt;IF lv_day = lc_monday.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;monday_routines&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;im_date = p_budat&lt;/P&gt;&lt;P&gt;im_bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;im_hkont = &amp;lt;fs_bsis&amp;gt;-hkont&lt;/P&gt;&lt;P&gt;im_budat = &amp;lt;fs_bsis&amp;gt;-budat&lt;/P&gt;&lt;P&gt;im_dmbtr = &amp;lt;fs_bsis&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ELSEIF lv_day = lc_sunday.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;sunday_routines&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;im_date = p_budat&lt;/P&gt;&lt;P&gt;im_bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;im_hkont = &amp;lt;fs_bsis&amp;gt;-hkont&lt;/P&gt;&lt;P&gt;im_budat = &amp;lt;fs_bsis&amp;gt;-budat&lt;/P&gt;&lt;P&gt;im_dmbtr = &amp;lt;fs_bsis&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ELSEIF lv_day = lc_tuesday.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;tuesday_routines&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;im_date = p_budat&lt;/P&gt;&lt;P&gt;im_bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;im_hkont = &amp;lt;fs_bsis&amp;gt;-hkont&lt;/P&gt;&lt;P&gt;im_budat = &amp;lt;fs_bsis&amp;gt;-budat&lt;/P&gt;&lt;P&gt;im_dmbtr = &amp;lt;fs_bsis&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;other_days_routines&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;im_date = p_budat&lt;/P&gt;&lt;P&gt;im_bukrs = &amp;lt;fs_bsis&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;im_hkont = &amp;lt;fs_bsis&amp;gt;-hkont&lt;/P&gt;&lt;P&gt;im_budat = &amp;lt;fs_bsis&amp;gt;-budat&lt;/P&gt;&lt;P&gt;im_dmbtr = &amp;lt;fs_bsis&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*/Routine for outstanding released checks&lt;/P&gt;&lt;P&gt;IF &amp;lt;fs_bsis&amp;gt;-hkont CP lc_gl_three AND &amp;lt;fs_bsis&amp;gt;-shkzg = lc_debit.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING &amp;lt;fs_bsis&amp;gt; TO wa_outs_rel_checks.&lt;/P&gt;&lt;P&gt;COLLECT wa_outs_rel_checks INTO gt_outs_rel_checks.&lt;/P&gt;&lt;P&gt;CLEAR wa_outs_rel_checks.&lt;/P&gt;&lt;P&gt;*/Routine for outstanding unreleased checks&lt;/P&gt;&lt;P&gt;ELSEIF &amp;lt;fs_bsis&amp;gt;-hkont CP lc_gl_three AND &amp;lt;fs_bsis&amp;gt;-shkzg = lc_credit.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING &amp;lt;fs_bsis&amp;gt; TO wa_outs_unrel_checks.&lt;/P&gt;&lt;P&gt;COLLECT wa_outs_unrel_checks INTO gt_outs_unrel_checks.&lt;/P&gt;&lt;P&gt;CLEAR wa_outs_unrel_checks.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*/Routine for outstanding released check/s&lt;/P&gt;&lt;P&gt;*/this routine will get all records from custom table zcheck_monitor&lt;/P&gt;&lt;P&gt;*/where status is released to vendor&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;outs_check_released.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT gt_outs_rel_checks[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subtract debit line items from ZFE002 &lt;/P&gt;&lt;P&gt;LOOP AT gt_outs_rel_checks ASSIGNING &amp;lt;fs_outs_rel_checks&amp;gt;.&lt;/P&gt;&lt;P&gt;CLEAR wa_zcheck_monitor_collect.&lt;/P&gt;&lt;P&gt;READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect&lt;/P&gt;&lt;P&gt;WITH TABLE KEY zzbukr = &amp;lt;fs_outs_rel_checks&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;zubhkt = &amp;lt;fs_outs_rel_checks&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_rel_checks&amp;gt;-dmbtr = wa_zcheck_monitor_collect-zrwbtr -&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_rel_checks&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_rel_checks&amp;gt;-dmbtr = 0 - &amp;lt;fs_outs_rel_checks&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF NOT gt_outs_unrel_checks[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subtract ZFE002 records from credit line items &lt;/P&gt;&lt;P&gt;LOOP AT gt_outs_unrel_checks ASSIGNING &amp;lt;fs_outs_unrel_checks&amp;gt;.&lt;/P&gt;&lt;P&gt;CLEAR wa_zcheck_monitor_collect.&lt;/P&gt;&lt;P&gt;READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect&lt;/P&gt;&lt;P&gt;WITH TABLE KEY zzbukr = &amp;lt;fs_outs_unrel_checks&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;zubhkt = &amp;lt;fs_outs_unrel_checks&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_unrel_checks&amp;gt;-dmbtr = ABS( &amp;lt;fs_outs_unrel_checks&amp;gt;-dmbtr ) -&lt;/P&gt;&lt;P&gt;ABS( wa_zcheck_monitor_collect-zrwbtr ).&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Move records to output table &lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;process_data.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "sum_gl_accounts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD monday_routines &lt;/P&gt;&lt;P&gt;METHOD monday_routines.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-bukrs = im_bukrs.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-hkont = im_hkont.&lt;/P&gt;&lt;P&gt;CLEAR lv_date.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;difference_in_days&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;im_date = im_date&lt;/P&gt;&lt;P&gt;im_budat = im_budat&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;ex_diff = lv_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One day &lt;/P&gt;&lt;P&gt;IF lv_date = 3.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-one_day = im_dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Two days &lt;/P&gt;&lt;P&gt;ELSEIF lv_date = 4.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-two_days = im_dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More than two days &lt;/P&gt;&lt;P&gt;ELSEIF lv_date &amp;gt; 4.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-more_than_two_days = im_dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.&lt;/P&gt;&lt;P&gt;CLEAR wa_outs_trade_coll.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "monday_routines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD sunday_routines &lt;/P&gt;&lt;P&gt;METHOD sunday_routines.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-bukrs = im_bukrs.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-hkont = im_hkont.&lt;/P&gt;&lt;P&gt;CLEAR lv_date.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;difference_in_days&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;im_date = im_date&lt;/P&gt;&lt;P&gt;im_budat = im_budat&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;ex_diff = lv_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One day &lt;/P&gt;&lt;P&gt;IF lv_date = 2.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-one_day = im_dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Two days &lt;/P&gt;&lt;P&gt;ELSEIF lv_date = 3.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-two_days = im_dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More than two days &lt;/P&gt;&lt;P&gt;ELSEIF lv_date &amp;gt; 3.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-more_than_two_days = im_dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.&lt;/P&gt;&lt;P&gt;CLEAR wa_outs_trade_coll.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "sunday_routines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD tuesday_routines &lt;/P&gt;&lt;P&gt;METHOD tuesday_routines.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-bukrs = im_bukrs.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-hkont = im_hkont.&lt;/P&gt;&lt;P&gt;CLEAR lv_date.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;difference_in_days&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;im_date = im_date&lt;/P&gt;&lt;P&gt;im_budat = im_budat&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;ex_diff = lv_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One day &lt;/P&gt;&lt;P&gt;IF lv_date = 1.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-one_day = im_dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Two days &lt;/P&gt;&lt;P&gt;ELSEIF lv_date = 4.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-two_days = im_dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More than two days &lt;/P&gt;&lt;P&gt;ELSEIF lv_date &amp;gt; 4.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-more_than_two_days = im_dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.&lt;/P&gt;&lt;P&gt;CLEAR wa_outs_trade_coll.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "tuesday_routines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD other_days_routines &lt;/P&gt;&lt;P&gt;METHOD other_days_routines.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-bukrs = im_bukrs.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-hkont = im_hkont.&lt;/P&gt;&lt;P&gt;CLEAR lv_date.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;difference_in_days&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;im_date = im_date&lt;/P&gt;&lt;P&gt;im_budat = im_budat&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;ex_diff = lv_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One day &lt;/P&gt;&lt;P&gt;IF lv_date = 1.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-one_day = im_dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Two days &lt;/P&gt;&lt;P&gt;ELSEIF lv_date = 2.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-two_days = im_dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More than two days &lt;/P&gt;&lt;P&gt;ELSEIF lv_date &amp;gt; 3.&lt;/P&gt;&lt;P&gt;wa_outs_trade_coll-more_than_two_days = im_dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.&lt;/P&gt;&lt;P&gt;CLEAR wa_outs_trade_coll.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "other_days_routines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD difference_in_days &lt;/P&gt;&lt;P&gt;METHOD difference_in_days.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_date_from = im_budat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_KEY_DAY_FROM = &lt;/P&gt;&lt;P&gt;i_date_to = im_date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_KEY_DAY_TO = &lt;/P&gt;&lt;P&gt;I_FLG_SEPARATE = ' ' &lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;e_days = ex_diff.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;E_MONTHS = &lt;/P&gt;&lt;P&gt;E_YEARS = &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD. "difference_in_days&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD outs_check_released &lt;/P&gt;&lt;P&gt;METHOD outs_check_released.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;fs_zcheck_monitor&amp;gt; LIKE LINE OF gt_zcheck_monitor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT zzbukr zhbkid zhktid&lt;/P&gt;&lt;P&gt;zubhkt zrwbtr zrlsvd&lt;/P&gt;&lt;P&gt;zrlsdt&lt;/P&gt;&lt;P&gt;FROM zcheck_monitor&lt;/P&gt;&lt;P&gt;INTO TABLE gt_zcheck_monitor&lt;/P&gt;&lt;P&gt;WHERE zrlsvd space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT gt_zcheck_monitor[] IS INITIAL.&lt;/P&gt;&lt;P&gt;LOOP AT gt_zcheck_monitor ASSIGNING &amp;lt;fs_zcheck_monitor&amp;gt;.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING &amp;lt;fs_zcheck_monitor&amp;gt; TO wa_zcheck_monitor_collect.&lt;/P&gt;&lt;P&gt;COLLECT wa_zcheck_monitor_collect INTO gt_zcheck_monitor_collect.&lt;/P&gt;&lt;P&gt;CLEAR wa_zcheck_monitor_collect.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "outs_check_released&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD process_data &lt;/P&gt;&lt;P&gt;METHOD process_data.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;fs_t012k&amp;gt; LIKE LINE OF gt_t012k,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_company&amp;gt; LIKE LINE OF gt_company,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_cash_in_bank&amp;gt; LIKE LINE OF gt_cash_in_bank,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_trade_coll&amp;gt; LIKE LINE OF gt_outs_trade_coll,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_misc_collection&amp;gt; LIKE LINE OF gt_misc_collection,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_rel_checks&amp;gt; LIKE LINE OF gt_outs_rel_checks,&lt;/P&gt;&lt;P&gt;&amp;lt;fs_outs_unrel_checks&amp;gt; LIKE LINE OF gt_outs_unrel_checks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT gt_t012k BY bukrs hbkid.&lt;/P&gt;&lt;P&gt;LOOP AT gt_t012k ASSIGNING &amp;lt;fs_t012k&amp;gt;.&lt;/P&gt;&lt;P&gt;AT NEW hbkid.&lt;/P&gt;&lt;P&gt;READ TABLE gt_company ASSIGNING &amp;lt;fs_company&amp;gt;&lt;/P&gt;&lt;P&gt;WITH TABLE KEY bukrs = &amp;lt;fs_t012k&amp;gt;-bukrs.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_header-bukrs = &amp;lt;fs_company&amp;gt;-bukrs.&lt;/P&gt;&lt;P&gt;wa_header-butxt = &amp;lt;fs_company&amp;gt;-butxt.&lt;/P&gt;&lt;P&gt;wa_header-hbkid = &amp;lt;fs_t012k&amp;gt;-hbkid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_header-hktid = &amp;lt;fs_t012k&amp;gt;-hktid. &lt;/P&gt;&lt;P&gt;APPEND wa_header TO gt_header.&lt;/P&gt;&lt;P&gt;CLEAR wa_header.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;wa_output-bukrs = &amp;lt;fs_t012k&amp;gt;-bukrs.&lt;/P&gt;&lt;P&gt;wa_output-hbkid = &amp;lt;fs_t012k&amp;gt;-hbkid.&lt;/P&gt;&lt;P&gt;wa_output-hktid = &amp;lt;fs_t012k&amp;gt;-hktid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Move cash in bank &lt;/P&gt;&lt;P&gt;READ TABLE gt_cash_in_bank ASSIGNING &amp;lt;fs_cash_in_bank&amp;gt;&lt;/P&gt;&lt;P&gt;WITH TABLE KEY bukrs = &amp;lt;fs_t012k&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;hkont = &amp;lt;fs_t012k&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_output-cash_in_bank = &amp;lt;fs_cash_in_bank&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ADD wa_output-cash_in_bank TO wa_output-tot_cash_bal.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CLEAR lv_hkont.&lt;/P&gt;&lt;P&gt;lv_hkont = &amp;lt;fs_t012k&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;ADD 1 TO lv_hkont.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = lv_hkont&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = lv_hkont.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Move outstanding trade collection(Deposit in transit) &lt;/P&gt;&lt;P&gt;READ TABLE gt_outs_trade_coll ASSIGNING &amp;lt;fs_outs_trade_coll&amp;gt;&lt;/P&gt;&lt;P&gt;WITH TABLE KEY bukrs = &amp;lt;fs_t012k&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;hkont = lv_hkont.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_output-one_day = &amp;lt;fs_outs_trade_coll&amp;gt;-one_day.&lt;/P&gt;&lt;P&gt;ADD wa_output-one_day TO wa_output-tot_cash_bal.&lt;/P&gt;&lt;P&gt;wa_output-two_days = &amp;lt;fs_outs_trade_coll&amp;gt;-two_days.&lt;/P&gt;&lt;P&gt;ADD wa_output-two_days TO wa_output-tot_cash_bal.&lt;/P&gt;&lt;P&gt;wa_output-more_than_two_days = &amp;lt;fs_outs_trade_coll&amp;gt;-more_than_two_days.&lt;/P&gt;&lt;P&gt;ADD wa_output-more_than_two_days TO wa_output-tot_cash_bal.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Move miscellaneous collection &lt;/P&gt;&lt;P&gt;READ TABLE gt_misc_collection ASSIGNING &amp;lt;fs_misc_collection&amp;gt;&lt;/P&gt;&lt;P&gt;WITH TABLE KEY bukrs = &amp;lt;fs_t012k&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;hkont = lv_hkont.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_output-misc_collection = &amp;lt;fs_misc_collection&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ADD wa_output-misc_collection TO wa_output-tot_cash_bal.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Move outstanding released checks &lt;/P&gt;&lt;P&gt;CLEAR lv_hkont.&lt;/P&gt;&lt;P&gt;lv_hkont = &amp;lt;fs_t012k&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;ADD 3 TO lv_hkont.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = lv_hkont&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = lv_hkont.&lt;/P&gt;&lt;P&gt;READ TABLE gt_outs_rel_checks ASSIGNING &amp;lt;fs_outs_rel_checks&amp;gt;&lt;/P&gt;&lt;P&gt;WITH TABLE KEY bukrs = &amp;lt;fs_t012k&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;hkont = lv_hkont.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_output-outs_rel_checks = &amp;lt;fs_outs_rel_checks&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;IF wa_output-outs_rel_checks &amp;lt; 0.&lt;/P&gt;&lt;P&gt;ADD wa_output-outs_rel_checks TO wa_output-tot_cash_bal.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;SUBTRACT wa_output-outs_rel_checks FROM wa_output-tot_cash_bal.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CLEAR wa_zcheck_monitor_collect.&lt;/P&gt;&lt;P&gt;READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect&lt;/P&gt;&lt;P&gt;WITH TABLE KEY zzbukr = &amp;lt;fs_t012k&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;zubhkt = lv_hkont.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_output-outs_rel_checks = wa_zcheck_monitor_collect-zrwbtr.&lt;/P&gt;&lt;P&gt;IF wa_output-outs_rel_checks &amp;lt; 0.&lt;/P&gt;&lt;P&gt;ADD wa_output-outs_rel_checks TO wa_output-tot_cash_bal.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;SUBTRACT wa_output-outs_rel_checks FROM wa_output-tot_cash_bal.&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;&lt;/P&gt;&lt;P&gt;Move outstanding unreleased checks &lt;/P&gt;&lt;P&gt;CLEAR lv_hkont.&lt;/P&gt;&lt;P&gt;lv_hkont = &amp;lt;fs_t012k&amp;gt;-hkont.&lt;/P&gt;&lt;P&gt;ADD 3 TO lv_hkont.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = lv_hkont&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = lv_hkont.&lt;/P&gt;&lt;P&gt;READ TABLE gt_outs_unrel_checks ASSIGNING &amp;lt;fs_outs_unrel_checks&amp;gt;&lt;/P&gt;&lt;P&gt;WITH TABLE KEY bukrs = &amp;lt;fs_t012k&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;hkont = lv_hkont.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_output-outs_unrel_checks = &amp;lt;fs_outs_unrel_checks&amp;gt;-dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Move importation docs. due &lt;/P&gt;&lt;P&gt;CLEAR wa_importation_docs_due.&lt;/P&gt;&lt;P&gt;READ TABLE gt_importation_docs_due INTO wa_importation_docs_due&lt;/P&gt;&lt;P&gt;WITH TABLE KEY bukrs = &amp;lt;fs_t012k&amp;gt;-bukrs&lt;/P&gt;&lt;P&gt;hkont = lv_hkont&lt;/P&gt;&lt;P&gt;TRANSPORTING dmbtr.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_output-imp_docs_due = wa_importation_docs_due-dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;wa_output-est_cash_balance = wa_output-tot_cash_bal - ( wa_output-outs_unrel_checks +&lt;/P&gt;&lt;P&gt;wa_output-imp_docs_due ).&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;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "process_data&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_get_data IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_alv_routines IMPLEMENTATION &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS lcl_alv_routines IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;METHOD build_fieldcat.&lt;/P&gt;&lt;P&gt;DEFINE m_fieldcat.&lt;/P&gt;&lt;P&gt;add 1 to wa_fieldcat-col_pos.&lt;/P&gt;&lt;P&gt;wa_fieldcat-fieldname = &amp;amp;1.&lt;/P&gt;&lt;P&gt;wa_fieldcat-tabname = &amp;amp;2.&lt;/P&gt;&lt;P&gt;wa_fieldcat-coltext = &amp;amp;3.&lt;/P&gt;&lt;P&gt;wa_fieldcat-outputlen = &amp;amp;4.&lt;/P&gt;&lt;P&gt;wa_fieldcat-key = &amp;amp;5.&lt;/P&gt;&lt;P&gt;wa_fieldcat-just = &amp;amp;6.&lt;/P&gt;&lt;P&gt;wa_fieldcat-do_sum = &amp;amp;7.&lt;/P&gt;&lt;P&gt;wa_fieldcat-emphasize = &amp;amp;8.&lt;/P&gt;&lt;P&gt;wa_fieldcat-edit = &amp;amp;9.&lt;/P&gt;&lt;P&gt;append wa_fieldcat to gt_fieldcat.&lt;/P&gt;&lt;P&gt;clear wa_fieldcat.&lt;/P&gt;&lt;P&gt;END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;m_fieldcat 'BUKRS' 'GT_OUTPUT' text-a01 '12' 'X' '' '' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'HBKID' 'GT_OUTPUT' text-a14 '10' 'X' '' '' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'HKTID' 'GT_OUTPUT' text-a02 '10' 'X' '' '' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'CASH_IN_BANK' 'GT_OUTPUT' text-a03 '12' '' 'R' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'ONE_DAY' 'GT_OUTPUT' text-a04 '05' '' 'R' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'TWO_DAYS' 'GT_OUTPUT' text-a05 '06' '' 'R' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'MORE_THAN_TWO_DAYS' 'GT_OUTPUT' text-a06 '08' '' 'R' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'MISC_COLLECTION' 'GT_OUTPUT' text-a07 '16' '' 'R' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'OUTS_REL_CHECKS' 'GT_OUTPUT' text-a08 '21' '' 'R' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'TREAS_TRANSACTIONS' 'GT_OUTPUT' text-a09 '19' '' 'R' 'X' '' 'X'.&lt;/P&gt;&lt;P&gt;m_fieldcat 'TOT_CASH_BAL' 'GT_OUTPUT' text-a10 '15' '' 'R' 'X' 'C300' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'OUTS_UNREL_CHECKS' 'GT_OUTPUT' text-a11 '19' '' 'R' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'IMP_DOCS_DUE' 'GT_OUTPUT' text-a12 '14' '' 'R' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_fieldcat 'EST_CASH_BALANCE' 'GT_OUTPUT' text-a13 '17' '' 'R' 'X' 'C300' ''.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "build_fieldcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD sort_alv_display.&lt;/P&gt;&lt;P&gt;DEFINE m_sort.&lt;/P&gt;&lt;P&gt;clear gs_sort.&lt;/P&gt;&lt;P&gt;gs_sort-fieldname = &amp;amp;1.&lt;/P&gt;&lt;P&gt;gs_sort-spos = &amp;amp;2.&lt;/P&gt;&lt;P&gt;gs_sort-up = &amp;amp;3.&lt;/P&gt;&lt;P&gt;gs_sort-down = &amp;amp;4.&lt;/P&gt;&lt;P&gt;gs_sort-subtot = &amp;amp;5.&lt;/P&gt;&lt;P&gt;append gs_sort to gt_sort.&lt;/P&gt;&lt;P&gt;END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;m_sort 'BUKRS' '1' 'X' '' ''.&lt;/P&gt;&lt;P&gt;m_sort 'HBKID' '2' 'X' '' 'X'.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "sort_alv_display&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_alv_routines IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_event_receiver IMPLEMENTATION &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;CLASS lcl_event_receiver IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;METHOD handle_data_changed.&lt;/P&gt;&lt;P&gt;LOOP AT er_data_changed-&amp;gt;mt_mod_cells INTO ls_good.&lt;/P&gt;&lt;P&gt;CASE ls_good-fieldname.&lt;/P&gt;&lt;P&gt;WHEN 'TREAS_TRANSACTIONS'.&lt;/P&gt;&lt;P&gt;CLEAR lv_tot_cash_bal.&lt;/P&gt;&lt;P&gt;CALL METHOD er_data_changed-&amp;gt;get_cell_value&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_row_id = ls_good-row_id&lt;/P&gt;&lt;P&gt;i_fieldname = 'TOT_CASH_BAL'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;e_value = lv_tot_cash_bal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF ls_good-value CA 'ABCDEFGHIJKLMNOPQRSTUVWXYZ/'.&lt;/P&gt;&lt;P&gt;CALL METHOD er_data_changed-&amp;gt;add_protocol_entry&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_msgid = '0K'&lt;/P&gt;&lt;P&gt;i_msgno = '000'&lt;/P&gt;&lt;P&gt;i_msgty = 'E'&lt;/P&gt;&lt;P&gt;i_msgv1 = text-e01&lt;/P&gt;&lt;P&gt;i_msgv2 = ls_good-value&lt;/P&gt;&lt;P&gt;i_msgv3 = text-e02&lt;/P&gt;&lt;P&gt;i_fieldname = ls_good-fieldname&lt;/P&gt;&lt;P&gt;i_row_id = ls_good-row_id.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CLEAR lv_treas_transactions.&lt;/P&gt;&lt;P&gt;lv_treas_transactions = ls_good-value.&lt;/P&gt;&lt;P&gt;ADD lv_tot_cash_bal TO lv_treas_transactions.&lt;/P&gt;&lt;P&gt;CALL METHOD er_data_changed-&amp;gt;modify_cell&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_row_id = ls_good-row_id&lt;/P&gt;&lt;P&gt;i_fieldname = 'TOT_CASH_BAL'&lt;/P&gt;&lt;P&gt;i_value = lv_treas_transactions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR lv_outs_unrel_checks.&lt;/P&gt;&lt;P&gt;CALL METHOD er_data_changed-&amp;gt;get_cell_value&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_row_id = ls_good-row_id&lt;/P&gt;&lt;P&gt;i_fieldname = 'OUTS_UNREL_CHECKS'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;e_value = lv_outs_unrel_checks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR lv_imp_docs_due.&lt;/P&gt;&lt;P&gt;CALL METHOD er_data_changed-&amp;gt;get_cell_value&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_row_id = ls_good-row_id&lt;/P&gt;&lt;P&gt;i_fieldname = 'IMP_DOCS_DUE'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;e_value = lv_imp_docs_due.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_est_cash_balance = ls_good-value - ( lv_outs_unrel_checks +&lt;/P&gt;&lt;P&gt;lv_imp_docs_due ).&lt;/P&gt;&lt;P&gt;CALL METHOD er_data_changed-&amp;gt;modify_cell&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_row_id = ls_good-row_id&lt;/P&gt;&lt;P&gt;i_fieldname = 'EST_CASH_BALANCE'&lt;/P&gt;&lt;P&gt;i_value = lv_est_cash_balance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR lv_est_cash_balance.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "handle_data_changed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD handle_top_of_page.&lt;/P&gt;&lt;P&gt;WRITE: sy-repid.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "handle_top_of_page&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD handle_top_of_list.&lt;/P&gt;&lt;P&gt;WRITE: sy-repid.&lt;/P&gt;&lt;P&gt;ENDMETHOD. "handle_top_of_list&lt;/P&gt;&lt;P&gt;ENDCLASS. "lcl_event_receiver IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&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;CREATE OBJECT o_lcl_get_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD o_lcl_get_data-&amp;gt;get_bank_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;IF NOT gt_output[] IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERCENTAGE = 0 &lt;/P&gt;&lt;P&gt;text = text-p01.&lt;/P&gt;&lt;P&gt;CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH text-i01.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Module STATUS_0100 OUTPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;MODULE status_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;SET PF-STATUS 'MAIN100'.&lt;/P&gt;&lt;P&gt;SET TITLEBAR 'MAIN100'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: o_lcl_alv_routines TYPE REF TO lcl_alv_routines. "#EC *&lt;/P&gt;&lt;P&gt;CREATE OBJECT o_lcl_alv_routines. "#EC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;IF lcl_custom_container IS INITIAL.&lt;/P&gt;&lt;P&gt;CREATE OBJECT lcl_custom_container&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;container_name = gv_container&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;cntl_error = 1&lt;/P&gt;&lt;P&gt;cntl_system_error = 2&lt;/P&gt;&lt;P&gt;create_error = 3&lt;/P&gt;&lt;P&gt;lifetime_error = 4&lt;/P&gt;&lt;P&gt;lifetime_dynpro_dynpro_link = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'POPUP_TO_INFORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;titel = g_repid&lt;/P&gt;&lt;P&gt;txt2 = sy-subrc&lt;/P&gt;&lt;P&gt;txt1 = text-004.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT lcl_grid1&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_parent = lcl_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gs_layout-stylefname = 'GS_CELLTAB'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Build fieldcatalog for initial display &lt;/P&gt;&lt;P&gt;CALL METHOD o_lcl_alv_routines-&amp;gt;build_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD o_lcl_alv_routines-&amp;gt;sort_alv_display.&lt;/P&gt;&lt;P&gt;gs_disvariant-report = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Display initial window &lt;/P&gt;&lt;P&gt;CALL METHOD lcl_grid1-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i_structure_name = '' &lt;/P&gt;&lt;P&gt;is_layout = gs_layout&lt;/P&gt;&lt;P&gt;i_save = 'A'&lt;/P&gt;&lt;P&gt;is_variant = gs_disvariant&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;it_outtab = gt_output&lt;/P&gt;&lt;P&gt;it_fieldcatalog = gt_fieldcat&lt;/P&gt;&lt;P&gt;it_sort = gt_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Set editable cells to ready for input &lt;/P&gt;&lt;P&gt;CALL METHOD lcl_grid1-&amp;gt;set_ready_for_input&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_ready_for_input = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD lcl_grid1-&amp;gt;register_edit_event&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_event_id = cl_gui_alv_grid=&amp;gt;mc_evt_enter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT lcl_event_receiver.&lt;/P&gt;&lt;P&gt;SET HANDLER lcl_event_receiver-&amp;gt;handle_data_changed FOR lcl_grid1.&lt;/P&gt;&lt;P&gt;SET HANDLER lcl_event_receiver-&amp;gt;handle_top_of_page FOR lcl_grid1.&lt;/P&gt;&lt;P&gt;SET HANDLER lcl_event_receiver-&amp;gt;handle_top_of_list FOR lcl_grid1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_control=&amp;gt;set_focus&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;control = lcl_grid1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE. " STATUS_0100 OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Module USER_COMMAND_0100 INPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;MODULE user_command_0100 INPUT.&lt;/P&gt;&lt;P&gt;save_ok = ok_code.&lt;/P&gt;&lt;P&gt;CASE save_ok.&lt;/P&gt;&lt;P&gt;WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.&lt;/P&gt;&lt;P&gt;CALL METHOD lcl_custom_container-&amp;gt;free.&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'POPUP_TO_INFORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;titel = g_repid&lt;/P&gt;&lt;P&gt;txt2 = sy-subrc&lt;/P&gt;&lt;P&gt;txt1 = text-005.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE. " USER_COMMAND_0100 INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REward points if useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2008 05:11:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-grid-using-oo-abap-example/m-p/3285314#M785814</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-18T05:11:31Z</dc:date>
    </item>
  </channel>
</rss>

