Runtime Error in ALV Tree Output

Dear All, I am trying to create a ALV Tree using Class cl_gui_alv_tree. The Report Shows the Output with the first Node but when i try to expand it is dumping with a runtime error GETWA_NOT_ASSIGNED in class CL_ALV_TREE_BASE and method SET_ITEMS_FOR_COLUMN. The Reason being the data which was copied in the initial node display to mt_outtab is getting refreshed.
Can any one of you help me the reason for the table getting refreshed. Do i need to pass any data.
I am doing the following steps.
1. Create Container,
2. Create Tree Class object
3. Generate the Field Catalog.
4. Set table for first display  " With empty internal table
5. Generate the Hierarchy
6. Call the Method Frontend Update.
Let me know if i had missed any steps in the process.
Thank you,
Regards,
Swaroop Patri

One reason for getting this error is using local defined tables for it_outtab parameter in the below code:
To get rid of the dump, define two distinct output tables globally: one is an empty table which you will pass to the below method, other one is your real output table whose size increases dependently.
  CALL METHOD go_tree->set_table_for_first_display
      EXPORTING
        is_hierarchy_header = ls_hier_header
      CHANGING
        it_outtab           = gt_data_e "Empty table
        it_fieldcatalog     = gt_fcat_tree.

Similar Messages

  • Double click in ALV tree output????

    Hi all,
    I am able to display output in tree format. But I want to add the double click functionality to some of the fields in output. Means if I double click on some value in output tree, it should call some transaction. Please help me with this issue of double clicking.
    Please tell how to handle events in this report tree display.
    For the following code its displaying output in tree format and in right way. But i need to add double click functionality to this.
    So provide me some sample program for this one....
    * create hierarchy
      CALL METHOD tree1->set_table_for_first_display
              EXPORTING
                   it_list_commentary   = lt_list_commentary
                   i_background_id      = 'ALV_BACKGROUND'
                   i_save               = 'A'
                   is_variant            = ls_variant
              CHANGING
                   it_sort              = gt_sort[]
                   it_outtab            = itab_outtab
                   it_fieldcatalog      = t_fieldcat. "gt_fieldcatalog.
    * expand first level
      CALL METHOD tree1->expand_tree
             EXPORTING
                 i_level = 1.
    * optimize column-width
      CALL METHOD tree1->column_optimize
               EXPORTING
                   i_start_column = tree1->c_hierarchy_column_name
                   i_end_column   = tree1->c_hierarchy_column_name.
    In grid ALV we can have double cilck functionality using code:
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program       = w_repid
                i_callback_pf_status_set = 'PF_STATUS'
                i_callback_user_command  = 'USER_COMMAND'
                is_layout                = ls_layout
                it_fieldcat              = gt_fc[]
    Here we can write subroutine for USER_COMMAND and handle the double click evenet. But tell me how to provide this in tree ALV.
    <REMOVED BY MODERATOR>
    Regards,
    Sachin
    Edited by: Alvaro Tejada Galindo on Feb 14, 2008 1:47 PM

    Hello Sachin
    The following sample report ZUS_SDN_ALV_TREE_DEMO demonstrates the crucial parts for double-click event handling (nodes & items) in ALV trees.
    *& Report  ZUS_SDN_ALV_TREE_DEMO
    *& Thread: double click in ALV tree output????
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="742412"></a>
    REPORT  zus_sdn_alv_tree_demo.
    CLASS cl_gui_column_tree DEFINITION LOAD.
    CLASS cl_gui_cfw DEFINITION LOAD.
    TYPE-POOLS: abap.
    TYPES: BEGIN OF ty_s_outtab.
    INCLUDE TYPE knvv AS data.
    TYPES: nkey       TYPE lvc_nkey.
    TYPES: parent_key TYPE lvc_nkey.
    TYPES: END OF ty_s_outtab.
    TYPES: ty_t_outtab    TYPE STANDARD TABLE OF ty_s_outtab
                          WITH DEFAULT KEY.
    DATA: gt_outtab    TYPE ty_t_outtab.
    DATA:
      gd_okcode        TYPE ui_func,
      gd_repid         TYPE syst-repid,
      gt_fcat          TYPE lvc_t_fcat,
      gs_layout        TYPE lvc_s_layo,
      gs_variant       TYPE disvariant,
      go_docking       TYPE REF TO cl_gui_docking_container,
      go_tree          TYPE REF TO cl_gui_alv_tree.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
        handle_node_double_click
          FOR EVENT node_double_click OF cl_gui_alv_tree
          IMPORTING node_key,
        handle_item_double_click
          FOR EVENT item_double_click OF cl_gui_alv_tree
          IMPORTING node_key
                    fieldname.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_node_double_click.
        message 'Event=Double-Click on Node' type 'I'.
        call transaction 'XD03'.
      ENDMETHOD.                    "handle_node_double_click
      METHOD handle_item_double_click.
        message 'Event=Double-Click on Item' type 'I'.
        call transaction 'VA03'.
      ENDMETHOD.                    "handle_item_double_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      PERFORM init_controls.
      gd_repid = syst-repid.
      CALL METHOD go_docking->link
        EXPORTING
          repid                       = gd_repid
          dynnr                       = '0100'
    *      container                   =
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          lifetime_dynpro_dynpro_link = 3
          OTHERS                      = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL SCREEN '0100'.
    ** NOTE: no elements on screen
    **  PROCESS BEFORE OUTPUT.
    **    MODULE STATUS_0100.
    **  PROCESS AFTER INPUT.
    **    MODULE USER_COMMAND_0100.
    END-OF-SELECTION.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.
    *  SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      TRANSLATE gd_okcode TO UPPER CASE.
      CASE gd_okcode.
        WHEN 'BACK'  OR
             'EXIT'  OR
             'CANC'.
          SET SCREEN 0. LEAVE SCREEN.
        WHEN 'REFRESH'.
        WHEN OTHERS.
      ENDCASE.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  init_controls
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM init_controls .
    * Create docking container
      CREATE OBJECT go_docking
        EXPORTING
          parent = cl_gui_container=>screen0
          ratio  = 90
        EXCEPTIONS
          OTHERS = 6.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * create tree control
      CREATE OBJECT go_tree
        EXPORTING
            parent              = go_docking
            node_selection_mode = cl_gui_column_tree=>node_sel_mode_multiple
            item_selection      = 'X'  " required for double-click event on item
            no_html_header      = ''
            no_toolbar          = ''
        EXCEPTIONS
            cntl_error                   = 1
            cntl_system_error            = 2
            create_error                 = 3
            lifetime_error               = 4
            illegal_node_selection_mode  = 5
            failed                       = 6
            illegal_column_name          = 7.
      IF sy-subrc <> 0.
        MESSAGE x208(00) WITH 'ERROR'.                          "#EC NOTEXT
      ENDIF.
    * create Hierarchy-header
      DATA ls_hierarchy_header TYPE treev_hhdr.
      PERFORM build_hierarchy_header CHANGING ls_hierarchy_header.
      PERFORM build_fieldcatalog.
      PERFORM set_layout_and_variant.
    * create emty tree-control
      CALL METHOD go_tree->set_table_for_first_display
        EXPORTING
    **      i_structure_name     = 'KNVV'
          is_variant           = gs_variant
          i_save               = 'A'
    *      i_default            = 'X'
          is_hierarchy_header  = ls_hierarchy_header
    *      is_exception_field   =
    *      it_special_groups    =
    *      it_list_commentary   =
    *      i_logo               =
    *      i_background_id      =
    *      it_toolbar_excluding =
    *      it_except_qinfo      =
        CHANGING
          it_outtab            = gt_outtab
    *      it_filter            =
          it_fieldcatalog      = gt_fcat.
    * create hierarchy
      PERFORM create_hierarchy.
    * register events
      PERFORM register_events.
    * adjust column_width
      CALL METHOD go_tree->column_optimize.
    ENDFORM.                    " init_controls
    *&      Form  build_hierarchy_header
    *       build hierarchy-header-information
    *      -->P_L_HIERARCHY_HEADER  strucxture for hierarchy-header
    FORM build_hierarchy_header CHANGING
                                   p_hierarchy_header TYPE treev_hhdr.
      p_hierarchy_header-heading = 'Hierarchy Header'.          "#EC NOTEXT
      p_hierarchy_header-tooltip =
                             'This is the Hierarchy Header !'.  "#EC NOTEXT
      p_hierarchy_header-width = 30.
      p_hierarchy_header-width_pix = ''.
    ENDFORM.                               " build_hierarchy_header
    *&      Form  BUILD_FIELDCATALOG
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_fieldcatalog .
      REFRESH: gt_fcat.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'KNVV'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      DELETE gt_fcat FROM 8.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  SET_LAYOUT_AND_VARIANT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM set_layout_and_variant .
      CLEAR: gs_layout,
             gs_variant.
      gs_variant-report = syst-repid.
      gs_variant-handle = 'TREE'.
    ENDFORM.                    " SET_LAYOUT_AND_VARIANT
    *&      Form  create_hierarchy
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM create_hierarchy .
      DATA: ls_knvv    TYPE sflight,
            ls_outtab  TYPE ty_s_outtab,
            lt_outtab  TYPE ty_t_outtab.
    * get data
      SELECT * FROM knvv INTO CORRESPONDING FIELDS OF TABLE lt_outtab
                            UP TO 200 ROWS .                "#EC CI_NOWHERE
      SORT lt_outtab BY kunnr vkorg.
    * add data to tree
      DATA: ld_kunnr_key TYPE lvc_nkey,
            ld_vkorg_key TYPE lvc_nkey,
            ld_last_key  TYPE lvc_nkey.
      LOOP AT lt_outtab INTO ls_outtab.
        ON CHANGE OF ls_outtab-kunnr.
          PERFORM add_customer_line USING    ls_outtab-data
                                  CHANGING ld_kunnr_key.
        ENDON.
        ON CHANGE OF ls_outtab-vkorg.
          PERFORM add_salesorg_line USING    ls_outtab-data
                                             ld_kunnr_key
                                  CHANGING ld_vkorg_key.
        ENDON.
        PERFORM add_complete_line USING  ls_outtab-data
                                         ld_vkorg_key
                                CHANGING ld_last_key.
      ENDLOOP.
    * calculate totals
      CALL METHOD go_tree->update_calculations.
    * this method must be called to send the data to the frontend
      CALL METHOD go_tree->frontend_update.
    ENDFORM.                    " create_hierarchy
    *&      Form  add_customer_line
    *       add hierarchy-level 1 to tree
    *      -->P_LS_SFLIGHT  sflight
    *      -->P_RELEATKEY   relatkey
    *     <-->p_node_key    new node-key
    FORM add_customer_line USING     us_data TYPE ty_s_outtab-data
                                     ud_relat_key TYPE lvc_nkey
                         CHANGING  cd_node_key TYPE lvc_nkey.
      DATA: l_node_text TYPE lvc_value,
            ls_data TYPE ty_s_outtab-data.
    * set item-layout
      DATA: lt_item_layout TYPE lvc_t_layi,
            ls_item_layout TYPE lvc_s_layi.
      ls_item_layout-t_image = '@A0@'.  " icon_customer.
      ls_item_layout-fieldname = go_tree->c_hierarchy_column_name.
      ls_item_layout-style   =
                            cl_gui_column_tree=>style_intensifd_critical.
      APPEND ls_item_layout TO lt_item_layout.
    * add node
      l_node_text =  us_data-kunnr.
      DATA: ls_node TYPE lvc_s_layn.
      ls_node-n_image   = space.
      ls_node-exp_image = space.
      CALL METHOD go_tree->add_node
        EXPORTING
          i_relat_node_key = ud_relat_key
          i_relationship   = cl_gui_column_tree=>relat_last_child
          i_node_text      = l_node_text
          is_outtab_line   = ls_data
          is_node_layout   = ls_node
          it_item_layout   = lt_item_layout
        IMPORTING
          e_new_node_key   = cd_node_key.
    ENDFORM.                               " add_customer_line
    *&      Form  add_salesorg_line
    *       add hierarchy-level 1 to tree
    *      -->P_LS_SFLIGHT  sflight
    *      -->P_RELEATKEY   relatkey
    *     <-->p_node_key    new node-key
    FORM add_salesorg_line USING     us_data TYPE ty_s_outtab-data
                                     ud_relat_key TYPE lvc_nkey
                         CHANGING  cd_node_key TYPE lvc_nkey.
      DATA: l_node_text TYPE lvc_value,
            ls_data TYPE ty_s_outtab-data.
    * set item-layout
      DATA: lt_item_layout TYPE lvc_t_layi,
            ls_item_layout TYPE lvc_s_layi.
      ls_item_layout-t_image = '@DS@'.  " ICON_PARTNER_SALES_ACTIVITY
      ls_item_layout-fieldname = go_tree->c_hierarchy_column_name.
      ls_item_layout-style   =
                            cl_gui_column_tree=>style_intensifd_critical.
      APPEND ls_item_layout TO lt_item_layout.
    * add node
      l_node_text =  us_data-vkorg.
      DATA: ls_node TYPE lvc_s_layn.
      ls_node-n_image   = space.
      ls_node-exp_image = space.
      CALL METHOD go_tree->add_node
        EXPORTING
          i_relat_node_key = ud_relat_key
          i_relationship   = cl_gui_column_tree=>relat_last_child
          i_node_text      = l_node_text
          is_outtab_line   = ls_data
          is_node_layout   = ls_node
          it_item_layout   = lt_item_layout
        IMPORTING
          e_new_node_key   = cd_node_key.
    ENDFORM.                               " add_salesorg_line
    *&      Form  add_cmplete_line
    *       add hierarchy-level 3 to tree
    *      -->P_LS_SFLIGHT  sflight
    *      -->P_RELEATKEY   relatkey
    *     <-->p_node_key    new node-key
    FORM add_complete_line USING     us_data TYPE ty_s_outtab-data
                                     ud_relat_key TYPE lvc_nkey
                         CHANGING  cd_node_key TYPE lvc_nkey.
      DATA: l_node_text TYPE lvc_value.
    * set item-layout
      DATA: lt_item_layout TYPE lvc_t_layi,
            ls_item_layout TYPE lvc_s_layi.
      ls_item_layout-fieldname = go_tree->c_hierarchy_column_name.
      ls_item_layout-class   = cl_gui_column_tree=>item_class_checkbox.
    **  ls_item_layout-editable = 'X'.
      APPEND ls_item_layout TO lt_item_layout.
    **  CLEAR ls_item_layout.
    **  ls_item_layout-fieldname = 'PLANETYPE'.
    **  ls_item_layout-alignment = cl_gui_column_tree=>align_right.
    **  APPEND ls_item_layout TO lt_item_layout.
      l_node_text =  us_data-vtweg.
      DATA: ls_node TYPE lvc_s_layn.
      ls_node-n_image   = space.
      ls_node-exp_image = space.
      CALL METHOD go_tree->add_node
        EXPORTING
          i_relat_node_key = ud_relat_key
          i_relationship   = cl_gui_column_tree=>relat_last_child
          is_outtab_line   = us_data
          i_node_text      = l_node_text
          is_node_layout   = ls_node
          it_item_layout   = lt_item_layout
        IMPORTING
          e_new_node_key   = cd_node_key.
    ENDFORM.                               " add_complete_line
    *&      Form  register_events
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM register_events.
    * define the events which will be passed to the backend
      DATA: lt_events TYPE cntl_simple_events,
            l_event TYPE cntl_simple_event.
    * define the events which will be passed to the backend
      l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
      APPEND l_event TO lt_events.
    **  l_event-eventid = cl_gui_column_tree=>eventid_checkbox_change.
    **  APPEND l_event TO lt_events.
    **  l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
    **  APPEND l_event TO lt_events.
    **  l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
    **  APPEND l_event TO lt_events.
    **  l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
    **  APPEND l_event TO lt_events.
    **  l_event-eventid = cl_gui_column_tree=>eventid_header_click.
    **  APPEND l_event TO lt_events.
    **  l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
    **  APPEND l_event TO lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_node_double_click.
      APPEND l_event TO lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_item_double_click.
      APPEND l_event TO lt_events.
      CALL METHOD go_tree->set_registered_events
        EXPORTING
          events                    = lt_events
        EXCEPTIONS
          cntl_error                = 1
          cntl_system_error         = 2
          illegal_event_combination = 3.
      IF sy-subrc <> 0.
        MESSAGE x208(00) WITH 'ERROR'.                          "#EC NOTEXT
      ENDIF.
    * set Handler
      set handler:
        lcl_eventhandler=>handle_node_double_click for go_tree,
        lcl_eventhandler=>handle_item_double_click for go_tree.
    **  DATA: l_event_receiver TYPE REF TO lcl_tree_event_receiver.
    **  CREATE OBJECT l_event_receiver.
    **  SET HANDLER l_event_receiver->handle_node_ctmenu_request
    **                                                        FOR tree1.
    **  SET HANDLER l_event_receiver->handle_node_ctmenu_selected
    **                                                        FOR tree1.
    **  SET HANDLER l_event_receiver->handle_item_ctmenu_request
    **                                                        FOR tree1.
    **  SET HANDLER l_event_receiver->handle_item_ctmenu_selected
    **                                                        FOR tree1.
    **  SET HANDLER l_event_receiver->handle_checkbox_change FOR tree1.
    ENDFORM.                               " register_events
    Regards
      Uwe

  • Editable field in alv tree output using cl_gui_alv_tree

    Hi,
    i need Editable field with F4 help in alv tree output using cl_gui_alv_tree.
    regards,
    Naresh

    sadly, this is not possible. An ALV Tree cannot by editable.
    Regards

  • ALV Tree Output

    Hi,
    In my present project we have requirement for developing ALV tree output using ALV configuration model in WD4A. Please provide sample code or tutorial related to ALV Tree development in WebDynpro ABAP.
    Best regards,
    Alleiah

    Hi Alleiah Marabathini ,
    The following r excellent websites containing ONLY PDF docs on ALV Tree in WebDynpro ABAP:
    Simple Example for Using ALV in Web Dynpro for ABAP
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3439404a-0801-0010-dda5-8c14514d690d
    Programming the ALV Configuration Model in Web Dynpro for ABAP
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/1190424a-0801-0010-84b5-ef03fd2d33d9
    Editing ALV in Web Dynpro for ABAP
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3133474a-0801-0010-d692-81827814a5a1
    Using Events with ALV Tables in Web Dynpro for ABAP
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/bd28494a-0801-0010-45a3-fc359d82d3e8
    Using ALV with a Dynamic Context Node in Web Dynpro for ABAP
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/4c70444a-0801-0010-7688-9e4bd844b783
    cheers!
    gyanaraj

  • Editable field with F4 help in alv tree output using cl_gui_alv_tree

    HI
    i need Editable field with F4 help in alv tree output using cl_gui_alv_tree
    Regards
    Naresh

    Hi Naresh,
    Pass the field catalog with the additional parameter (ls_fcat-edit = 'X'.).
    for F4 help if the data element have the search help it automatically will come. other wise include the additional parameter in the field catalog (ls_fcat-F4AVAILABL = 'X')
    Reward if found helpful.
    Regards,
    Boobalan Suburaj

  • Regarding Runtime error in ALV List Display.

    am using following to display data in ALV List.
    but after executing of program am getting runtime error called 'Field Symbol has Not been assigned' .
    please tell me how to correct the error.
    Very urgent
    Suitable answers rewarded with Maximum Ponits...
    REPORT  zmatrix.
    TYPE-POOLS: slis.
    TABLES: agr_define, sza5_d0700.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-006.
    SELECT-OPTIONS: s_role FOR agr_define-agr_name OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
                           D A T A                                       *
    TYPES: BEGIN OF ty_agr_1251_inf,
           agr_name TYPE agr_1251-agr_name,
           object   TYPE agr_1251-object,
           field    TYPE agr_1251-field,
           low(20)  TYPE c,
           high     TYPE agr_1251-high,
           infty    TYPE t582s-infty,
           itext    TYPE t582s-itext,
           END OF ty_agr_1251_inf.
    TYPES: BEGIN OF ty_agr_1251_tcode,
           agr_name TYPE agr_1251-agr_name,
           object   TYPE agr_1251-object,
           field    TYPE agr_1251-field,
           low(20)  TYPE c,
           high     TYPE agr_1251-high,
           tcode    TYPE tstct-tcode,
           ttext    TYPE tstct-ttext,
           END OF ty_agr_1251_tcode.
    TYPES: BEGIN OF ty_t582s,
           infty TYPE agval,
           itext TYPE t582s-itext,
           END OF ty_t582s.
    TYPES: BEGIN OF ty_code,
           tcode TYPE tstct-tcode,
           ttext TYPE ttext_stct,
    END OF ty_code.
    TYPES: BEGIN OF ty_inf,
           infty TYPE t582s-infty,
           itext TYPE t582s-itext,
           END OF ty_inf.
    TYPES: BEGIN OF ty_role,
           agr_name TYPE agr_1251-agr_name,
           END OF ty_role.
    TYPES: BEGIN OF tys_role_dtls,
             agr_name  TYPE agr_name,
             value     TYPE c,
             property  TYPE c,
           END  OF tys_role_dtls.
    TYPES: BEGIN OF tys_infotype_final,
           text(60),
           text1(60),
           value(4),
           END OF tys_infotype_final.
                        I N T E R N A L   T A B L E S                    *
    DATA: wa_infotyp_final TYPE tys_infotype_final.
    DATA: t_infotyp_final TYPE TABLE OF tys_infotype_final.
    DATA: BEGIN OF wa_infotyp_dtls,
             infty     TYPE infty,
             itext     TYPE intxt,
             role_dtls TYPE TABLE OF tys_role_dtls,
          END OF wa_infotyp_dtls.
    DATA: BEGIN OF wa_tcode_dtls,
             tcode     TYPE tcode,
             ttext     TYPE ttext_stct,
             role_dtls TYPE TABLE OF tys_role_dtls,
           END OF wa_tcode_dtls.
    DATA: t_infotyp_dtls      LIKE   TABLE OF wa_infotyp_dtls,
          t_tcode_dtls        LIKE   TABLE OF wa_tcode_dtls,
          t_role_dtls         TYPE   TABLE OF tys_role_dtls,
          wa_role_dtls        TYPE   tys_role_dtls.
    DATA: wa_inf              TYPE   ty_inf,
          t_inf               TYPE   STANDARD TABLE OF ty_inf.
    DATA: wa_role             TYPE   ty_role,
          t_role              TYPE   STANDARD TABLE OF ty_role.
    DATA: wa_tcode            TYPE   ty_code,
          t_tcode             TYPE   TABLE OF ty_code.
    DATA: wa_agr_1251_inf     TYPE   ty_agr_1251_inf.
    DATA: wa_agr_1251_tcode   TYPE   ty_agr_1251_tcode.
    DATA: t_agr_1251_inf      TYPE STANDARD TABLE OF ty_agr_1251_inf.
    DATA: t_agr_1251_tc       TYPE STANDARD TABLE OF ty_agr_1251_tcode.
    DATA: wa_582s             TYPE   ty_t582s.
    DATA: t_582s              TYPE STANDARD TABLE OF ty_t582s.
    DATA: t_range_tcode       TYPE RANGE OF tcode.
    DATA: t_range_inf         TYPE RANGE OF infotyp.
    DATA: wa_range_inf        LIKE LINE OF t_range_inf.
    DATA: wa_range_tcode      LIKE LINE OF t_range_tcode.
    DATA: wa_field TYPE slis_fieldcat_alv.
    DATA: t_field TYPE slis_t_fieldcat_alv.
                      VARIABLES FOR OLE                                  *
    DATA: text(20),
          count(20).
    DATA: text1(30).
    DATA: agr_name       TYPE   agr_1251-agr_name.
    DATA: flag           TYPE   i VALUE '0'.
    DATA: string1        TYPE   string.
    DATA: str            TYPE   string VALUE 'SAP%'.
    DATA: count1         TYPE   i VALUE '0'.
    *&   Event START-OF-SELECTION
    START-OF-SELECTION.
      PERFORM f100_get_inf_data.
      PERFORM f200_process_inf_data.
      count1 = 1.
      PERFORM f300_prepare_field_catalog.
      PERFORM f110_main_data.
      PERFORM f400_display_data.
      PERFORM  f100_get_trans_data.
    *&      Form  f110_main_data
          text
    FORM f110_main_data.
      wa_infotyp_final-text = 'Access to Infotypes'.
      APPEND wa_infotyp_final TO t_infotyp_final.
      wa_infotyp_final-text = 'Infotype'.
      wa_infotyp_final-text1 = 'Description'.
      APPEND wa_infotyp_final TO t_infotyp_final.
      wa_infotyp_final-text = '*'.
      wa_infotyp_final-text1 = 'Acess to all Infotypes'.
    LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.
       READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf
       WITH KEY agr_name = wa_role-agr_name field = 'INFTY' low = '*'.
       IF syst-subrc = 0.
         wa_infotyp_final-value = 'X'.
       ENDIF.
    ENDLOOP.
      APPEND wa_infotyp_final TO t_infotyp_final.
      LOOP AT t_inf INTO wa_inf WHERE infty <> ' '.
        wa_infotyp_final-text = wa_inf-infty.
        wa_infotyp_final-text1 = wa_inf-itext.
        LOOP AT t_role INTO wa_role WHERE agr_name <> ' '.
       Role Name
          CLEAR wa_role_dtls.
          flag = 1.
          wa_role_dtls-agr_name =  wa_role-agr_name.
        For Value D & F
          READ TABLE t_agr_1251_inf INTO wa_agr_1251_inf
          WITH KEY agr_name = wa_role-agr_name field = 'AUTHC'..
          IF syst-subrc EQ 0.
            IF wa_agr_1251_inf-low = 'R'.
              wa_infotyp_final-value = 'D'.
            ELSE.
              wa_infotyp_final-value = 'F'.
            ENDIF.
          ENDIF.
          APPEND wa_role_dtls TO t_role_dtls.
          APPEND wa_infotyp_final TO t_infotyp_final.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.                    "f110_main_data
    *&      Form  f100_get_inf_data
          text
    FORM f100_get_inf_data.
                          Logic for Infotypes                            *
      SELECT aagr_name aobject
             afield alow a~high
             INTO TABLE t_agr_1251_inf
             FROM agr_1251 AS a INNER JOIN agr_define AS b
             ON aagr_name EQ bagr_name
      WHERE ( ( aobject EQ 'P_ORGIN' OR aobject EQ 'P_PERNR' )
      AND   ( aagr_name IN s_role ) AND ( bagr_name NOT LIKE str ) ).
    ENDFORM.                    "f100_get_inf_data
    *&      Form  f200_get_inf_process_data
          text
    FORM f200_process_inf_data.
      LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
        IF wa_agr_1251_inf-high IS INITIAL.
          CLEAR wa_range_inf.
          wa_range_inf-sign = 'I'.
          wa_range_inf-option = 'EQ'.
          wa_range_inf-low = wa_agr_1251_inf-low.
          APPEND wa_range_inf TO t_range_inf.
        ELSE.
          CLEAR wa_range_inf.
          wa_range_inf-sign = 'I'.
          wa_range_inf-option = 'BT'.
          wa_range_inf-low = wa_agr_1251_inf-low.
          wa_range_inf-high = wa_agr_1251_inf-high.
          APPEND wa_range_inf TO t_range_inf.
        ENDIF.
      ENDLOOP.
      SORT t_range_inf.
      DELETE ADJACENT DUPLICATES FROM t_range_inf.
      IF t_range_inf IS NOT INITIAL.
        SELECT infty itext FROM t582s
        INTO TABLE t_582s
        WHERE sprsl = 'EN' AND infty IN t_range_inf.
        IF syst-subrc EQ 0.
        ENDIF.
      ENDIF.
      LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
        IF wa_agr_1251_inf-high IS INITIAL.
          READ TABLE t_582s INTO wa_582s
            WITH KEY infty = wa_agr_1251_inf-low.
          IF syst-subrc EQ 0.
            wa_agr_1251_inf-infty = wa_582s-infty.
            wa_agr_1251_inf-itext = wa_582s-itext.
            MODIFY t_agr_1251_inf FROM wa_agr_1251_inf
                         TRANSPORTING infty itext.
            IF syst-subrc EQ 0.
            ENDIF.
          ENDIF.
        ELSE.
          CLEAR count.
          LOOP AT t_582s INTO wa_582s
                  WHERE infty GE wa_agr_1251_inf-low
                    AND infty LE wa_agr_1251_inf-high.
            IF count LE 1.
              wa_agr_1251_inf-high = space.
              wa_agr_1251_inf-infty = wa_582s-infty.
              wa_agr_1251_inf-itext = wa_582s-itext.
              MODIFY t_agr_1251_inf FROM wa_agr_1251_inf
                           TRANSPORTING infty itext.
              IF syst-subrc EQ 0.
                CLEAR wa_582s.
              ENDIF.
            ELSE.
              wa_agr_1251_inf-high = space.
              wa_agr_1251_inf-infty = wa_582s-infty.
              wa_agr_1251_inf-itext = wa_582s-itext.
              APPEND wa_agr_1251_inf TO t_agr_1251_inf.
            ENDIF.
            CLEAR wa_agr_1251_inf.
            count = count + 1.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
      wa_role-agr_name = ' '.
      APPEND wa_role TO t_role.
      wa_role-agr_name = ' '.
      APPEND wa_role TO t_role.
      LOOP AT t_agr_1251_inf INTO wa_agr_1251_inf.
        IF wa_agr_1251_inf IS NOT INITIAL.
          wa_role-agr_name = wa_agr_1251_inf-agr_name.
          wa_inf-infty = wa_agr_1251_inf-infty.
          wa_inf-itext = wa_agr_1251_inf-itext.
          APPEND wa_role TO t_role.
          APPEND wa_inf TO t_inf.
        ENDIF.
      ENDLOOP.
      SORT t_role BY agr_name.
      DELETE ADJACENT DUPLICATES FROM t_role.
      SORT t_inf BY infty.
      DELETE ADJACENT DUPLICATES FROM t_inf.
    ENDFORM.                    "f200_get_process_inf_data
    *&      Form  f100_get_trans_data
          text
    FORM  f100_get_trans_data.
                  Logic for Transaction Codes                            *
      SELECT aagr_name aobject
               afield alow a~high
        INTO CORRESPONDING FIELDS OF TABLE t_agr_1251_tc
        FROM agr_1251 AS a
        INNER JOIN agr_define AS b ON aagr_name EQ bagr_name
        WHERE a~agr_name IN s_role
          AND a~object EQ 'S_TCODE'.
    ENDFORM.                    "f100_get_trans_data
    *&      Form  f200_process_trans_data
          text
    FORM f200_process_trans_data.
      LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
        IF wa_agr_1251_tcode-high IS INITIAL.
          CLEAR wa_range_tcode.
          wa_range_tcode-sign = 'I'.
          wa_range_tcode-option = 'EQ'.
          wa_range_tcode-low = wa_agr_1251_tcode-low.
          APPEND wa_range_tcode TO t_range_tcode.
        ELSE.
          CLEAR wa_range_tcode.
          wa_range_tcode-sign = 'I'.
          wa_range_tcode-option = 'BT'.
          wa_range_tcode-low = wa_agr_1251_tcode-low.
          wa_range_tcode-high = wa_agr_1251_tcode-high.
          APPEND wa_range_tcode TO t_range_tcode.
        ENDIF.
      ENDLOOP.
      SORT t_range_tcode.
      DELETE ADJACENT DUPLICATES FROM t_range_tcode.
      IF t_range_tcode IS NOT INITIAL.
        SELECT tcode
               ttext
          FROM tstct
          INTO TABLE t_tcode
          WHERE sprsl EQ 'E'
            AND tcode IN t_range_tcode.
        IF sy-subrc EQ 0.
        ENDIF.
      ENDIF.
      SORT t_agr_1251_tc BY agr_name.
      LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
        IF wa_agr_1251_tcode-high IS INITIAL.
          READ TABLE t_tcode INTO wa_tcode
            WITH KEY tcode = wa_agr_1251_tcode-low.
          IF syst-subrc EQ 0.
            wa_agr_1251_tcode-tcode = wa_tcode-tcode.
            wa_agr_1251_tcode-ttext = wa_tcode-ttext.
            MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode
                         TRANSPORTING tcode ttext.
            IF syst-subrc EQ 0.
            ENDIF.
          ENDIF.
        ELSE.
          CLEAR count.
          LOOP AT t_tcode INTO wa_tcode
                  WHERE tcode GE wa_agr_1251_tcode-low
                    AND tcode LE wa_agr_1251_tcode-high.
            IF count LE 1.
              agr_name  = wa_agr_1251_tcode-agr_name.
              wa_agr_1251_tcode-high = space.
              wa_agr_1251_tcode-tcode = wa_tcode-tcode.
              wa_agr_1251_tcode-ttext = wa_tcode-ttext.
              MODIFY t_agr_1251_tc FROM wa_agr_1251_tcode
                           TRANSPORTING tcode ttext high.
              IF syst-subrc EQ 0.
                CLEAR wa_tcode.
              ENDIF.
              count = 1.
            ELSE.
              wa_agr_1251_tcode-high = space.
              wa_agr_1251_tcode-agr_name = agr_name.
              wa_agr_1251_tcode-low =  wa_tcode-tcode.
              wa_agr_1251_tcode-tcode = wa_tcode-tcode.
              wa_agr_1251_tcode-ttext = wa_tcode-ttext.
              APPEND wa_agr_1251_tcode TO t_agr_1251_tc.
            ENDIF.
            CLEAR wa_agr_1251_tcode.
            count = count + 1.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
      LOOP AT t_agr_1251_tc INTO wa_agr_1251_tcode.
        wa_role-agr_name = wa_agr_1251_tcode-agr_name.
        APPEND wa_role TO t_role.
      ENDLOOP.
      SORT t_role BY agr_name.
      DELETE ADJACENT DUPLICATES FROM t_role.
      SORT t_tcode BY tcode.
      DELETE ADJACENT DUPLICATES FROM t_tcode.
    ENDFORM.                    "f200_process_trans_data
    *&      Form  f100_prepare_field_catalog
          text
    FORM f300_prepare_field_catalog.
      LOOP AT t_role INTO wa_role.
        wa_field-col_pos = count1.
        wa_field-fieldname = wa_role-agr_name.
        APPEND wa_field TO t_field.
        count1 = count1 + 1.
      ENDLOOP.
    ENDFORM.                    "f100_prepare_field_catalog
    *&      Form  f100_display_data
          text
    FORM f400_display_data.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
                EXPORTING
                I_INTERFACE_CHECK              = ' '
                I_BYPASSING_BUFFER             =
                I_BUFFER_ACTIVE                = ' '
                  i_callback_program             = sy-cprog
                I_CALLBACK_PF_STATUS_SET       = ' '
                I_CALLBACK_USER_COMMAND        = ' '
                I_STRUCTURE_NAME               =
                IS_LAYOUT                      =
                  it_fieldcat                    = t_field[]
                IT_EXCLUDING                   =
                IT_SPECIAL_GROUPS              =
                IT_SORT                        =
                IT_FILTER                      =
                IS_SEL_HIDE                    =
                I_DEFAULT                      = 'X'
                I_SAVE                         = ' '
                IS_VARIANT                     =
                IT_EVENTS                      =
                IT_EVENT_EXIT                  =
                IS_PRINT                       =
                IS_REPREP_ID                   =
                I_SCREEN_START_COLUMN          = 0
                I_SCREEN_START_LINE            = 0
                I_SCREEN_END_COLUMN            = 0
                I_SCREEN_END_LINE              = 0
                IR_SALV_LIST_ADAPTER           =
                IT_EXCEPT_QINFO                =
                I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
              IMPORTING
                E_EXIT_CAUSED_BY_CALLER        =
                ES_EXIT_CAUSED_BY_USER         =
                  TABLES
                    t_outtab                       = t_infotyp_final[]
                 EXCEPTIONS
                   program_error                  = 1
                   OTHERS                         = 2
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    "f100_display_data

    this are the wasy u can build a field catalog...
    1.----
    FORM fill_fieldcat .
    DATA: fld(30),
    idx(2) TYPE n.
    DEFINE no_output.
    fieldcatalog-fieldname = &1.
    fieldcatalog-no_out = 'X'.
    append fieldcatalog to fieldcatalog.
    clear fieldcatalog.
    END-OF-DEFINITION.
    DEFINE catalog.
    fieldcatalog-fieldname = &1.
    fieldcatalog-seltext_s = &2.
    if not &3 is initial.
    fieldcatalog-seltext_m = &3.
    else.
    fieldcatalog-seltext_m = fieldcatalog-seltext_s.
    endif.
    if not &4 is initial.
    fieldcatalog-seltext_l = &4.
    else.
    fieldcatalog-seltext_l = fieldcatalog-seltext_m.
    endif.
    append fieldcatalog to fieldcatalog.
    clear fieldcatalog.
    END-OF-DEFINITION.
    catalog 'AVAIL_BASE'
    'Base Qty.'
    'Base Qty. Available'
    'Base Quantity Available'.
    catalog 'AVAIL_SALES'
    'Sales Qty.'
    'Sales Qty. Available'
    'Sales Quantity Available'.
    LOOP AT t_char_data.
    idx = sy-tabix.
    CONCATENATE 'CHR' idx INTO fld.
    catalog fld
    t_char_data-atbez
    t_char_data-atbez
    t_char_data-atbez.
    ENDLOOP.
    ADD 1 TO idx.
    WHILE idx LE 15.
    CONCATENATE 'CHR' idx INTO fld.
    no_output fld.
    ADD 1 TO idx.
    ENDWHILE..
    fieldcatalog-fieldname = 'EXACT'.
    fieldcatalog-checkbox = 'X'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    2.----
    FORM fieldcatalog.
    REFRESH fc. CLEAR fc.
    fc-tabname = 'HEADER'.
    fc-fieldname = 'KUNNR'.
    fc-ref_tabname = 'MSKU'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'HEADER'.
    fc-fieldname = 'NAME1_K'.
    fc-ref_tabname = 'KNA1'.
    fc-ref_fieldname = 'NAME1'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'HEADER'.
    fc-fieldname = 'TOTAL'.
    fc-ref_tabname = 'MBEW'.
    fc-ref_fieldname = 'SALK3'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'MATNR'.
    fc-ref_tabname = 'MSKU'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'MAKTX'.
    fc-ref_tabname = 'MAKT'.
    fc-no_out = 'X'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'CHARG'.
    fc-ref_tabname = 'MSKU'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'WERKS'.
    fc-ref_tabname = 'MSKU'.
    fc-no_out = 'X'.
    APPEND fc. CLEAR fc.
    fc-tabname = 'LIST'.
    fc-fieldname = 'NAME1_W'.
    fc-ref_tabname = 'T001W'.
    fc-ref_fieldname = 'NAME1'.
    fc-no_out = 'X'.
    APPEND fc. CLEAR fc.

  • Getting runtime error in ALV ...

    Hi,
    I am calling function REUSE_ALV_GRID_DISPLAY to display my data in an ALV grid... this code was working fine and so I used it for a different set of data but now it is throwing a runtime error saying ..
    GETWA_NOT_ASSIGNED
    Field symbol has not yet been assigned.
    I dont understand why I am getting this and how to resolve this...my sample code is pasted below..
    REPORT  ZFB12TEST.
    TABLES:     BKPF.
    TYPE-POOLS: slis.
    DATA: BEGIN OF bkpf_rec OCCURS 0,
                    bukrs LIKE BKPF-BUKRS,
                    blart LIKE BKPF-BLART,
                    cpudt LIKE BKPF-CPUDT,
                    budat LIKE BKPF-budat,
                    belnr LIKE BKPF-BELNR,
                    gjahr LIKE BKPF-GJAHR,
          END OF bkpf_rec.
    DATA migo_data LIKE bkpf_rec occurs 0 with header line.
    DATA: it_cat TYPE slis_t_fieldcat_alv,
          wa_lay TYPE slis_layout_alv.
    FIELD-SYMBOLS: <fs_cat> LIKE LINE OF it_cat.
    SELECT-OPTIONS: so_bukrs FOR BKPF-BUKRS,
                    so_blart FOR BKPF-BLART,
                    so_cpudt FOR BKPF-CPUDT,
                    so_budat FOR BKPF-budat,
                    so_belnr FOR BKPF-BELNR,
                    so_gjahr FOR BKPF-GJAHR.
    *include bdcrecx1.
    start-of-selection.
    SELECT bukrs blart cpudt budat belnr gjahr into table bkpf_rec from bkpf
    where bukrs IN
    so_bukrs and blart in so_blart and cpudt in so_cpudt and budat in
    so_budat and belnr in so_belnr and gjahr in so_gjahr.
    loop at bkpf_rec.
    move-corresponding bkpf_rec to migo_data.
    append migo_data.
    endloop.
    DATA: it_sortcat   type slis_sortinfo_alv occurs 1,
    wa_sort like line of it_sortcat.
    wa_sort-spos      = 1.
    wa_sort-fieldname = 'bukrs'.
    wa_sort-subtot = 'X'.
    wa_sort-up = 'X'.
    APPEND wa_sort TO it_sortcat.
    wa_sort-spos      = 2.
    wa_sort-fieldname = 'belnr'.
    wa_sort-subtot = 'X'.
    wa_sort-up = 'X'.
    APPEND wa_sort TO it_sortcat.
    wa_lay-zebra = 'X'.
    data: tmp_fc type slis_fieldcat_alv .
          tmp_fc-reptext_ddic = 'CC'.
          tmp_fc-fieldname    = 'bukrs'.
          tmp_fc-tabname      = 'migo_data'.
          tmp_fc-outputlen    = 10.
          tmp_fc-do_sum      = space.
          append tmp_fc to it_cat.
          tmp_fc-reptext_ddic = 'Document number'.
          tmp_fc-fieldname    = 'belnr'.
          tmp_fc-tabname      = 'migo_data'.
          tmp_fc-outputlen    = 20.
          tmp_fc-do_sum      = space.
          append tmp_fc to it_cat.
          tmp_fc-reptext_ddic = 'Entry date'.
          tmp_fc-fieldname    = 'cpudt'.
          tmp_fc-tabname      = 'migo_data'.
          tmp_fc-outputlen    = 20.
          tmp_fc-do_sum      = space.
          append tmp_fc to it_cat.
          tmp_fc-reptext_ddic = 'Posting date'.
          tmp_fc-fieldname    = 'budat'.
          tmp_fc-tabname      = 'migo_data'.
          tmp_fc-outputlen    = 20.
          tmp_fc-do_sum      = space.
          append tmp_fc to it_cat.
          tmp_fc-reptext_ddic = 'Doc type'.
          tmp_fc-fieldname    = 'blart'.
          tmp_fc-tabname      = 'migo_data'.
          tmp_fc-outputlen    = 10.
          tmp_fc-do_sum      = space.
          append tmp_fc to it_cat.
          tmp_fc-reptext_ddic = 'Fiscal year'.
          tmp_fc-fieldname    = 'gjahr'.
          tmp_fc-tabname      = 'migo_data'.
          tmp_fc-outputlen    = 10.
          tmp_fc-do_sum      = space.
          append tmp_fc to it_cat.
      LOOP AT it_cat ASSIGNING <fs_cat>.
        CLEAR <fs_cat>-key.
      ENDLOOP.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_grid_title  = 'Invoice selected'
          is_layout     = wa_lay
          it_fieldcat   = it_cat
          it_sort       = it_sortcat
        TABLES
          t_outtab      = MIGO_DATA
        EXCEPTIONS
          program_error = 1
          OTHERS        = 2.

    When building your sort catalog,  make sure to include the tabname.
      wa_sort-spos = 1.
      wa_sort-fieldname = 'BUKRS'.
    <b>  wa_sort-tabname = 'MIGO_DATA'.</b>
      wa_sort-subtot = 'X'.
      wa_sort-up = 'X'.
      append wa_sort to it_sortcat.
      wa_sort-spos = 2.
      wa_sort-fieldname = 'BELNR'.
    <b>  wa_sort-tabname = 'MIGO_DATA'.</b>
      wa_sort-subtot = 'X'.
      wa_sort-up = 'X'.
      append wa_sort to it_sortcat.
    Please make sure to award points and mark your post as solved.  Thanks.
    REgards,
    Rich HEilman
    Message was edited by: Rich Heilman
    Message was edited by: Rich Heilman

  • Runtime error in ALV

    Hi,
        I have a report to display in ALV list display, It give a runtime error when i run the report ,
    error message : in INCLUDE LKKBLF99 - Field symbol not assigned.
        I am not usning any field symbols in my report, can anyone suggest what could be the problem.

    Hi,
    While creating fieldcatalog table you should give the fieldname and the tabname in capital letters.
    for eg.
    fcat-fieldname = 'MATNR'.
    regards,
    Santosh Thorat.

  • LIST_TOO_MANY_LPROS error for alv list output

    Hi All,
    we are displaying two lists in one output by using resue_alv_list_output by passing  list_append = 'X'  to l  IS_LAYOUT   parameter.
    when we are using like this we are getting the LIST_TOO_MANY_LPROS  error.please suggest.
    please find the below error.
    Runtime Errors         LIST_TOO_MANY_LPROS
    Date and Time          08.09.2009 21:06:33
    Short text
    No further list processing possible.
    What happened?
    You requested too many consecutive nested call screens.
    What can you do?
    If possible, leave the current screen level before making a further
    selection (function Back=F3 or Cancel=F12).
    Note down which actions and inputs caused the error.
    To process the problem further, contact you SAP system
    administrator.
    Using Transaction ST22 for ABAP Dump Analysis, you can look
    at and manage termination messages, and you can also
    keep them for a long time.
    Error analysis
    At present, the maximum permitted number of nested screen levels is
    restricted to 50.
    How to correct the error
    If possible, unnecessary screens should be suppressed beforehand.
    Remember that you can also output a list at the same screen level as
    the details list.
    In some cases, it is better to create a new screen level stack by
    switching to another program or transaction.
    If the error occures in a non-modified SAP program, you may be able to
    find an interim solution in an SAP Note.
    If you have access to SAP Notes, carry out a search with the following
    keywords:
    "LIST_TOO_MANY_LPROS" " "
    "SAPLKKBL" or "LKKBLU01"
    "K_KKB_LIST_DISPLAY"
    If you cannot solve the problem yourself and want to send an error
    notification to SAP, include the following information:
    1. The description of the current problem (short dump)
    To save the description, choose "System->List->Save->Local File
    (Unconverted)".
    2. Corresponding system log
    Display the system log by calling transaction SM21.
    Restrict the time interval to 10 minutes before and five minutes
    after the short dump. Then choose "System->List->Save->Local File
    (Unconverted)".
    3. If the problem occurs in a problem of your own or a modified SAP
    program: The source code of the program
    In the editor, choose "Utilities->More
    Utilities->Upload/Download->Download".
    4. Details about the conditions under which the error occurred or which
    actions and input led to the error.

    Just want to give a hit in relevance to what Sandra suggested. You can set a breakpoint in one of callback subroutine but skip first 49 its calls. This means that only when it is called 50th time, processing will stop at this breakpoint. To do that, in debugger set a breakpoint -> go to Breakpoints tab -> enter 49 in Skip field. You will avoid counting number of calls yourself, system will do that for you.
    Regards
    Marcin

  • Regarding alv tree output

    Hi all,
              I am working in oops alv tree.
               i have written the code i m getting the tree i.e frst output, but when i am try to get the second one i m not able.
    frnds below i m giving my code plz suggest wht is my mistake.
    <code>
    REPORT  yh_alvtreedemo1.
    TYPE-POOLS : fibs,stree.
    TYPE-POOLS:slis.
    DATA : t_node TYPE snodetext.
    DATA : it_node LIKE TABLE OF t_node,
           wa_node LIKE t_node.
    DATA: t_fieldcat    TYPE slis_t_fieldcat_alv,
          fs_fieldcat   TYPE slis_fieldcat_alv.
    DATA:w_repid LIKE sy-repid.
    *Internal Table declarations
    DATA: BEGIN OF fs_scarr,
            carrid LIKE scarr-carrid,
          END OF fs_scarr.
          DATA:BEGIN OF fs_spfli,
            carrid LIKE spfli-carrid,
            connid LIKE spfli-connid,
         END OF fs_spfli.
    DATA:BEGIN OF fs_sflight,
            carrid LIKE sflight-carrid,
            connid LIKE sflight-connid,
            fldate LIKE sflight-fldate,
         END OF fs_sflight.
    DATA:BEGIN OF fs_sbook,
            carrid LIKE sbook-carrid,
            connid LIKE sbook-connid,
            fldate LIKE sbook-fldate,
            bookid LIKE sbook-bookid,
         END OF fs_sbook.
    DATA:t_scarr LIKE TABLE OF fs_scarr,
         t_spfli LIKE TABLE OF fs_spfli,
         t_sflight LIKE TABLE OF fs_sflight,
         t_sbook LIKE TABLE OF fs_sbook.
         START-OF-SELECTION.
      PERFORM get_data.
      PERFORM build_tree.
      PERFORM display_tree.
    *&      Form  get_data
    FORM get_data .
    SELECT carrid
             FROM scarr
             INTO TABLE t_scarr.
      SELECT carrid
              connid
              FROM spfli
              INTO TABLE t_spfli
              FOR ALL ENTRIES IN t_scarr
              WHERE carrid EQ t_scarr-carrid.
              ENDFORM.                    " get_data
    *&      Form  build_tree
    FORM build_tree .
      CLEAR: it_node,
             wa_node.
      SORT: t_scarr BY carrid,
            t_spfli BY carrid connid,
            t_sflight BY carrid connid fldate,
            t_sbook BY carrid connid fldate bookid.
            wa_node-type = 'T'.
            wa_node-name = 'Flight Details'.
            wa_node-tlevel = '01'.
            wa_node-nlength = '15'.
            wa_node-color = '4'.
              wa_node-text = 'Flight'.
      wa_node-tlength ='20'.
      wa_node-tcolor = 3.
      APPEND wa_node TO it_node.
      CLEAR wa_node.
      LOOP AT t_scarr INTO fs_scarr.
      wa_node-type = 'P'.
      wa_node-name = 'CARRID'.
      wa_node-tlevel = '02'.
      wa_node-nlength = '8'.
      wa_node-color = '1'.
      wa_node-text = fs_scarr-carrid.
      wa_node-tlength ='20'.
      wa_node-tcolor = 4.
      APPEND wa_node TO it_node.
        CLEAR wa_node.
        LOOP AT t_spfli INTO fs_spfli WHERE carrid EQ fs_scarr-carrid.
        wa_node-type = 'P'.
        wa_node-name = 'CONNID'.
        wa_node-tlevel = '03'.
        wa_node-nlength = '8'.
        wa_node-color = '1'.
        wa_node-text = fs_spfli-connid.
        wa_node-tlength ='20'.
        wa_node-tcolor = 4.
        APPEND wa_node TO it_node.
        CLEAR wa_node.    ENDLOOP.
      ENDLOOP.
    ENDFORM.                    " build_tree
    *&      Form  display_tree
    FORM display_tree .
      CALL FUNCTION 'RS_TREE_CONSTRUCT'
        TABLES
          nodetab = it_node.
          w_repid = sy-repid.
          CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
          EXPORTING
          callback_program      = w_repid
          callback_user_command = 'USER_COMMAND'
          callback_gui_status   = 'SET_PF'.
    ENDFORM.                    " display_tree
    *&      Form  pick
         -->COMMAND    text
         -->NODE       text
    FORM user_command    TABLES pt_nodes STRUCTURE seucomm
                          USING pv_command TYPE c
                      CHANGING pv_exit     TYPE c
                      pv_list_refresh      TYPE c.
               pv_list_refresh = 'X'.
               IF pt_nodes-tlevel = '03'.
               CLEAR t_fieldcat[].
               SELECT carrid
                      connid
                      fldate
               FROM   sflight
               INTO TABLE t_sflight
               WHERE connid EQ pt_nodes-text.
        fs_fieldcat-col_pos = 1.
        fs_fieldcat-fieldname = 'CARRID'.
        fs_fieldcat-seltext_m = 'Airlinecarrier'.
        fs_fieldcat-key = 'X'.
        fs_fieldcat-hotspot = 'X'.
        APPEND fs_fieldcat TO t_fieldcat.
        CLEAR fs_fieldcat.    fs_fieldcat-col_pos = 2.
        fs_fieldcat-fieldname = 'CONNID'.
        fs_fieldcat-seltext_m = 'Connection No'.
        fs_fieldcat-key = 'X'.
        fs_fieldcat-hotspot = 'X'.
        APPEND fs_fieldcat TO t_fieldcat.
        CLEAR fs_fieldcat.    fs_fieldcat-col_pos = 3.
        fs_fieldcat-fieldname = 'FLDATE'.
        fs_fieldcat-seltext_m = 'Flight Date'.
        fs_fieldcat-key = 'X'.
        fs_fieldcat-hotspot = 'X'.
        APPEND fs_fieldcat TO t_fieldcat.
        CLEAR fs_fieldcat.
        w_repid = sy-repid.
        CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
          EXPORTING
            i_callback_program = w_repid
            it_fieldcat        = t_fieldcat[]
          TABLES
            t_outtab           = t_sflight.
      ENDIF.
    ENDFORM.                    "pick
    *&      Form  set_pf
          text
    FORM set_pf.
      SET PF-STATUS 'MYPF'.
    ENDFORM.                    "set_pf
    </code>

    Hi kamal,
    here is the referance code u go through this may be u get some help...
    REPORT  ZASHU_TREE_MATHOD2.
    *TABLES: KNVH.
    TABLES: pa0002.
    TYPES: BEGIN OF WORKTYPE,
             LEVEL(2),
              pernr like pa0002-pernr,
             begda like pa0002-begda,
              endda like pa0002-endda,
             aedat like pa0002-aedat,
            HKUNNR LIKE KNVH-KUNNR,
            KUNNR  LIKE KNVH-HKUNNR,
           END OF WORKTYPE.
    DATA: IT_pa0002 TYPE TABLE OF WORKTYPE,
          WA_pa0002 LIKE LINE OF IT_pa0002,
          IT_TEMP TYPE TABLE OF WORKTYPE,
          WA_TEMP LIKE LINE OF IT_TEMP,
          IT_WORK TYPE TABLE OF WORKTYPE,
          WA_WORK LIKE LINE OF IT_WORK.
    DATA : BEGIN OF IT_NODES OCCURS 0.
            INCLUDE STRUCTURE SNODETEXT.
    DATA : END OF IT_NODES.
    CONSTANTS: NUMBER_OF_LEVELS TYPE I VALUE 4.
    PARAMETER: P_pernr LIKE pa0002-pernr.
    START-OF-SELECTION.
    Parent = 1. hierarchy node
    WA_TEMP-pernr = P_pernr  .
    APPEND WA_TEMP TO IT_TEMP.
    WA_WORK-pernr = WA_TEMP-pernr.
    WA_WORK-LEVEL = 1.
    APPEND WA_WORK TO IT_WORK.
    Reading customer hierarchy (max. 6 level)
    DO NUMBER_OF_LEVELS TIMES.
      CHECK NOT IT_TEMP IS INITIAL.
      SELECT pernr endda
        FROM pa0002
        INTO CORRESPONDING FIELDS OF TABLE IT_pa0002
        FOR ALL ENTRIES IN IT_TEMP
        WHERE pernr = IT_TEMP-pernr.
      LOOP AT IT_pa0002 INTO WA_pa0002.
        WA_pa0002-LEVEL = SY-INDEX + 1.
        APPEND WA_pa0002 TO IT_WORK.
      ENDLOOP.
      IT_TEMP[] = IT_pa0002[].
    ENDDO.
    PERFORM MAKE_NODE.
    Hierarchy nodes -> tree control
    LOOP AT IT_WORK INTO WA_WORK WHERE LEVEL = 1.
      PERFORM MAKE_NODE1.
      LOOP AT IT_WORK INTO WA_WORK WHERE LEVEL = 2 AND
                                       pernr = WA_WORK-pernr.
       PERFORM MAKE_NODE.
       LOOP AT IT_WORK INTO WA_WORK WHERE LEVEL = 3 AND
                                          HKUNNR = WA_WORK-KUNNR.
         PERFORM MAKE_NODE.
         LOOP AT IT_WORK INTO WA_WORK WHERE LEVEL = 4 AND
                                            HKUNNR = WA_WORK-KUNNR.
           PERFORM MAKE_NODE.
           LOOP AT IT_WORK INTO WA_WORK WHERE LEVEL = 5 AND
                                              HKUNNR = WA_WORK-KUNNR.
             PERFORM MAKE_NODE.
             LOOP AT IT_WORK INTO WA_WORK WHERE LEVEL = 6 AND
                                             HKUNNR = WA_WORK-KUNNR.
               PERFORM MAKE_NODE.
             ENDLOOP.
           ENDLOOP.
         ENDLOOP.
       ENDLOOP.
      ENDLOOP.
    ENDLOOP.
    Making the tree control
    CALL FUNCTION 'RS_TREE_CONSTRUCT'
           TABLES
                NODETAB      = IT_NODES
           EXCEPTIONS
                TREE_FAILURE = 1.
    Display the tree control
      DATA : F15 TYPE C.
      CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
           EXPORTING
                CALLBACK_PROGRAM      = SY-REPID
           IMPORTING
                F15                   = F15 .
    FORM MAKE_NODE.
    IT_NODES-type = 'T'.
      IT_NODES-NAME = WA_WORK-pernr.
      IT_NODES-COLOR = 1.
      IT_NODES-INTENSIV = 1.
      IT_NODES-TEXT = WA_WORK-pernr.
      IT_NODES-TLENGTH = 16.
      IT_NODES-TLEVEL = WA_WORK-LEVEL.
      IT_NODES-TCOLOR = 1.
      IT_NODES-TINTENSIV = 1.
      APPEND IT_NODES.
    ENDFORM.
    FORM MAKE_NODE1.
    IT_NODES-type = 'P'.
      IT_NODES-NAME = WA_WORK-pernr.
      IT_NODES-COLOR = 1.
      IT_NODES-INTENSIV = 1.
      IT_NODES-TEXT = WA_WORK-pernr.
      IT_NODES-TLENGTH = 16.
      IT_NODES-TLEVEL = WA_WORK-LEVEL.
      IT_NODES-TCOLOR = 1.
      IT_NODES-TINTENSIV = 1.
      APPEND IT_NODES.
    ENDFORM.
    Thanks and Regards
    Ashu Singh

  • Runtime error in ALV demo

    HI,
    Runtime error in the below  report as internal table IT_FIELDCAT is empty after the execution of FM
    REUSE_ALV_FIELDCATALOG_MERGE.
    Please tell me how do i rectify this error.
    REPORT  ZMY_ALV_COLORING_CELLS.
    TYPE-POOLS SLIS.
    DATA: BEGIN OF itab OCCURS 0,
            BUKRS LIKE T001-BUKRS,
            BUTXT LIKE T001-BUTXT,
          END   OF itab.
    PARAMETERS: P_BUKRS TYPE TBUKRS.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BUKRS.
    PERFORM F4_FOR_BUKRS.
    *&      Form  F4_FOR_BUKRS
    FORM F4_FOR_BUKRS.
      DATA: IT_FIELDCAT TYPE  SLIS_T_FIELDCAT_ALV ,
            ES_SELFIELD TYPE  SLIS_SELFIELD. " Get data
      SELECT BUKRS
             BUTXT
             FROM T001
             INTO TABLE itab
             up to 10 rows .
    Get field
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                I_PROGRAM_NAME     = SY-REPID
                I_INTERNAL_TABNAME = 'ITAB'
           CHANGING
                CT_FIELDCAT        = IT_FIELDCAT[].
      LOOP AT IT_FIELDCAT.
        IT_FIELDCAT-KEY = SPACE.
        IF IT_FIELDCAT-FIELDNAME = 'BUTXT'.
          IT_FIELDCAT-EMPHASIZE  = 'C710'.
        ENDIF.
        IF IT_FIELDCAT-FIELDNAME = 'BUKRS'.
          IT_FIELDCAT-EMPHASIZE  = 'C610'.
        ENDIF.
        MODIFY IT_FIELDCAT.
      ENDLOOP.
      CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
        EXPORTING
    I_TITLE                       = 'THIS IS FOR F4 IN COLOR'
          I_TABNAME                     = 'ITAB'
          IT_FIELDCAT                   = IT_FIELDCAT[]
        IMPORTING
          ES_SELFIELD                   = ES_SELFIELD
        TABLES
          T_OUTTAB                      = ITAB .
    Thanks,
    Ahmed.

    Change like this
    >
    ahmed shaik wrote:
    > HI,
    >
    > Runtime error in the below  report as internal table IT_FIELDCAT is empty after the execution of FM
    > REUSE_ALV_FIELDCATALOG_MERGE.
    >
    > Please tell me how do i rectify this error.
    >
    >
    >
    > REPORT  ZMY_ALV_COLORING_CELLS.
    > TYPE-POOLS SLIS.
    >
    > DATA: BEGIN OF itab OCCURS 0,
    >         BUKRS LIKE T001-BUKRS,
    >         BUTXT LIKE T001-BUTXT,
    >       END   OF itab.
    >
    > PARAMETERS: P_BUKRS TYPE TBUKRS.
    >
    > AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BUKRS.
    >
    >
    >  PERFORM F4_FOR_BUKRS.
    > &----
    > *&      Form  F4_FOR_BUKRS
    > ----
    > FORM F4_FOR_BUKRS.
    >
    >   DATA: IT_FIELDCAT TYPE  SLIS_T_FIELDCAT_ALV ,
    >         ES_SELFIELD TYPE  SLIS_SELFIELD. " Get data
    >
    >   SELECT BUKRS
    >          BUTXT
    >          FROM T001
    >          INTO TABLE itab
    >          up to 10 rows .
    > * Get field
    >
    >   CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    >        EXPORTING
    >             I_PROGRAM_NAME     = SY-REPID
    >*             I_INTERNAL_TABNAME = 'ITAB'
    >           I_STRUCTURE_NAME = 'ITAB'
    >        CHANGING
    >             CT_FIELDCAT        = IT_FIELDCAT[].
    >
    >   LOOP AT IT_FIELDCAT.
    >     IT_FIELDCAT-KEY = SPACE.
    >     IF IT_FIELDCAT-FIELDNAME = 'BUTXT'.
    >       IT_FIELDCAT-EMPHASIZE  = 'C710'.
    >     ENDIF.
    >     IF IT_FIELDCAT-FIELDNAME = 'BUKRS'.
    >       IT_FIELDCAT-EMPHASIZE  = 'C610'.
    >     ENDIF.
    >
    >     MODIFY IT_FIELDCAT.
    >   ENDLOOP.
    >
    >   CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
    >     EXPORTING
    >  I_TITLE                       = 'THIS IS FOR F4 IN COLOR'
    >       I_TABNAME                     = 'ITAB'
    >       IT_FIELDCAT                   = IT_FIELDCAT[]
    >     IMPORTING
    >       ES_SELFIELD                   = ES_SELFIELD
    >     TABLES
    >       T_OUTTAB                      = ITAB .
    >
    >
    >
    >
    >
    > Thanks,
    > Ahmed.
    Rhea

  • Runtime Error in ALV Totaling.

    Dear Friends
    i am getting run time error in ALV while pressing sum button.
    my alv code as follows
      FIELDCATALOG-FIELDNAME   = 'DMBTR'.
      FIELDCATALOG-SELTEXT_M   = 'Amount'.
      FIELDCATALOG-COL_POS     = 1.
    FIELDCATALOG-ref_fieldname = 'WAERS'.
    FIELDCATALOG-DO_SUM      = 'X'.        "Display column total
    FIELDCATALOG-ref_tabname = 'BKPF'.
    FIELDCATALOG-DATATYPE     = 'CURR'.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR  FIELDCATALOG.
    I have tried all possibilities but did not get the solution...
    if anything left let me know
    thank you
    Avirat Patel

    Dear Ravi
    Thank you .. i am able to trace out my problem
    the problem with this code
    FIELDCATALOG-FIELDNAME   = 'AUGBL'.
    FIELDCATALOG-SELTEXT_M   = 'Clearing Doc.No'.
    FIELDCATALOG-COL_POS     = 1.
    FIELDCATALOG-DO_SUM      = 'X'.        "Display column total
    FIELDCATALOG-DATATYPE     = 'CURR'.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR  FIELDCATALOG.
    i am getting an error with this code
    how can i able to display this field in alv column.?
    - Avirat Patel
    *SORRY FRIENDS I HAVE NOT DECLARED MENTIONED VARIABLE IN INTERNAL TABLE ITSELF SO THAT
    I AM GETTING ERROR.*
    problem has been resolved..
    thank you.
    Edited by: Corrtech on Dec 19, 2011 1:05 PM

  • Runtime error in ALV interactive report

    Hi all,
    While clicking the cutomer no to get the order details am getting run time error. Your help will be rewarded.
    REPORT  Z_INTERACTIVE_ALV.
    TYPE-POOLS : SLIS.
    TABLES : KNA1.
    TYPES : BEGIN OF TY_KNA1,
           KUNNR  TYPE  KUNNR,
           NAME1  TYPE  NAME1,
           ORT01  TYPE  ORT01,
           LAND1  TYPE  LAND1,
           END OF TY_KNA1.
    TYPES: BEGIN OF TY_VBAK,
           KUNNR  TYPE  KUNNR,
           VBELN  TYPE  VBELN,
           ERDAT  TYPE  ERDAT,
           NETWR  TYPE  NETWR,
           END OF TY_VBAK.
    DATA : IT_KNA1  TYPE STANDARD TABLE OF TY_KNA1,
           W_KNA1  LIKE LINE OF IT_KNA1,
           IT_VBAK  TYPE STANDARD TABLE OF TY_VBAK,
           W_VBAK LIKE LINE OF IT_VBAK.
    DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
           W_FCAT  TYPE SLIS_FIELDCAT_ALV.
    DATA : IT_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,
           W_FCAT1  TYPE SLIS_FIELDCAT_ALV.
    DATA : IT_EVENT TYPE  SLIS_T_EVENT,
            W_EVENT TYPE SLIS_ALV_EVENT.
    W_EVENT-NAME = 'USER_COMMAND'.
    W_EVENT-FORM = 'USER_COMMAND'.
    APPEND W_EVENT TO IT_EVENT.
    SELECT-OPTIONS : S_CUSTNO  FOR KNA1-KUNNR.
    W_FCAT-COL_POS = 1.
    W_FCAT-FIELDNAME = 'KUNNR'.
    W_FCAT-SELTEXT_M = 'CUSTOMERNO'.
    APPEND w_fcat TO IT_FCAT.
    W_FCAT-COL_POS = 2.
    W_FCAT-FIELDNAME = 'NAME1'.
    W_FCAT-SELTEXT_M = 'CUSTOMERNAME'.
    APPEND w_fcat TO IT_FCAT.
    W_FCAT-COL_POS = 3.
    W_FCAT-FIELDNAME = 'ORT01'.
    W_FCAT-SELTEXT_M = 'CUSTOMERCITY'.
    APPEND w_fcat TO IT_FCAT.
    W_FCAT-COL_POS = 4.
    W_FCAT-FIELDNAME = 'LAND1'.
    W_FCAT-SELTEXT_M = 'COUNTRY'.
    APPEND w_fcat TO IT_FCAT.
    W_FCAT-COL_POS = 1.
    W_FCAT-FIELDNAME = 'KUNNR'.
    W_FCAT-SELTEXT_M = 'CUSTOMERNO'.
    APPEND w_fcat1 TO IT_FCAT1.
    W_FCAT-COL_POS = 2.
    W_FCAT-FIELDNAME = 'VBELN'.
    W_FCAT-SELTEXT_M = 'ORDERNO'.
    APPEND w_fcat1 TO IT_FCAT1.
    W_FCAT-COL_POS = 3.
    W_FCAT-FIELDNAME = 'ERDAT'.
    W_FCAT-SELTEXT_M = 'ORDERDATE'.
    APPEND w_fcat1 TO IT_FCAT1.
    W_FCAT-COL_POS = 4.
    W_FCAT-FIELDNAME = 'NETWR'.
    W_FCAT-SELTEXT_M = 'ORDERVALUE'.
    APPEND w_fcat1 TO IT_FCAT1.
    W_FCAT-COL_POS = 1.
    W_FCAT-FIELDNAME = 'KUNNR'.
    W_FCAT-SELTEXT_M = 'CUSTOMERNO'.
    APPEND w_fcat1 TO IT_FCAT1.
    W_FCAT-COL_POS = 2.
    W_FCAT-FIELDNAME = 'VBELN'.
    W_FCAT-SELTEXT_M = 'ORDERNO'.
    APPEND w_fcat1 TO IT_FCAT1.
    W_FCAT-COL_POS = 3.
    W_FCAT-FIELDNAME = 'ERDAT'.
    W_FCAT-SELTEXT_M = 'ORDERDATE'.
    APPEND w_fcat1 TO IT_FCAT1.
    W_FCAT-COL_POS = 4.
    W_FCAT-FIELDNAME = 'NETWR'.
    W_FCAT-SELTEXT_M = 'ORDERVALUE'.
    APPEND w_fcat1 TO IT_FCAT1.
    *PERFORM user_command.
    START-OF-SELECTION.
      SELECT KUNNR NAME1 ORT01 LAND1 FROM KNA1 INTO TABLE IT_KNA1 WHERE KUNNR IN S_CUSTNO.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = 'Z_INTERACTIVE_ALV'
      I_CALLBACK_PF_STATUS_SET          = ' '
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
         IT_FIELDCAT                       = IT_FCAT
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
         IT_EVENTS                         = IT_EVENT
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = IT_KNA1
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    *&      Form  USER_COMM
          text
    -->  p1        text
    <--  p2        text
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
                      RS_SELFIELD TYPE SLIS_SELFIELD.
      READ TABLE IT_KNA1 into w_kna1 INDEX RS_SELFIELD-TABINDEX.
      SELECT KUNNR VBELN ERDAT NETWR FROM VBAK INTO TABLE IT_VBAK WHERE KUNNR = rs_selfield-value.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = 'Z_INTERACTIVE_ALV'
      I_CALLBACK_PF_STATUS_SET          = ' '
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
         IT_FIELDCAT                       = IT_FCAT1
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
         IT_EVENTS                         = IT_EVENT
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = IT_VBAK
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Regards
    Jerry

    Hi ,
    Please check it. I think ur prod is solved.
    REPORT z_interactive_alv.
    TYPE-POOLS : slis.
    TABLES : kna1.
    TYPES : BEGIN OF ty_kna1,
    kunnr TYPE kunnr,
    name1 TYPE name1,
    ort01 TYPE ort01,
    land1 TYPE land1,
    END OF ty_kna1.
    TYPES: BEGIN OF ty_vbak,
    kunnr TYPE kunnr,
    vbeln TYPE vbeln,
    erdat TYPE erdat,
    netwr TYPE netwr,
    END OF ty_vbak.
    DATA : it_kna1 TYPE STANDARD TABLE OF ty_kna1,
    w_kna1 LIKE LINE OF it_kna1,
    it_vbak TYPE STANDARD TABLE OF ty_vbak,
    w_vbak LIKE LINE OF it_vbak.
    DATA : it_fcat TYPE slis_t_fieldcat_alv,
    w_fcat TYPE slis_fieldcat_alv.
    DATA : it_fcat1 TYPE slis_t_fieldcat_alv,
    w_fcat1 TYPE slis_fieldcat_alv.
    DATA : it_event TYPE slis_t_event,
    w_event TYPE slis_alv_event.
    w_event-name = 'USER_COMMAND'.
    w_event-form = 'USER_COMMAND'.
    APPEND w_event TO it_event.
    SELECT-OPTIONS : s_custno FOR kna1-kunnr.
    w_fcat-col_pos = 1.
    w_fcat-fieldname = 'KUNNR'.
    w_fcat-seltext_m = 'CUSTOMERNO'.
    APPEND w_fcat TO it_fcat.
    w_fcat-col_pos = 2.
    w_fcat-fieldname = 'NAME1'.
    w_fcat-seltext_m = 'CUSTOMERNAME'.
    APPEND w_fcat TO it_fcat.
    w_fcat-col_pos = 3.
    w_fcat-fieldname = 'ORT01'.
    w_fcat-seltext_m = 'CUSTOMERCITY'.
    APPEND w_fcat TO it_fcat.
    w_fcat-col_pos = 4.
    w_fcat-fieldname = 'LAND1'.
    w_fcat-seltext_m = 'COUNTRY'.
    APPEND w_fcat TO it_fcat.
    w_fcat-col_pos = 1.
    w_fcat-fieldname = 'KUNNR'.
    w_fcat-seltext_m = 'CUSTOMERNO'.
    APPEND w_fcat1 TO it_fcat1.
    w_fcat-col_pos = 2.
    w_fcat-fieldname = 'VBELN'.
    w_fcat-seltext_m = 'ORDERNO'.
    APPEND w_fcat1 TO it_fcat1.
    w_fcat-col_pos = 3.
    w_fcat-fieldname = 'ERDAT'.
    w_fcat-seltext_m = 'ORDERDATE'.
    APPEND w_fcat1 TO it_fcat1.
    w_fcat-col_pos = 4.
    w_fcat-fieldname = 'NETWR'.
    w_fcat-seltext_m = 'ORDERVALUE'.
    APPEND w_fcat1 TO it_fcat1.
    w_fcat-col_pos = 1.
    w_fcat-fieldname = 'KUNNR'.
    w_fcat-seltext_m = 'CUSTOMERNO'.
    APPEND w_fcat1 TO it_fcat1.
    w_fcat-col_pos = 2.
    w_fcat-fieldname = 'VBELN'.
    w_fcat-seltext_m = 'ORDERNO'.
    APPEND w_fcat1 TO it_fcat1.
    w_fcat-col_pos = 3.
    w_fcat-fieldname = 'ERDAT'.
    w_fcat-seltext_m = 'ORDERDATE'.
    APPEND w_fcat1 TO it_fcat1.
    w_fcat-col_pos = 4.
    w_fcat-fieldname = 'NETWR'.
    w_fcat-seltext_m = 'ORDERVALUE'.
    APPEND w_fcat1 TO it_fcat1.
    *PERFORM user_command.
    START-OF-SELECTION.
      SELECT kunnr name1 ort01 land1
        FROM kna1
        INTO TABLE it_kna1
        WHERE
      kunnr IN s_custno.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = sy-repid
         i_callback_user_command           = 'USER_COMMAND'
         it_fieldcat                       =  it_fcat[]
         it_events                         = it_event
        TABLES
          t_outtab                          = it_kna1[]
       EXCEPTIONS
         program_error                     = 1
         OTHERS                            = 2
      IF sy-subrc <> 0.
      ENDIF.
      IF sy-subrc <> 0.
      ENDIF.
    **& Form USER_COMM
       * text
       * --> p1 text
       * <-- p2 text
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
      READ TABLE it_kna1 INTO w_kna1 INDEX rs_selfield-tabindex.
      SELECT kunnr vbeln erdat netwr FROM vbak INTO TABLE it_vbak WHERE
      kunnr = rs_selfield-value.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
      i_callback_program = sy-repid
      i_callback_user_command = 'USER_COMMAND'
      it_fieldcat = it_fcat1
      it_events = it_event
      TABLES
      t_outtab = it_vbak
           EXCEPTIONS
           program_error = 1
           OTHERS = 2  .
      IF sy-subrc <> 0.
      ENDIF.
    ENDFORM.                    "user_command

  • Mt_outtab error in ALV tree node expantion

    I ahve made tree ALC n get dump in the follwing code when I expand any node
    ASSIGN mt_outtab->* TO <tab1>.
      " assign local copy of initial line of <tab1> to <wa>.
      CREATE DATA l_dref_wa LIKE LINE OF <tab1>.
      ASSIGN l_dref_wa->* TO <wa>.
    this is because mt_outtab->*  does no have values which is my table
    dont know how its freed on expanding the node
    I made a same prog from a system program n thats working fine but i cannot get the diffrence???
    plz help

    hi,
    dinamic table create is like this, how can you create your mt_outtab->* table;
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog           = lt
        IMPORTING
          ep_table                  = <fs_data>
        EXCEPTIONS
          generate_subpool_dir_full = 1
          OTHERS                    = 2.
      IF sy-subrc <> 0.
      ENDIF.
    Assign Dyn Table To Field Sumbol
      ASSIGN <fs_data>->* TO <tab1>.
      CREATE DATA l_dref_wa LIKE LINE OF <tab1>.
      ASSIGN l_dref_wa->* TO <wa>.

  • Convert Tree output of IH01 transaction to simple ALV list output

    Hi,
    We have immediate requirement of changing the ALV TREE output of transaction IH01 to general ALV LIST display (with rows and columns) . To match with the requirement, I have to analyze the standard program first, copy the code to custom program and then do the changes which will consume lot of time.
    Request your suggesttions if there are any simple ways to get the desired output so that i can quickly complete the development.
    Murthy

    Hi,
    ALV Tree uses a different class and added logic. What logic is common is fetching and building of internal tables from data perspective. You can re-use this logic by calling the subroutine in the program and passing required values. It would be fast but in this case would take a bit of time, as you still need to analyse the code to make sure everything is right.
    Regards,
    Arnab.

Maybe you are looking for