<?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: how to do interactive report using oops in alv in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890954#M934420</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;ALV is developed using OOPS(custom container) see this i hope this wil help u.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zalv_styles.*Include for ALV styles&lt;/P&gt;&lt;P&gt;INCLUDE &amp;lt;cl_alv_control&amp;gt;.*Type ppols for alv&lt;/P&gt;&lt;P&gt;TYPE-POOLS : slis.*structure for t582a tbale&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_table,&lt;/P&gt;&lt;P&gt;        infty TYPE infty,&lt;/P&gt;&lt;P&gt;        pnnnn TYPE pnnnn_d,&lt;/P&gt;&lt;P&gt;        zrmkz TYPE dzrmkz,&lt;/P&gt;&lt;P&gt;        zeitb TYPE dzeitb,&lt;/P&gt;&lt;P&gt;        dname TYPE dianm,&lt;/P&gt;&lt;P&gt;        edynr TYPE edynp,&lt;/P&gt;&lt;P&gt;        ldynr TYPE ldynp,&lt;/P&gt;&lt;P&gt;        stypt TYPE stypt,&lt;/P&gt;&lt;P&gt;        sytxt TYPE sytxt,&lt;/P&gt;&lt;P&gt;        davo TYPE davo,&lt;/P&gt;&lt;P&gt;        davoe TYPE davoe,&lt;/P&gt;&lt;P&gt;        END OF ty_table.*Structure for infotype text&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_itext,&lt;/P&gt;&lt;P&gt;        infty TYPE infty,&lt;/P&gt;&lt;P&gt;        itext TYPE intxt,&lt;/P&gt;&lt;P&gt;        sprsl TYPE sprsl,&lt;/P&gt;&lt;P&gt;        END OF ty_itext.*Structure for output display&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_output,&lt;/P&gt;&lt;P&gt;        infty TYPE infty,&lt;/P&gt;&lt;P&gt;        itext TYPE intxt,&lt;/P&gt;&lt;P&gt;        pnnnn TYPE pnnnn_d,&lt;/P&gt;&lt;P&gt;        zrmkz TYPE dzrmkz,&lt;/P&gt;&lt;P&gt;        zeitb TYPE dzeitb,&lt;/P&gt;&lt;P&gt;        dname TYPE dianm,&lt;/P&gt;&lt;P&gt;        edynr TYPE edynp,&lt;/P&gt;&lt;P&gt;        ldynr TYPE ldynp,&lt;/P&gt;&lt;P&gt;        stypt TYPE stypt,&lt;/P&gt;&lt;P&gt;        sytxt TYPE sytxt,&lt;/P&gt;&lt;P&gt;        davo TYPE davo,&lt;/P&gt;&lt;P&gt;        davoe TYPE davoe,&lt;/P&gt;&lt;P&gt;        text(6) TYPE c,&lt;/P&gt;&lt;P&gt;        sradio(6) TYPE c,&lt;/P&gt;&lt;P&gt;        scheck(6) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF ty_output.*internal table and work area declarations&lt;/P&gt;&lt;P&gt;DATA : it_table TYPE STANDARD TABLE OF ty_table INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;       it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;       it_ittext TYPE STANDARD TABLE OF ty_itext INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;       wa_table TYPE ty_table,&lt;/P&gt;&lt;P&gt;       wa_output TYPE ty_output,&lt;/P&gt;&lt;P&gt;       wa_ittext TYPE ty_itext.*Data declarations for ALV&lt;/P&gt;&lt;P&gt;DATA: c_ccont TYPE REF TO cl_gui_custom_container,   "Custom container &lt;/P&gt;&lt;P&gt;      c_alvgd         TYPE REF TO cl_gui_alv_grid,   "ALV grid object&lt;/P&gt;&lt;P&gt;      it_fcat            TYPE lvc_t_fcat,            "Field catalogue&lt;/P&gt;&lt;P&gt;      it_layout          TYPE lvc_s_layo.           "Layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Field symbols declarations for styleFIELD-SYMBOLS : &amp;lt;wa_fcat&amp;gt; TYPE lvc_s_fcat.&lt;/STRONG&gt;initialization eventINITIALIZATION.*start of selection event&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.*select the infotypes maintained&lt;/P&gt;&lt;P&gt;  SELECT infty&lt;/P&gt;&lt;P&gt;          pnnnn&lt;/P&gt;&lt;P&gt;          zrmkz&lt;/P&gt;&lt;P&gt;          zeitb&lt;/P&gt;&lt;P&gt;          dname&lt;/P&gt;&lt;P&gt;          edynr&lt;/P&gt;&lt;P&gt;          ldynr&lt;/P&gt;&lt;P&gt;          stypt&lt;/P&gt;&lt;P&gt;          sytxt&lt;/P&gt;&lt;P&gt;          davo&lt;/P&gt;&lt;P&gt;          davoe&lt;/P&gt;&lt;P&gt;          FROM t582a UP TO 25 ROWS&lt;/P&gt;&lt;P&gt;          INTO CORRESPONDING FIELDS OF TABLE it_table.* *Select the infotype texts&lt;/P&gt;&lt;P&gt;  IF it_table[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT itext&lt;/P&gt;&lt;P&gt;             infty&lt;/P&gt;&lt;P&gt;             sprsl&lt;/P&gt;&lt;P&gt;             FROM t582s&lt;/P&gt;&lt;P&gt;             INTO CORRESPONDING FIELDS OF TABLE it_ittext&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN it_table&lt;/P&gt;&lt;P&gt;             WHERE infty = it_table-infty&lt;/P&gt;&lt;P&gt;             AND sprsl = 'E'.&lt;/P&gt;&lt;P&gt;  ENDIF.*Apppending the data to the internal table of ALV output&lt;/P&gt;&lt;P&gt;  LOOP AT it_table INTO wa_table.    wa_output-infty = wa_table-infty.&lt;/P&gt;&lt;P&gt;    wa_output-pnnnn = wa_table-pnnnn.&lt;/P&gt;&lt;P&gt;    wa_output-zrmkz = wa_table-zrmkz.&lt;/P&gt;&lt;P&gt;    wa_output-zeitb = wa_table-zeitb.&lt;/P&gt;&lt;P&gt;    wa_output-dname = wa_table-dname.&lt;/P&gt;&lt;P&gt;    wa_output-edynr = wa_table-edynr.&lt;/P&gt;&lt;P&gt;    wa_output-ldynr = wa_table-ldynr.&lt;/P&gt;&lt;P&gt;    wa_output-stypt = wa_table-stypt.&lt;/P&gt;&lt;P&gt;    wa_output-sytxt = wa_table-sytxt.&lt;/P&gt;&lt;P&gt;    wa_output-davo = wa_table-davo.&lt;/P&gt;&lt;P&gt;    wa_output-davoe = wa_table-davoe.* For texts    READ TABLE it_ittext INTO wa_ittext WITH KEY infty = wa_table-infty.&lt;/P&gt;&lt;P&gt;    wa_output-itext = wa_ittext-itext.&lt;/P&gt;&lt;P&gt;    wa_output-text = wa_ittext-sprsl.    APPEND wa_output TO it_output.&lt;/P&gt;&lt;P&gt;    CLEAR wa_output.  ENDLOOP.* Calling the ALV screen with custom container  CALL SCREEN 0600.&lt;STRONG&gt;On this statement double click  it takes you to the screen painter SE51.&lt;/STRONG&gt;Enter the attributes&lt;/P&gt;&lt;P&gt;*Create a Custom container and name it CC_CONT and OK code as OK_CODE.&lt;/P&gt;&lt;P&gt;*Save check and Activate the screen painter.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Now a normal screen with number 600 is created which holds the ALV grid.&lt;/STRONG&gt; PBO of the actual screen ,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here we can give a title and customized menus&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_0600  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_0600 OUTPUT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SET PF-STATUS 'xxxxxxxx'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SET TITLEBAR 'xxx'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0600  OUTPUT* calling the PBO module ALV_GRID.&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  ALV_GRID  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 alv_grid OUTPUT.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT c_ccont&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;          container_name = 'CC_CONT'.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT c_alvgd&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_parent = c_ccont.*  SET field for ALV&lt;/P&gt;&lt;P&gt;  PERFORM alv_build_fieldcat.* Setting the styles for the ALV grid control&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;using field-symbols  LOOP AT it_fcat ASSIGNING &amp;lt;wa_fcat&amp;gt;.*For Each and every line of the fieldcat&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CASE sy-tabix.*Color Styles&lt;/P&gt;&lt;P&gt;*Background/Font/Group/positive/negative&lt;/P&gt;&lt;P&gt;      WHEN '1'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_inv_positive.&lt;/P&gt;&lt;P&gt;      WHEN '2'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_int_negative.&lt;/P&gt;&lt;P&gt;      WHEN '3'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_inv_negative.&lt;/P&gt;&lt;P&gt;      WHEN '4'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_int_positive.&lt;/P&gt;&lt;P&gt;      WHEN '5'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_background.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_inv_background.&lt;/P&gt;&lt;P&gt;      WHEN '6'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_group.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_int_background.*Style for F4&lt;/P&gt;&lt;P&gt;      WHEN '7'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_f4.*Style for Alignment(others are also possible)&lt;/P&gt;&lt;P&gt;      WHEN '8'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_align_left_bottom.*Style for Font Underlined/Bold and Italic are possible&lt;/P&gt;&lt;P&gt;      WHEN '9'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_font_underlined.*Style for button type&lt;/P&gt;&lt;P&gt;      WHEN '10'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_button.*Style for Font Symbol&lt;/P&gt;&lt;P&gt;      WHEN '11'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_font_symbol.*Style for Radiobutton&lt;/P&gt;&lt;P&gt;      WHEN '12'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_radio_checked.*Style for  checkbox&lt;/P&gt;&lt;P&gt;      WHEN '13'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_checkbox_checked.*Style for column style characteristics(highlighting the col)&lt;/P&gt;&lt;P&gt;      WHEN '14'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_col_style_characteristic.*Styles for Enabling the column&lt;/P&gt;&lt;P&gt;      WHEN '15'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_enabled.    ENDCASE.  ENDLOOP.* Set ALV attributes FOR LAYOUT&lt;/P&gt;&lt;P&gt;  PERFORM alv_report_layout.  CHECK NOT c_alvgd IS INITIAL.* Call ALV GRID  CALL METHOD c_alvgd-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      is_layout                     = it_layout&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      it_outtab                     = it_output&lt;/P&gt;&lt;P&gt;      it_fieldcatalog               = it_fcat&lt;/P&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;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.ENDMODULE.                 " ALV_GRID  OUTPUT&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;      Form  alv_build_fieldcat&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_IT_FCAT  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;*subroutine to build fieldcatFORM alv_build_fieldcat.  DATA lv_fldcat TYPE lvc_s_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'INFTY'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 8.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Infotype'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '2'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'PNNNN'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 15.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Structure'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '3'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'ITEXT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 60.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Description'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.&lt;/P&gt;&lt;P&gt;  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '4'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'TEXT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 5.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'General'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '5'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'ZRMKZ'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 1.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'PERIOD'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '6'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'ZEITB'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 60.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Time constraint'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '7'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'DNAME'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 15.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Dialogmodule'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '8'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'EDYNR'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Single screenno'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '9'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'LDYNR'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'List screenno'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.&lt;/P&gt;&lt;P&gt;  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '10'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'STYPT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'SubtypeTable'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '11'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'SYTXT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Font Symbol'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.&lt;/P&gt;&lt;P&gt;  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '12'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'SRADIO'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'RADIO'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '13'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'SCHECK'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'CHECK'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '14'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'DAVO'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Start Date'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '15'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'DAVOE'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'End date'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.ENDFORM.                    " alv_build_fieldcat&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;      Form  alv_report_layout&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_IT_LAYOUT  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;*Subroutine for setting alv layout&lt;/P&gt;&lt;P&gt;FORM alv_report_layout.&lt;/P&gt;&lt;P&gt;  it_layout-cwidth_opt = 'X'.&lt;/P&gt;&lt;P&gt;  it_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;  it_layout-col_opt = 'X'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " alv_report_layout&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PAI module of the screen created. In case we use an interactive ALV or&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*for additional functionalities we can create OK codes&lt;/P&gt;&lt;P&gt;*and based on the user command we can do the coding.&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_0600  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_0600 INPUT.ENDMODULE.                 " USER_COMMAND_0600  INPUT&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;dhaya.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 04 Jun 2008 11:08:42 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-06-04T11:08:42Z</dc:date>
    <item>
      <title>how to do interactive report using oops in alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890952#M934418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi gurus&lt;/P&gt;&lt;P&gt;can anyone suggest me &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how to do interactive report in alv using oops&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if possible please send the program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&amp;amp;regards&lt;/P&gt;&lt;P&gt;kals.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2008 10:51:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890952#M934418</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-04T10:51:10Z</dc:date>
    </item>
    <item>
      <title>Re: how to do interactive report using oops in alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890953#M934419</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi kalyan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;go to this link ithave program expalined in an simple manner &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/ALV/Interactive/oops.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/ALV/Interactive/oops.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Snehi Chouhan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2008 10:53:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890953#M934419</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-04T10:53:56Z</dc:date>
    </item>
    <item>
      <title>Re: how to do interactive report using oops in alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890954#M934420</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;ALV is developed using OOPS(custom container) see this i hope this wil help u.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zalv_styles.*Include for ALV styles&lt;/P&gt;&lt;P&gt;INCLUDE &amp;lt;cl_alv_control&amp;gt;.*Type ppols for alv&lt;/P&gt;&lt;P&gt;TYPE-POOLS : slis.*structure for t582a tbale&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_table,&lt;/P&gt;&lt;P&gt;        infty TYPE infty,&lt;/P&gt;&lt;P&gt;        pnnnn TYPE pnnnn_d,&lt;/P&gt;&lt;P&gt;        zrmkz TYPE dzrmkz,&lt;/P&gt;&lt;P&gt;        zeitb TYPE dzeitb,&lt;/P&gt;&lt;P&gt;        dname TYPE dianm,&lt;/P&gt;&lt;P&gt;        edynr TYPE edynp,&lt;/P&gt;&lt;P&gt;        ldynr TYPE ldynp,&lt;/P&gt;&lt;P&gt;        stypt TYPE stypt,&lt;/P&gt;&lt;P&gt;        sytxt TYPE sytxt,&lt;/P&gt;&lt;P&gt;        davo TYPE davo,&lt;/P&gt;&lt;P&gt;        davoe TYPE davoe,&lt;/P&gt;&lt;P&gt;        END OF ty_table.*Structure for infotype text&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_itext,&lt;/P&gt;&lt;P&gt;        infty TYPE infty,&lt;/P&gt;&lt;P&gt;        itext TYPE intxt,&lt;/P&gt;&lt;P&gt;        sprsl TYPE sprsl,&lt;/P&gt;&lt;P&gt;        END OF ty_itext.*Structure for output display&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_output,&lt;/P&gt;&lt;P&gt;        infty TYPE infty,&lt;/P&gt;&lt;P&gt;        itext TYPE intxt,&lt;/P&gt;&lt;P&gt;        pnnnn TYPE pnnnn_d,&lt;/P&gt;&lt;P&gt;        zrmkz TYPE dzrmkz,&lt;/P&gt;&lt;P&gt;        zeitb TYPE dzeitb,&lt;/P&gt;&lt;P&gt;        dname TYPE dianm,&lt;/P&gt;&lt;P&gt;        edynr TYPE edynp,&lt;/P&gt;&lt;P&gt;        ldynr TYPE ldynp,&lt;/P&gt;&lt;P&gt;        stypt TYPE stypt,&lt;/P&gt;&lt;P&gt;        sytxt TYPE sytxt,&lt;/P&gt;&lt;P&gt;        davo TYPE davo,&lt;/P&gt;&lt;P&gt;        davoe TYPE davoe,&lt;/P&gt;&lt;P&gt;        text(6) TYPE c,&lt;/P&gt;&lt;P&gt;        sradio(6) TYPE c,&lt;/P&gt;&lt;P&gt;        scheck(6) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF ty_output.*internal table and work area declarations&lt;/P&gt;&lt;P&gt;DATA : it_table TYPE STANDARD TABLE OF ty_table INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;       it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;       it_ittext TYPE STANDARD TABLE OF ty_itext INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;       wa_table TYPE ty_table,&lt;/P&gt;&lt;P&gt;       wa_output TYPE ty_output,&lt;/P&gt;&lt;P&gt;       wa_ittext TYPE ty_itext.*Data declarations for ALV&lt;/P&gt;&lt;P&gt;DATA: c_ccont TYPE REF TO cl_gui_custom_container,   "Custom container &lt;/P&gt;&lt;P&gt;      c_alvgd         TYPE REF TO cl_gui_alv_grid,   "ALV grid object&lt;/P&gt;&lt;P&gt;      it_fcat            TYPE lvc_t_fcat,            "Field catalogue&lt;/P&gt;&lt;P&gt;      it_layout          TYPE lvc_s_layo.           "Layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Field symbols declarations for styleFIELD-SYMBOLS : &amp;lt;wa_fcat&amp;gt; TYPE lvc_s_fcat.&lt;/STRONG&gt;initialization eventINITIALIZATION.*start of selection event&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.*select the infotypes maintained&lt;/P&gt;&lt;P&gt;  SELECT infty&lt;/P&gt;&lt;P&gt;          pnnnn&lt;/P&gt;&lt;P&gt;          zrmkz&lt;/P&gt;&lt;P&gt;          zeitb&lt;/P&gt;&lt;P&gt;          dname&lt;/P&gt;&lt;P&gt;          edynr&lt;/P&gt;&lt;P&gt;          ldynr&lt;/P&gt;&lt;P&gt;          stypt&lt;/P&gt;&lt;P&gt;          sytxt&lt;/P&gt;&lt;P&gt;          davo&lt;/P&gt;&lt;P&gt;          davoe&lt;/P&gt;&lt;P&gt;          FROM t582a UP TO 25 ROWS&lt;/P&gt;&lt;P&gt;          INTO CORRESPONDING FIELDS OF TABLE it_table.* *Select the infotype texts&lt;/P&gt;&lt;P&gt;  IF it_table[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT itext&lt;/P&gt;&lt;P&gt;             infty&lt;/P&gt;&lt;P&gt;             sprsl&lt;/P&gt;&lt;P&gt;             FROM t582s&lt;/P&gt;&lt;P&gt;             INTO CORRESPONDING FIELDS OF TABLE it_ittext&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN it_table&lt;/P&gt;&lt;P&gt;             WHERE infty = it_table-infty&lt;/P&gt;&lt;P&gt;             AND sprsl = 'E'.&lt;/P&gt;&lt;P&gt;  ENDIF.*Apppending the data to the internal table of ALV output&lt;/P&gt;&lt;P&gt;  LOOP AT it_table INTO wa_table.    wa_output-infty = wa_table-infty.&lt;/P&gt;&lt;P&gt;    wa_output-pnnnn = wa_table-pnnnn.&lt;/P&gt;&lt;P&gt;    wa_output-zrmkz = wa_table-zrmkz.&lt;/P&gt;&lt;P&gt;    wa_output-zeitb = wa_table-zeitb.&lt;/P&gt;&lt;P&gt;    wa_output-dname = wa_table-dname.&lt;/P&gt;&lt;P&gt;    wa_output-edynr = wa_table-edynr.&lt;/P&gt;&lt;P&gt;    wa_output-ldynr = wa_table-ldynr.&lt;/P&gt;&lt;P&gt;    wa_output-stypt = wa_table-stypt.&lt;/P&gt;&lt;P&gt;    wa_output-sytxt = wa_table-sytxt.&lt;/P&gt;&lt;P&gt;    wa_output-davo = wa_table-davo.&lt;/P&gt;&lt;P&gt;    wa_output-davoe = wa_table-davoe.* For texts    READ TABLE it_ittext INTO wa_ittext WITH KEY infty = wa_table-infty.&lt;/P&gt;&lt;P&gt;    wa_output-itext = wa_ittext-itext.&lt;/P&gt;&lt;P&gt;    wa_output-text = wa_ittext-sprsl.    APPEND wa_output TO it_output.&lt;/P&gt;&lt;P&gt;    CLEAR wa_output.  ENDLOOP.* Calling the ALV screen with custom container  CALL SCREEN 0600.&lt;STRONG&gt;On this statement double click  it takes you to the screen painter SE51.&lt;/STRONG&gt;Enter the attributes&lt;/P&gt;&lt;P&gt;*Create a Custom container and name it CC_CONT and OK code as OK_CODE.&lt;/P&gt;&lt;P&gt;*Save check and Activate the screen painter.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Now a normal screen with number 600 is created which holds the ALV grid.&lt;/STRONG&gt; PBO of the actual screen ,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here we can give a title and customized menus&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_0600  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_0600 OUTPUT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SET PF-STATUS 'xxxxxxxx'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SET TITLEBAR 'xxx'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0600  OUTPUT* calling the PBO module ALV_GRID.&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  ALV_GRID  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 alv_grid OUTPUT.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT c_ccont&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;          container_name = 'CC_CONT'.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT c_alvgd&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_parent = c_ccont.*  SET field for ALV&lt;/P&gt;&lt;P&gt;  PERFORM alv_build_fieldcat.* Setting the styles for the ALV grid control&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;using field-symbols  LOOP AT it_fcat ASSIGNING &amp;lt;wa_fcat&amp;gt;.*For Each and every line of the fieldcat&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CASE sy-tabix.*Color Styles&lt;/P&gt;&lt;P&gt;*Background/Font/Group/positive/negative&lt;/P&gt;&lt;P&gt;      WHEN '1'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_inv_positive.&lt;/P&gt;&lt;P&gt;      WHEN '2'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_int_negative.&lt;/P&gt;&lt;P&gt;      WHEN '3'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_inv_negative.&lt;/P&gt;&lt;P&gt;      WHEN '4'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_int_positive.&lt;/P&gt;&lt;P&gt;      WHEN '5'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_background.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_inv_background.&lt;/P&gt;&lt;P&gt;      WHEN '6'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_group.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_color_int_background.*Style for F4&lt;/P&gt;&lt;P&gt;      WHEN '7'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_f4.*Style for Alignment(others are also possible)&lt;/P&gt;&lt;P&gt;      WHEN '8'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_align_left_bottom.*Style for Font Underlined/Bold and Italic are possible&lt;/P&gt;&lt;P&gt;      WHEN '9'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_font_underlined.*Style for button type&lt;/P&gt;&lt;P&gt;      WHEN '10'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_button.*Style for Font Symbol&lt;/P&gt;&lt;P&gt;      WHEN '11'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_font_symbol.*Style for Radiobutton&lt;/P&gt;&lt;P&gt;      WHEN '12'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_radio_checked.*Style for  checkbox&lt;/P&gt;&lt;P&gt;      WHEN '13'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_checkbox_checked.*Style for column style characteristics(highlighting the col)&lt;/P&gt;&lt;P&gt;      WHEN '14'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_col_style_characteristic.*Styles for Enabling the column&lt;/P&gt;&lt;P&gt;      WHEN '15'.&lt;/P&gt;&lt;P&gt;        &amp;lt;wa_fcat&amp;gt;-style = alv_style_enabled.    ENDCASE.  ENDLOOP.* Set ALV attributes FOR LAYOUT&lt;/P&gt;&lt;P&gt;  PERFORM alv_report_layout.  CHECK NOT c_alvgd IS INITIAL.* Call ALV GRID  CALL METHOD c_alvgd-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      is_layout                     = it_layout&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      it_outtab                     = it_output&lt;/P&gt;&lt;P&gt;      it_fieldcatalog               = it_fcat&lt;/P&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;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.ENDMODULE.                 " ALV_GRID  OUTPUT&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;      Form  alv_build_fieldcat&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_IT_FCAT  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;*subroutine to build fieldcatFORM alv_build_fieldcat.  DATA lv_fldcat TYPE lvc_s_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'INFTY'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 8.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Infotype'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '2'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'PNNNN'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 15.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Structure'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '3'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'ITEXT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 60.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Description'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.&lt;/P&gt;&lt;P&gt;  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '4'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'TEXT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 5.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'General'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '5'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'ZRMKZ'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 1.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'PERIOD'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '6'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'ZEITB'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 60.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Time constraint'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '7'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'DNAME'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 15.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Dialogmodule'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '8'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'EDYNR'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Single screenno'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '9'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'LDYNR'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'List screenno'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.&lt;/P&gt;&lt;P&gt;  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '10'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'STYPT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'SubtypeTable'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '11'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'SYTXT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Font Symbol'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.&lt;/P&gt;&lt;P&gt;  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '12'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'SRADIO'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'RADIO'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '13'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'SCHECK'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'CHECK'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '14'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'DAVO'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'Start Date'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.  lv_fldcat-row_pos   = '1'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-col_pos   = '15'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-fieldname = 'DAVOE'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-tabname   = 'IT_OUTPUT'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  lv_fldcat-scrtext_m = 'End date'.&lt;/P&gt;&lt;P&gt;  lv_fldcat-icon = ''.&lt;/P&gt;&lt;P&gt;  APPEND lv_fldcat TO it_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR lv_fldcat.ENDFORM.                    " alv_build_fieldcat&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;      Form  alv_report_layout&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_IT_LAYOUT  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;*Subroutine for setting alv layout&lt;/P&gt;&lt;P&gt;FORM alv_report_layout.&lt;/P&gt;&lt;P&gt;  it_layout-cwidth_opt = 'X'.&lt;/P&gt;&lt;P&gt;  it_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;  it_layout-col_opt = 'X'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " alv_report_layout&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PAI module of the screen created. In case we use an interactive ALV or&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*for additional functionalities we can create OK codes&lt;/P&gt;&lt;P&gt;*and based on the user command we can do the coding.&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_0600  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_0600 INPUT.ENDMODULE.                 " USER_COMMAND_0600  INPUT&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;dhaya.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2008 11:08:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890954#M934420</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-04T11:08:42Z</dc:date>
    </item>
    <item>
      <title>Re: how to do interactive report using oops in alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890955#M934421</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;*******First u have to take container on screen name it 'Test' then follow folloing code.&lt;/P&gt;&lt;P&gt;DATA: g_ref_custom_detail_1    TYPE REF TO cl_gui_custom_container, "Detail container&lt;/P&gt;&lt;P&gt;            g_ref_alv_grid_detail_1  TYPE REF TO cl_gui_alv_grid        . "Detail ALV instance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lwa_variant  TYPE disvariant.&lt;/P&gt;&lt;P&gt;    lwa_variant-report = w_repid.&lt;/P&gt;&lt;P&gt;    lwa_variant-handle = c_handle.&lt;/P&gt;&lt;P&gt;DATA: wa_layout_detail    TYPE lvc_s_layo      , " For Detail  ALV layout&lt;/P&gt;&lt;P&gt;**********&lt;STRONG&gt;IN PBO&lt;/STRONG&gt;***********&lt;/P&gt;&lt;P&gt;    CREATE OBJECT g_ref_custom_detail_1&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        container_name              = 'Test'&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;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Create ALV instance for detail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    CREATE OBJECT g_ref_alv_grid_detail_1&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        i_parent          = g_ref_custom_detail_1&lt;/P&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;    lwa_fieldcat-fieldname = 'AUFNR' .&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-scrtext_l = 'SERVICE ORDER'.&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-outputlen = 20.&lt;/P&gt;&lt;P&gt;    APPEND lwa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;    CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-fieldname = 'ERDAT' .&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-scrtext_l = 'ORDER DATE'.&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-outputlen = 18.&lt;/P&gt;&lt;P&gt;    APPEND lwa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;    CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-fieldname = 'KMREAD' .&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-scrtext_l = 'KM READING'.&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-outputlen = 18.&lt;/P&gt;&lt;P&gt;    APPEND lwa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;    CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;    CLEAR: w_counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-fieldname = 'PMACT' .&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-scrtext_l = 'PM ACTIVITY'.&lt;/P&gt;&lt;P&gt;    lwa_fieldcat-outputlen = 12.&lt;/P&gt;&lt;P&gt;    APPEND lwa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;    CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR: w_counter.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    do 5 TIMES.&lt;/P&gt;&lt;P&gt;      WA_SORDER-AUFNR = space.&lt;/P&gt;&lt;P&gt;      APPEND WA_SORDER TO IT_SORDER.&lt;/P&gt;&lt;P&gt;      w_counter = w_counter + 1.&lt;/P&gt;&lt;P&gt;    enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Output data using ALV&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD g_ref_alv_grid_detail_1-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        is_variant                            = lwa_variant&lt;/P&gt;&lt;P&gt;        is_layout                               = wa_layout_detail&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        it_outtab                     = it_sorder&lt;/P&gt;&lt;P&gt;        it_fieldcatalog               = it_fieldcat&lt;/P&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think this may help u..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2008 11:09:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890955#M934421</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-04T11:09:12Z</dc:date>
    </item>
    <item>
      <title>Re: how to do interactive report using oops in alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890956#M934422</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;An example code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1)Create a screen 100 with cumtom control "CONT1" and "CONT2".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2)and PF-status '100'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZTEST_DEMO_ALV
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  ztest_demo_alv.


