<?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: simple report? in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518386#M569909</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's absolutely EASY.  I've got a Generalized class which I'll list below. Simply add that as an INCLUDE into your program then you only need a few lines of code WHATEVER YOUR INTERNAL TABLE, and you've got built in event handlers etc etc if you need them..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First Code 1 BLANK screen with a custom container CCONTAINER1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's a sample program. Just change the structure of my table to your structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Program  ZJIMBOTESTX.&lt;/P&gt;&lt;P&gt;DEFINE col_name.&lt;/P&gt;&lt;P&gt; read  table it_fldcat into  wa_it_fldcat index &amp;amp;1.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = &amp;amp;2.&lt;/P&gt;&lt;P&gt;      modify it_fldcat from wa_it_fldcat index &amp;amp;1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS :&lt;/P&gt;&lt;P&gt;&amp;lt;fs1&amp;gt; TYPE ANY,&lt;/P&gt;&lt;P&gt;&amp;lt;fs2&amp;gt; TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;&amp;lt;dyn_table&amp;gt; TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;&amp;lt;dyn_field&amp;gt;,&lt;/P&gt;&lt;P&gt;&amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE ZZJIMBOXX_INCL. " ====&amp;gt; class   code shown after this&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; program in the same post&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Define your ITAB here  into a structure s_elements.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES:  BEGIN OF s_elements,&lt;/P&gt;&lt;P&gt;  kunnr   TYPE kna1-kunnr,&lt;/P&gt;&lt;P&gt;  name1   TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;  stras   TYPE kna1-stras,&lt;/P&gt;&lt;P&gt;  telf1   TYPE kna1-telf1,&lt;/P&gt;&lt;P&gt;  ort01   TYPE kna1-ort01,&lt;/P&gt;&lt;P&gt;  pstlz   TYPE kna1-pstlz,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END OF  s_elements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: z_object type ref to zcl_dog, "Instantiate our class&lt;/P&gt;&lt;P&gt;t_elements TYPE TABLE OF s_elements, "refers to our ITAB&lt;/P&gt;&lt;P&gt;wa_elements TYPE s_elements,&lt;/P&gt;&lt;P&gt;wa_dyn_table_line TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;it_fldcat TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;new_table TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;dy_table TYPE REF TO data,&lt;/P&gt;&lt;P&gt;dy_line TYPE REF TO data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;END-OF-SELECTION..&lt;/P&gt;&lt;P&gt;MODULE status_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;ASSIGN wa_elements TO &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;*Instantiate our zcl_dog class&lt;/P&gt;&lt;P&gt;CREATE OBJECT&lt;/P&gt;&lt;P&gt;z_object&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;z_object = z_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;build_dynamic_structures&lt;/P&gt;&lt;P&gt;CHANGING it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM populate_dynamic_itab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display ALV grid with our EXIT tool button&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;display_grid&lt;/P&gt;&lt;P&gt;CHANGING it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt;ENDMODULE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE user_command_0100 INPUT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PAI not needed as we are using EVENTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDMODULE.&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 populate_dynamic_itab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Change this section to populate YOUR ITAB.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If you do it this way the move-corresponding will work&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;otherwise move fields manually.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT kunnr name1 stras telf1 ort01 pstlz&lt;/P&gt;&lt;P&gt;UP TO 200 rows&lt;/P&gt;&lt;P&gt;FROM kna1&lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE &amp;lt;dyn_table&amp;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;Now I 've done your ENTIRE program for you and you can use this approach for ANY tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally  insert this CLASS definition into an INCLUDE ZJIMBOXXX_INCL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CLASS zcl_dog DEFINITION. &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;  constructor&lt;/P&gt;&lt;P&gt;      IMPORTING       z_object type ref to zcl_dog,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                     i_parent     type ref to  cl_gui_custom_container,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   display_grid&lt;/P&gt;&lt;P&gt;      CHANGING        it_fldcat type lvc_t_fcat,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    build_dynamic_structures&lt;/P&gt;&lt;P&gt;      CHANGING        it_fldcat TYPE lvc_t_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;   METHODS:&lt;/P&gt;&lt;P&gt;    on_user_command FOR EVENT before_user_command OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;      IMPORTING       e_ucomm&lt;/P&gt;&lt;P&gt;                      sender,&lt;/P&gt;&lt;P&gt;    on_toolbar FOR EVENT toolbar OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;      IMPORTING      e_object&lt;/P&gt;&lt;P&gt;                     e_interactive,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     on_dubbelklik FOR EVENT double_click OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;      IMPORTING e_row&lt;/P&gt;&lt;P&gt;                e_column&lt;/P&gt;&lt;P&gt;                es_row_no,&lt;/P&gt;&lt;P&gt;    handle_data_changed&lt;/P&gt;&lt;P&gt;             FOR EVENT data_changed OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;             IMPORTING er_data_changed,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      handle_data_changed_finished&lt;/P&gt;&lt;P&gt;             FOR EVENT data_changed_finished OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;             IMPORTING e_modified&lt;/P&gt;&lt;P&gt;                       et_good_cells,&lt;/P&gt;&lt;P&gt;     verwerk&lt;/P&gt;&lt;P&gt;       IMPORTING program type sy-repid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     download_to_excel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  return_structure,&lt;/P&gt;&lt;P&gt;    create_dynamic_fcat&lt;/P&gt;&lt;P&gt;      EXPORTING       it_fldcat TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;  create_dynamic_table&lt;/P&gt;&lt;P&gt;      IMPORTING       it_fldcat TYPE lvc_t_fcat&lt;/P&gt;&lt;P&gt;      EXPORTING       dy_table  TYPE REF TO DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;    lr_rtti_struc   TYPE REF TO cl_abap_structdescr,        "RTTI&lt;/P&gt;&lt;P&gt;    zog             LIKE LINE OF lr_rtti_struc-&amp;gt;components, "RTTI&lt;/P&gt;&lt;P&gt;    wa_it_fldcat    TYPE lvc_s_fcat,&lt;/P&gt;&lt;P&gt;    it_fldcat       TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;    dy_table        TYPE REF TO data,&lt;/P&gt;&lt;P&gt;    dy_line         TYPE REF TO data,&lt;/P&gt;&lt;P&gt;    struct_grid_lset TYPE lvc_s_layo,&lt;/P&gt;&lt;P&gt;    grid_container1 TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;    grid1           TYPE REF TO cl_gui_alv_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ls_layout      type kkblo_layout,&lt;/P&gt;&lt;P&gt;      lt_fieldcat_wa type kkblo_fieldcat,&lt;/P&gt;&lt;P&gt;      l_mode type raw4,&lt;/P&gt;&lt;P&gt;       celltab type LVC_T_STYL,&lt;/P&gt;&lt;P&gt;      wa_celltab type lvc_s_styl,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        lt_fieldcat    type kkblo_t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_tabname      type slis_tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;   struc            LIKE  zog.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;    zogt           TYPE TABLE OF struc.&lt;/P&gt;&lt;P&gt;   ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS zcl_dog IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD constructor.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CALL METHOD super-&amp;gt;constructor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      i_appl_events = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      i_parent      = i_parent.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;   CREATE OBJECT grid_container1&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;               container_name = 'CCONTAINER1'.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT  grid1&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;              i_parent = grid_container1.&lt;/P&gt;&lt;P&gt;    SET HANDLER z_object-&amp;gt;on_user_command for grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER z_object-&amp;gt;on_toolbar for grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;handle_data_changed_finished FOR grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;on_dubbelklik FOR grid1.&lt;/P&gt;&lt;P&gt;    CALL METHOD 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;ENDMETHOD.&lt;/P&gt;&lt;P&gt;METHOD on_dubbelklik.&lt;/P&gt;&lt;P&gt;break-point 1.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;METHOD  handle_data_changed.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Insert user code here if required&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this method is entered if user ENTERS DATA.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;METHOD handle_data_changed_finished.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Insert user code here if required&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Method entered here after data entry has finished.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;METHOD return_structure.&lt;/P&gt;&lt;P&gt;  lr_rtti_struc ?= cl_abap_structdescr=&amp;gt;DESCRIBE_BY_DATA( &amp;lt;fs1&amp;gt; ).&lt;/P&gt;&lt;P&gt;  zogt[]  = lr_rtti_struc-&amp;gt;components.&lt;/P&gt;&lt;P&gt;  ASSIGN zogt[] TO &amp;lt;fs2&amp;gt;.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD create_dynamic_fcat.&lt;/P&gt;&lt;P&gt;    LOOP AT &amp;lt;fs2&amp;gt;  INTO zog.&lt;/P&gt;&lt;P&gt;      CLEAR wa_it_fldcat.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-fieldname = zog-name .&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-datatype = zog-type_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-inttype = zog-type_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-intlen = zog-length.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-decimals = zog-decimals.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = zog-name.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-lowercase = 'X'.&lt;/P&gt;&lt;P&gt;      APPEND wa_it_fldcat TO it_fldcat .&lt;/P&gt;&lt;P&gt;      assign it_fldcat[] to &amp;lt;field_catalog&amp;gt;.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;       assign it_fldcat[] to &amp;lt;field_catalog&amp;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  download_to_excel.&lt;/P&gt;&lt;P&gt; break-point 5.&lt;/P&gt;&lt;P&gt; call function 'LVC_TRANSFER_TO_KKBLO'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      it_fieldcat_lvc   = &amp;lt;field_catalog&amp;gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     is_layout_lvc     = m_cl_variant-&amp;gt;ms_layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_tech_complete  = ' '&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      es_layout_kkblo   = ls_layout&lt;/P&gt;&lt;P&gt;      et_fieldcat_kkblo = lt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; loop at lt_fieldcat into lt_fieldcat_wa.&lt;/P&gt;&lt;P&gt;    clear lt_fieldcat_wa-tech_complete.&lt;/P&gt;&lt;P&gt;    if lt_fieldcat_wa-tabname is initial.&lt;/P&gt;&lt;P&gt;      lt_fieldcat_wa-tabname = '1'.&lt;/P&gt;&lt;P&gt;      modify lt_fieldcat from lt_fieldcat_wa.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    l_tabname = lt_fieldcat_wa-tabname.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'ALV_XXL_CALL'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_tabname           = l_tabname&lt;/P&gt;&lt;P&gt;      is_layout           = ls_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat         = lt_fieldcat&lt;/P&gt;&lt;P&gt;      i_title             = sy-title&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      it_outtab           = &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      fatal_error         = 1&lt;/P&gt;&lt;P&gt;      no_display_possible = 2&lt;/P&gt;&lt;P&gt;      others              = 3.&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 'S' number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to be implemented&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; METHOD create_dynamic_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CALL METHOD cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;         it_fieldcatalog = it_fldcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;         ep_table = dy_table.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD build_dynamic_structures.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;return_structure.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;create_dynamic_fcat&lt;/P&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;P&gt;     it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt; CALL METHOD me-&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      dy_table        = dy_table.&lt;/P&gt;&lt;P&gt;     ASSIGN dy_table-&amp;gt;* TO &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; CREATE DATA dy_line LIKE LINE OF &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; ASSIGN dy_line-&amp;gt;* TO &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD display_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  struct_grid_lset-edit = 'X'. "To enable editing in ALV&lt;/P&gt;&lt;P&gt;  struct_grid_lset-grid_title = 'Bulkwijzigingen inkoopprijzen'.&lt;/P&gt;&lt;P&gt;  struct_grid_lset-ctab_fname = 'T_CELLCOLORS'.&lt;/P&gt;&lt;P&gt;  struct_grid_lset-stylefname = 'CELLTAB'.&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 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;loop at &amp;lt;dyn_table&amp;gt; into &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;   refresh celltab.&lt;/P&gt;&lt;P&gt;   wa_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.&lt;/P&gt;&lt;P&gt;   wa_celltab-fieldname = 'KUNNR'.&lt;/P&gt;&lt;P&gt;   insert wa_celltab into table celltab.&lt;/P&gt;&lt;P&gt;   wa_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.&lt;/P&gt;&lt;P&gt;   wa_celltab-fieldname = 'NAME1'.&lt;/P&gt;&lt;P&gt;   insert wa_celltab into table celltab.&lt;/P&gt;&lt;P&gt;   INSERT LINES OF celltab INTO wa_celltab-celltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   MODIFY &amp;lt;dyn_table&amp;gt; &amp;gt; index sy-index.&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;CALL METHOD grid1-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      is_layout       = struct_grid_lset&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;         it_outtab       = &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;         it_fieldcatalog = it_fldcat.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD on_user_command.&lt;/P&gt;&lt;P&gt;    CASE e_ucomm.&lt;/P&gt;&lt;P&gt;      WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;        LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;     WHEN 'EXCEL'.&lt;/P&gt;&lt;P&gt;     CALL METHOD me-&amp;gt;download_to_excel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;   WHEN 'VERW'.&lt;/P&gt;&lt;P&gt;      CALL METHOD me-&amp;gt;verwerk&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;     PROGRAM = SY-REPID.&lt;/P&gt;&lt;P&gt;   ENDCASE.&lt;/P&gt;&lt;P&gt; ENDMETHOD.                    "on_user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; METHOD on_toolbar.&lt;/P&gt;&lt;P&gt; DATA: ls_toolbar TYPE stb_button.&lt;/P&gt;&lt;P&gt;     CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE 0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'EXIT' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE icon_system_end TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Click2Exit' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;     CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE  0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'SAVE' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE  icon_system_save TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Save data' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;     CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE  0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'EDIT' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE  SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE  icon_toggle_display_change TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Edit data' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     MOVE  'EDIT' TO ls_toolbar-text.&lt;/P&gt;&lt;P&gt;     APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;     CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE  0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'VERW' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE  SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE   icon_businav_process to ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Verw.' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     MOVE  'VERW' TO ls_toolbar-text.&lt;/P&gt;&lt;P&gt;     APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;      CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE  0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'EXCEL' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE  SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE  icon_xxl TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Excel' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     MOVE  'EXCEL' TO ls_toolbar-text.&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;   ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   METHOD verwerk.&lt;/P&gt;&lt;P&gt;      PERFORM verwerk IN PROGRAM (program).&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&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;&lt;/P&gt;&lt;P&gt;Easy isn't it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now you'll never have to spend much time on these type of reports again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The class also contains methods where you canm do things if the user enters data etc etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;JIMBO&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 23 Jul 2007 08:55:06 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-23T08:55:06Z</dc:date>
    <item>
      <title>simple report?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518384#M569907</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;based on this fields i want simple report?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EMP &lt;/P&gt;&lt;P&gt;surname&lt;/P&gt;&lt;P&gt;Intials&lt;/P&gt;&lt;P&gt;NHI No &lt;/P&gt;&lt;P&gt;GROSS&lt;/P&gt;&lt;P&gt;AN/SAL &lt;/P&gt;&lt;P&gt;SPARE &lt;/P&gt;&lt;P&gt;EMP PEN &lt;/P&gt;&lt;P&gt;AVC&lt;/P&gt;&lt;P&gt;Co Pay &lt;/P&gt;&lt;P&gt;DOL &lt;/P&gt;&lt;P&gt;Sex-&lt;/P&gt;&lt;P&gt;DOB&lt;/P&gt;&lt;P&gt;Pen SA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;sree&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 05:42:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518384#M569907</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-23T05:42:05Z</dc:date>
    </item>
    <item>
      <title>Re: simple report?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518385#M569908</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;First you have to build some thing by your own then only any one can help you for the same i.e. about the scenario and the related tables. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Secondly are you planning any selection screen or some alv type. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please clarify.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dinesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 05:58:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518385#M569908</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-23T05:58:29Z</dc:date>
    </item>
    <item>
      <title>Re: simple report?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518386#M569909</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's absolutely EASY.  I've got a Generalized class which I'll list below. Simply add that as an INCLUDE into your program then you only need a few lines of code WHATEVER YOUR INTERNAL TABLE, and you've got built in event handlers etc etc if you need them..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First Code 1 BLANK screen with a custom container CCONTAINER1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's a sample program. Just change the structure of my table to your structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Program  ZJIMBOTESTX.&lt;/P&gt;&lt;P&gt;DEFINE col_name.&lt;/P&gt;&lt;P&gt; read  table it_fldcat into  wa_it_fldcat index &amp;amp;1.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = &amp;amp;2.&lt;/P&gt;&lt;P&gt;      modify it_fldcat from wa_it_fldcat index &amp;amp;1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS :&lt;/P&gt;&lt;P&gt;&amp;lt;fs1&amp;gt; TYPE ANY,&lt;/P&gt;&lt;P&gt;&amp;lt;fs2&amp;gt; TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;&amp;lt;dyn_table&amp;gt; TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;&amp;lt;dyn_field&amp;gt;,&lt;/P&gt;&lt;P&gt;&amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE ZZJIMBOXX_INCL. " ====&amp;gt; class   code shown after this&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; program in the same post&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Define your ITAB here  into a structure s_elements.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES:  BEGIN OF s_elements,&lt;/P&gt;&lt;P&gt;  kunnr   TYPE kna1-kunnr,&lt;/P&gt;&lt;P&gt;  name1   TYPE kna1-name1,&lt;/P&gt;&lt;P&gt;  stras   TYPE kna1-stras,&lt;/P&gt;&lt;P&gt;  telf1   TYPE kna1-telf1,&lt;/P&gt;&lt;P&gt;  ort01   TYPE kna1-ort01,&lt;/P&gt;&lt;P&gt;  pstlz   TYPE kna1-pstlz,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END OF  s_elements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: z_object type ref to zcl_dog, "Instantiate our class&lt;/P&gt;&lt;P&gt;t_elements TYPE TABLE OF s_elements, "refers to our ITAB&lt;/P&gt;&lt;P&gt;wa_elements TYPE s_elements,&lt;/P&gt;&lt;P&gt;wa_dyn_table_line TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;it_fldcat TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;new_table TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;dy_table TYPE REF TO data,&lt;/P&gt;&lt;P&gt;dy_line TYPE REF TO data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;END-OF-SELECTION..&lt;/P&gt;&lt;P&gt;MODULE status_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;ASSIGN wa_elements TO &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;*Instantiate our zcl_dog class&lt;/P&gt;&lt;P&gt;CREATE OBJECT&lt;/P&gt;&lt;P&gt;z_object&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;z_object = z_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;build_dynamic_structures&lt;/P&gt;&lt;P&gt;CHANGING it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM populate_dynamic_itab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display ALV grid with our EXIT tool button&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;display_grid&lt;/P&gt;&lt;P&gt;CHANGING it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt;ENDMODULE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE user_command_0100 INPUT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PAI not needed as we are using EVENTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDMODULE.&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 populate_dynamic_itab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Change this section to populate YOUR ITAB.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If you do it this way the move-corresponding will work&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;otherwise move fields manually.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT kunnr name1 stras telf1 ort01 pstlz&lt;/P&gt;&lt;P&gt;UP TO 200 rows&lt;/P&gt;&lt;P&gt;FROM kna1&lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE &amp;lt;dyn_table&amp;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;Now I 've done your ENTIRE program for you and you can use this approach for ANY tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally  insert this CLASS definition into an INCLUDE ZJIMBOXXX_INCL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CLASS zcl_dog DEFINITION. &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;  constructor&lt;/P&gt;&lt;P&gt;      IMPORTING       z_object type ref to zcl_dog,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                     i_parent     type ref to  cl_gui_custom_container,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   display_grid&lt;/P&gt;&lt;P&gt;      CHANGING        it_fldcat type lvc_t_fcat,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    build_dynamic_structures&lt;/P&gt;&lt;P&gt;      CHANGING        it_fldcat TYPE lvc_t_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;   METHODS:&lt;/P&gt;&lt;P&gt;    on_user_command FOR EVENT before_user_command OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;      IMPORTING       e_ucomm&lt;/P&gt;&lt;P&gt;                      sender,&lt;/P&gt;&lt;P&gt;    on_toolbar FOR EVENT toolbar OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;      IMPORTING      e_object&lt;/P&gt;&lt;P&gt;                     e_interactive,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     on_dubbelklik FOR EVENT double_click OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;      IMPORTING e_row&lt;/P&gt;&lt;P&gt;                e_column&lt;/P&gt;&lt;P&gt;                es_row_no,&lt;/P&gt;&lt;P&gt;    handle_data_changed&lt;/P&gt;&lt;P&gt;             FOR EVENT data_changed OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;             IMPORTING er_data_changed,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      handle_data_changed_finished&lt;/P&gt;&lt;P&gt;             FOR EVENT data_changed_finished OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;             IMPORTING e_modified&lt;/P&gt;&lt;P&gt;                       et_good_cells,&lt;/P&gt;&lt;P&gt;     verwerk&lt;/P&gt;&lt;P&gt;       IMPORTING program type sy-repid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     download_to_excel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  return_structure,&lt;/P&gt;&lt;P&gt;    create_dynamic_fcat&lt;/P&gt;&lt;P&gt;      EXPORTING       it_fldcat TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;  create_dynamic_table&lt;/P&gt;&lt;P&gt;      IMPORTING       it_fldcat TYPE lvc_t_fcat&lt;/P&gt;&lt;P&gt;      EXPORTING       dy_table  TYPE REF TO DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;    lr_rtti_struc   TYPE REF TO cl_abap_structdescr,        "RTTI&lt;/P&gt;&lt;P&gt;    zog             LIKE LINE OF lr_rtti_struc-&amp;gt;components, "RTTI&lt;/P&gt;&lt;P&gt;    wa_it_fldcat    TYPE lvc_s_fcat,&lt;/P&gt;&lt;P&gt;    it_fldcat       TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;    dy_table        TYPE REF TO data,&lt;/P&gt;&lt;P&gt;    dy_line         TYPE REF TO data,&lt;/P&gt;&lt;P&gt;    struct_grid_lset TYPE lvc_s_layo,&lt;/P&gt;&lt;P&gt;    grid_container1 TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;    grid1           TYPE REF TO cl_gui_alv_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ls_layout      type kkblo_layout,&lt;/P&gt;&lt;P&gt;      lt_fieldcat_wa type kkblo_fieldcat,&lt;/P&gt;&lt;P&gt;      l_mode type raw4,&lt;/P&gt;&lt;P&gt;       celltab type LVC_T_STYL,&lt;/P&gt;&lt;P&gt;      wa_celltab type lvc_s_styl,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        lt_fieldcat    type kkblo_t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_tabname      type slis_tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;   struc            LIKE  zog.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;    zogt           TYPE TABLE OF struc.&lt;/P&gt;&lt;P&gt;   ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS zcl_dog IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD constructor.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CALL METHOD super-&amp;gt;constructor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      i_appl_events = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      i_parent      = i_parent.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;   CREATE OBJECT grid_container1&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;               container_name = 'CCONTAINER1'.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT  grid1&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;              i_parent = grid_container1.&lt;/P&gt;&lt;P&gt;    SET HANDLER z_object-&amp;gt;on_user_command for grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER z_object-&amp;gt;on_toolbar for grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;handle_data_changed_finished FOR grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;on_dubbelklik FOR grid1.&lt;/P&gt;&lt;P&gt;    CALL METHOD 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;ENDMETHOD.&lt;/P&gt;&lt;P&gt;METHOD on_dubbelklik.&lt;/P&gt;&lt;P&gt;break-point 1.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;METHOD  handle_data_changed.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Insert user code here if required&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this method is entered if user ENTERS DATA.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;METHOD handle_data_changed_finished.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Insert user code here if required&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Method entered here after data entry has finished.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;METHOD return_structure.&lt;/P&gt;&lt;P&gt;  lr_rtti_struc ?= cl_abap_structdescr=&amp;gt;DESCRIBE_BY_DATA( &amp;lt;fs1&amp;gt; ).&lt;/P&gt;&lt;P&gt;  zogt[]  = lr_rtti_struc-&amp;gt;components.&lt;/P&gt;&lt;P&gt;  ASSIGN zogt[] TO &amp;lt;fs2&amp;gt;.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD create_dynamic_fcat.&lt;/P&gt;&lt;P&gt;    LOOP AT &amp;lt;fs2&amp;gt;  INTO zog.&lt;/P&gt;&lt;P&gt;      CLEAR wa_it_fldcat.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-fieldname = zog-name .&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-datatype = zog-type_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-inttype = zog-type_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-intlen = zog-length.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-decimals = zog-decimals.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = zog-name.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-lowercase = 'X'.&lt;/P&gt;&lt;P&gt;      APPEND wa_it_fldcat TO it_fldcat .&lt;/P&gt;&lt;P&gt;      assign it_fldcat[] to &amp;lt;field_catalog&amp;gt;.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;       assign it_fldcat[] to &amp;lt;field_catalog&amp;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  download_to_excel.&lt;/P&gt;&lt;P&gt; break-point 5.&lt;/P&gt;&lt;P&gt; call function 'LVC_TRANSFER_TO_KKBLO'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      it_fieldcat_lvc   = &amp;lt;field_catalog&amp;gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     is_layout_lvc     = m_cl_variant-&amp;gt;ms_layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_tech_complete  = ' '&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      es_layout_kkblo   = ls_layout&lt;/P&gt;&lt;P&gt;      et_fieldcat_kkblo = lt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; loop at lt_fieldcat into lt_fieldcat_wa.&lt;/P&gt;&lt;P&gt;    clear lt_fieldcat_wa-tech_complete.&lt;/P&gt;&lt;P&gt;    if lt_fieldcat_wa-tabname is initial.&lt;/P&gt;&lt;P&gt;      lt_fieldcat_wa-tabname = '1'.&lt;/P&gt;&lt;P&gt;      modify lt_fieldcat from lt_fieldcat_wa.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    l_tabname = lt_fieldcat_wa-tabname.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'ALV_XXL_CALL'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_tabname           = l_tabname&lt;/P&gt;&lt;P&gt;      is_layout           = ls_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat         = lt_fieldcat&lt;/P&gt;&lt;P&gt;      i_title             = sy-title&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      it_outtab           = &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      fatal_error         = 1&lt;/P&gt;&lt;P&gt;      no_display_possible = 2&lt;/P&gt;&lt;P&gt;      others              = 3.&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 'S' number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to be implemented&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; METHOD create_dynamic_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CALL METHOD cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;         it_fieldcatalog = it_fldcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;         ep_table = dy_table.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD build_dynamic_structures.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;return_structure.&lt;/P&gt;&lt;P&gt;CALL METHOD me-&amp;gt;create_dynamic_fcat&lt;/P&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;P&gt;     it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt; CALL METHOD me-&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      dy_table        = dy_table.&lt;/P&gt;&lt;P&gt;     ASSIGN dy_table-&amp;gt;* TO &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; CREATE DATA dy_line LIKE LINE OF &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; ASSIGN dy_line-&amp;gt;* TO &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD display_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  struct_grid_lset-edit = 'X'. "To enable editing in ALV&lt;/P&gt;&lt;P&gt;  struct_grid_lset-grid_title = 'Bulkwijzigingen inkoopprijzen'.&lt;/P&gt;&lt;P&gt;  struct_grid_lset-ctab_fname = 'T_CELLCOLORS'.&lt;/P&gt;&lt;P&gt;  struct_grid_lset-stylefname = 'CELLTAB'.&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 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;loop at &amp;lt;dyn_table&amp;gt; into &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;   refresh celltab.&lt;/P&gt;&lt;P&gt;   wa_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.&lt;/P&gt;&lt;P&gt;   wa_celltab-fieldname = 'KUNNR'.&lt;/P&gt;&lt;P&gt;   insert wa_celltab into table celltab.&lt;/P&gt;&lt;P&gt;   wa_celltab-style = cl_gui_alv_grid=&amp;gt;mc_style_disabled.&lt;/P&gt;&lt;P&gt;   wa_celltab-fieldname = 'NAME1'.&lt;/P&gt;&lt;P&gt;   insert wa_celltab into table celltab.&lt;/P&gt;&lt;P&gt;   INSERT LINES OF celltab INTO wa_celltab-celltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   MODIFY &amp;lt;dyn_table&amp;gt; &amp;gt; index sy-index.&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;CALL METHOD grid1-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      is_layout       = struct_grid_lset&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;         it_outtab       = &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;         it_fieldcatalog = it_fldcat.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD on_user_command.&lt;/P&gt;&lt;P&gt;    CASE e_ucomm.&lt;/P&gt;&lt;P&gt;      WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;        LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;     WHEN 'EXCEL'.&lt;/P&gt;&lt;P&gt;     CALL METHOD me-&amp;gt;download_to_excel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;   WHEN 'VERW'.&lt;/P&gt;&lt;P&gt;      CALL METHOD me-&amp;gt;verwerk&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;     PROGRAM = SY-REPID.&lt;/P&gt;&lt;P&gt;   ENDCASE.&lt;/P&gt;&lt;P&gt; ENDMETHOD.                    "on_user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; METHOD on_toolbar.&lt;/P&gt;&lt;P&gt; DATA: ls_toolbar TYPE stb_button.&lt;/P&gt;&lt;P&gt;     CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE 0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'EXIT' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE icon_system_end TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Click2Exit' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;     CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE  0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'SAVE' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE  icon_system_save TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Save data' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;     CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE  0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'EDIT' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE  SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE  icon_toggle_display_change TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Edit data' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     MOVE  'EDIT' TO ls_toolbar-text.&lt;/P&gt;&lt;P&gt;     APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;     CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE  0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'VERW' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE  SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE   icon_businav_process to ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Verw.' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     MOVE  'VERW' TO ls_toolbar-text.&lt;/P&gt;&lt;P&gt;     APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;      CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;     MOVE  0 TO ls_toolbar-butn_type.&lt;/P&gt;&lt;P&gt;     MOVE 'EXCEL' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;     MOVE  SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;     MOVE  icon_xxl TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;     MOVE 'Excel' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;     MOVE  'EXCEL' TO ls_toolbar-text.&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;   ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   METHOD verwerk.&lt;/P&gt;&lt;P&gt;      PERFORM verwerk IN PROGRAM (program).&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&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;&lt;/P&gt;&lt;P&gt;Easy isn't it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now you'll never have to spend much time on these type of reports again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The class also contains methods where you canm do things if the user enters data etc etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;JIMBO&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 08:55:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518386#M569909</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-23T08:55:06Z</dc:date>
    </item>
    <item>
      <title>Re: simple report?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518387#M569910</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;I think that you must separate your tasks in parts: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 - The Selection parameters;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;TABLES kna1.&lt;/P&gt;&lt;P&gt;&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Parameters Definitions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;b&amp;gt;SELECT-OPTIONS s_kunnr FOR kna1-kunnr OBLIGATORY.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 - Data Definitions;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table Definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;b&amp;gt;DATA: table_kna1 TYPE TABLE OF kna1.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Line Type Definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;b&amp;gt;DATA: line_kna1 TYPE kna1.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3 - Data Selections;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;START-OF-SELECTION.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selections&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;b&amp;gt;  SELECT *&lt;/P&gt;&lt;P&gt;  FROM kna1&lt;/P&gt;&lt;P&gt;  INTO TABLE table_kna1&lt;/P&gt;&lt;P&gt;  WHERE kunnr IN s_kunnr.&lt;/P&gt;&lt;P&gt;&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;4 - Treatment of the found registers, and data's exhibition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;  IF NOT table_kna1[] IS INITIAL.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  it reads each line in internal table &amp;lt;u&amp;gt;table_kna1&amp;lt;/u&amp;gt; and places it in line table &amp;lt;u&amp;gt;line_kna1&amp;lt;/u&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     &amp;lt;b&amp;gt;LOOP AT table_kna1 INTO line_kna1.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Write line_kna1-kunnr and line_kna1-name1 on screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      &amp;lt;b&amp;gt;WRITE: / line_kna1-kunnr, line_kna1-name1.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    &amp;lt;b&amp;gt;ENDLOOP.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  &amp;lt;b&amp;gt;ELSE.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Error tratament -&amp;gt; PRESS F1 IN (MESSEGE)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  &amp;lt;b&amp;gt;ENDIF.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;1000       DROGARIAS PACHECO S/A          &lt;/P&gt;&lt;P&gt;1001       DISTR FARM PANARELLO LTDA      &lt;/P&gt;&lt;P&gt;1002       BAYER COLOMBIA                 &lt;/P&gt;&lt;P&gt;1003       DISTR ALFA MEDICAMENTOS LTDA   &amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ok, This is a simple report, but, it's common to use:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Function module -&amp;gt; &amp;#147;&amp;lt;a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&amp;amp;query=reuse_alv_grid_display&amp;amp;adv=false&amp;amp;sortby=cm_rnd_rankvalue"&amp;gt;reuse_alv_grid_display&amp;lt;/a&amp;gt;&amp;#148;;&lt;/P&gt;&lt;P&gt;Class (ABAP Objects concept necessary ) -&amp;gt; &amp;#147;&amp;lt;a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/4544e790-0201-0010-c29c-e46c389f5a96"&amp;gt;CL_GUI_ALV_GRID&amp;lt;/a&amp;gt;&amp;#148;  or &amp;lt;a href="https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&amp;amp;query=alv&lt;EM&gt;Object&lt;/EM&gt;Model+&amp;amp;adv=false&amp;amp;sortby=cm_rnd_rankvalue"&amp;gt;CL_SALV*&amp;lt;/a&amp;gt; classes.&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Marcelo Ramos&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 16:08:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/simple-report/m-p/2518387#M569910</guid>
      <dc:creator>marcelo_ramos1</dc:creator>
      <dc:date>2007-07-23T16:08:52Z</dc:date>
    </item>
  </channel>
</rss>