CLASS cl_event_reciever DEFINITION DEFERRED.
DATA:
wa_vbak TYPE vbak.
DATA:
i_vbak TYPE STANDARD TABLE OF vbak,
i_vbap TYPE STANDARD TABLE OF vbap.


DATA:
v_container1 TYPE scrfname VALUE 'CONT1',
v_grid1      TYPE REF TO cl_gui_alv_grid,
v_custom_container1 TYPE REF TO cl_gui_custom_container,
v_container2 TYPE scrfname VALUE 'CONT2',
v_grid2      TYPE REF TO cl_gui_alv_grid,
v_custom_container2 TYPE REF TO cl_gui_custom_container,
ok_code TYPE syucomm,
v_event_reciever TYPE REF TO cl_event_reciever.

*----------------------------------------------------------------------*
*       CLASS cl_event_reciever DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_event_reciever DEFINITION.
  PUBLIC SECTION.

    METHODS:
      handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
        IMPORTING e_row e_column.



ENDCLASS.                    "cl_event_reciever DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_event_reciever IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_event_reciever IMPLEMENTATION.
  METHOD handle_double_click.

    READ TABLE i_vbak
    INTO wa_vbak
    INDEX e_row.
    IF sy-subrc = 0.

      SELECT * FROM vbap
        INTO TABLE i_vbap

        WHERE vbeln = wa_vbak-vbeln.
      IF sy-subrc = 0.
        SET SCREEN 00.
        LEAVE TO SCREEN 100.
      ENDIF.
    ENDIF.
  ENDMETHOD.                    "handle_double_click
ENDCLASS.                    "cl_event_reciever IMPLEMENTATION

SELECT-OPTIONS:
s_vbeln FOR  wa_vbak-vbeln.


START-OF-SELECTION.

  SELECT * FROM  vbak
    INTO TABLE i_vbak
    UP TO 50 ROWS
    WHERE vbeln IN s_vbeln.
  IF sy-subrc &amp;lt;&amp;gt; 0.
    MESSAGE i000(Z_ZZZ_CA_MESSAGES)  with 'No data found!'.
    leave LIST-PROCESSING.

  ENDIF.

END-OF-SELECTION.
  CALL SCREEN 100.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS '100'.
*  SET TITLEBAR 'xxx'.

  IF v_custom_container1 IS NOT BOUND.

    CREATE OBJECT v_custom_container1
    EXPORTING container_name = v_container1.

    CREATE OBJECT v_grid1
      EXPORTING i_parent = v_custom_container1.

    CALL METHOD v_grid1-&amp;gt;set_table_for_first_display
       EXPORTING
*       i_buffer_active               =
*       i_bypassing_buffer            =
*       i_consistency_check           =
         i_structure_name              = 'VBAK'
*       is_variant                    =
*       i_save                        =
*       i_default                     = 'X'
*       is_layout                     =
*       is_print                      =
*       it_special_groups             =
*       it_toolbar_excluding          =
*       it_hyperlink                  =
*       it_alv_graphics               =
*       it_except_qinfo               =
*       ir_salv_adapter               =
      CHANGING
        it_outtab                     = i_vbak
*       it_fieldcatalog               =
*       it_sort                       =
*       it_filter                     =
      EXCEPTIONS
        invalid_parameter_combination = 1
        program_error                 = 2
        too_many_lines                = 3
        OTHERS                        = 4
            .
    IF sy-subrc &amp;lt;&amp;gt; 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    CREATE OBJECT v_event_reciever.
    SET HANDLER v_event_reciever-&amp;gt;handle_double_click FOR v_grid1.

  ENDIF.

  IF v_custom_container2 IS NOT BOUND
    AND i_vbap IS NOT INITIAL.

    CREATE OBJECT v_custom_container2
    EXPORTING container_name = v_container2.

    CREATE OBJECT v_grid2
      EXPORTING i_parent = v_custom_container2.

    CALL METHOD v_grid2-&amp;gt;set_table_for_first_display
       EXPORTING
*       i_buffer_active               =
*       i_bypassing_buffer            =
*       i_consistency_check           =
         i_structure_name              = 'VBAP'
*       is_variant                    =
*       i_save                        =
*       i_default                     = 'X'
*       is_layout                     =
*       is_print                      =
*       it_special_groups             =
*       it_toolbar_excluding          =
*       it_hyperlink                  =
*       it_alv_graphics               =
*       it_except_qinfo               =
*       ir_salv_adapter               =
      CHANGING
        it_outtab                     = i_vbap
*       it_fieldcatalog               =
*       it_sort                       =
*       it_filter                     =
      EXCEPTIONS
        invalid_parameter_combination = 1
        program_error                 = 2
        too_many_lines                = 3
        OTHERS                        = 4
            .
  ENDIF.
  IF v_custom_container2 IS BOUND.
    CALL METHOD v_grid2-&amp;gt;refresh_table_display.
  ENDIF.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE ok_code.
    WHEN 'BACK'.
      CALL METHOD v_grid1-&amp;gt;free.
      CALL METHOD v_grid2-&amp;gt;free.
      SET SCREEN 00.
      LEAVE SCREEN.

  ENDCASE.


ENDMODULE.                 " USER_COMMAND_0100  INPUT
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jun 2008 11:15:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-do-interactive-report-using-oops-in-alv/m-p/3890956#M934422</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-04T11:15:41Z</dc:date>
    </item>
  </channel>
</rss>

