Alv tree report with non oop

Hi All,
I have requirement to create tree structure report where:-
The Folders structure should appear on left side.
Once clicking on the particular folder in left pane , it should display a report in right pane.
The folder can be nested withing particular folder.
regards,
karthik

Hi,
Check out sample program BCALV_TREE_DEMO. I don't think it is possible without OOP. Why you don't want OOP? I feel, It is simpler than normal programming.
Thanks,
Vinod.

Similar Messages

  • Creating TREE REPORT with CHECKBOX against each row

    Hi Friends,
    I need to create a <b>TREE REPORT with  CHECK BOX</b> against each row. when the user selects a row and clicks on a custom button then those should get populated into an internal table. <b>This is HIGH priority</b> one and I have tried my best but couldnt find any solution. Please advise me some sol.
    thanks in advance for your valuable time and help.
    Regards
    srithan
    Message edited by me for easyness
            Reddy

    Hi
    Following code is to add checkboxes in ALV tree:
    FORM add_root_request USING pls_data_ TYPE csg_gs_outtab_p_key__l_is_sub_node_ TYPE c
    CHANGING pl_carrid_key._node = nodes->add_node( related_node = p_key
    relationship = cl_gui_column_tree=>relat_last_child ).
    ... §0.2 if information should be displayed at
    the hierarchy column set the carrid as text for this node
    text = p_ls_data-object.
    node->set_text( text ).
    ... §0.3 set the data for the nes node
    node->set_data_row( p_ls_data ).
    item = node->get_hierarchy_item( ).
    item = node->get_item( 'FCHECKBOX' ). "FCHECKBOX is my radio button field in internal table which I am using to populate the ALV
    item->set_type( if_salv_c_item_type=>checkbox ).
    pl_carrid_key = node->get_key( )._
    CATCH cx_salv_msg.
    ENDFORM_._Following code is for handling checbox_change event
    PERFORM application_action_events.
    FORM application_action_events .
    data: lr_events type ref to cl_salv_events_tree.
    *data gr_events type ref to lcl_handle_events.
    lr_events = gr_tree->get_event( ).
    create object gr_events.
    set handler gr_events->check for lr_events.
    set handler gr_events->on_link_click for lr_events.
    set handler gr_events->on_before_user_command for lr_events.
    set handler gr_events->on_after_user_command for lr_events.
    set handler gr_events->on_keypress for lr_events.
    endform. " application_action_events----
    CLASS lcl_handle_events DEFINITION.
    PUBLIC SECTION.
    METHODS:
    check FOR EVENT checkbox_change OF cl_salv_events_tree IMPORTING node_key columnname checked. "Here node_key is the row number
    ENDCLASS. "lcl_handle_events DEFINITION
    CLASS lcl_handle_events IMPLEMENTATION
    §4.2 implement the events for handling the events of cl_salv_table
    CLASS lcl_handle_events IMPLEMENTATION_._
    METHOD check_._
    WRITE 'hello'_._
    DATA lwa_modify_check_ TYPE REF TO csg_gs_outtab.
    node_key = node_key - 1_._
    READ TABLE csg_gt_list INDEX node_key REFERENCE INTO lwa_modify_check._
    if columnname = 'FCHECKBOX'_._
    IF checked = 'X'_._
    If the value in internal table is set to X, then it is deselct
    lwa_modify_check->fcheckbox =_ ' '_._
    ELSE_._
    lwa_modify_check->fcheckbox =_ 'X'_._
    ENDIF_._
    ENDIF_._
    if columnname = 'CHECKBOX_READ'_._
    IF checked = 'X'_._
    If the value in internal table is set to X, then it is deselct
    lwa_modify_check->checkbox_read =_ ' '_._
    ELSE_._
    lwa_modify_check->checkbox_read =_ 'X'_._
    ENDIF_._
    ENDIF_._
    *MODIFY TABLE csg_gt_list from l_wa_modify_check.
    flag_test = flag_test + 1_._
    ENDMETHOD_._ "check
    ENDCLASS_._ "lcl_handle_events IMPLEMENTATION
    Please give me reward points

  • ALV Tree Report without using ABAP Objects

    Hi all,
    I want to know the name of a function module to create ALV Tree in SE38 as a report. I am required to create this ALV Tree Report without using ABAP OBJECTS. Can u pls help me as early as possible.

    Hi
    see this link
    http://www.sapdev.co.uk/reporting/alv/alvtree.htm
    *& Report  ZBCALV_TREE
    REPORT  ZBCALV_TREE.
    class cl_gui_column_tree definition load.
    class cl_gui_cfw definition load.
    data tree1  type ref to cl_gui_alv_tree.
    data mr_toolbar type ref to cl_gui_toolbar.
    include <icon>.
    include bcalv_toolbar_event_receiver.
    include bcalv_tree_event_receiver.
    data: toolbar_event_receiver type ref to lcl_toolbar_event_receiver.
    data: gt_VBAK  type VBAK occurs 0,      "Output-Table
          gt_fieldcatalog type lvc_t_fcat, "Fieldcatalog
          ok_code like sy-ucomm.           "OK-Code
    start-of-selection.
    end-of-selection.
      call screen 100.
    *&      Module  STATUS_0100  OUTPUT
          text
    module STATUS_0100 output.
      SET PF-STATUS 'MAIN'.
    if tree1 is initial.
        perform Zinit_tree.
      endif.
      call method cl_gui_cfw=>flush.
    endmodule.                 " STATUS_0100  OUTPUT
    *&      Form  Zinit_tree
          text
    -->  p1        text
    <--  p2        text
    form Zinit_tree .
    perform Zbuild_fieldcatalog.
    create container for alv-tree
    data: l_tree_container_name(30) type c,
            l_custom_container type ref to cl_gui_custom_container.
      l_tree_container_name = 'TREE1'.
    if sy-batch is initial.
        create object l_custom_container
          exporting
                container_name = l_tree_container_name
          exceptions
                cntl_error                  = 1
                cntl_system_error           = 2
                create_error                = 3
                lifetime_error              = 4
                lifetime_dynpro_dynpro_link = 5.
        if sy-subrc <> 0.
          message x208(00) with 'ERROR'.                        "#EC NOTEXT
        endif.
      endif.
    create tree control
      create object tree1
        exporting
            parent              = l_custom_container
            node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
            item_selection      = 'X'
            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 l_hierarchy_header type treev_hhdr.
      perform zbuild_hierarchy_header changing l_hierarchy_header.
    create info-table for html-header
      data: lt_list_commentary type slis_t_listheader,
            l_logo             type sdydo_value.
      perform Zbuild_comment using
                     lt_list_commentary
                     l_logo.
    repid for saving variants
      data: ls_variant type disvariant.
      ls_variant-report = sy-repid.
    create emty tree-control
      call method tree1->set_table_for_first_display
        exporting
          is_hierarchy_header = l_hierarchy_header
          it_list_commentary  = lt_list_commentary
          i_logo              = l_logo
          i_background_id     = 'ALV_BACKGROUND'
          i_save              = 'A'
          is_variant          = ls_variant
        changing
          it_outtab           = gt_VBAK "table must be emty !!
          it_fieldcatalog     = gt_fieldcatalog.
    create hierarchy
      perform Zcreate_hierarchy.
    add own functioncodes to the toolbar
      perform zchange_toolbar.
    register events
      perform zregister_events.
    endform.                    " Zinit_tree
    *&      Form  Zbuild_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    form Zbuild_fieldcatalog .
    get fieldcatalog
      call function 'LVC_FIELDCATALOG_MERGE'
        exporting
          i_structure_name = 'VBAK'
        changing
          ct_fieldcat      = gt_fieldcatalog.
      sort gt_fieldcatalog by scrtext_l.
    change fieldcatalog
      data: ls_fieldcatalog type lvc_s_fcat.
      loop at gt_fieldcatalog into ls_fieldcatalog.
        case ls_fieldcatalog-fieldname.
          when 'AUART' .
            ls_fieldcatalog-no_out = 'X'.
            ls_fieldcatalog-key    = ''.
        endcase.
        modify gt_fieldcatalog from ls_fieldcatalog.
      endloop.
    endform.                    " Zbuild_fieldcatalog
    *&      Form  zbuild_hierarchy_header
          text
         <--P_L_HIERARCHY_HEADER  text
    form zbuild_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.                    " zbuild_hierarchy_header
    *&      Form  Zbuild_comment
          text
         -->P_LT_LIST_COMMENTARY  text
         -->P_L_LOGO  text
    form Zbuild_comment   using
                           pt_list_commentary type slis_t_listheader
                           p_logo             type sdydo_value.
    data: ls_line type slis_listheader.
    LIST HEADING LINE: TYPE H
      clear ls_line.
      ls_line-typ  = 'H'.
    LS_LINE-KEY:  NOT USED FOR THIS TYPE
      ls_line-info = 'ALV-tree-demo: flight-overview'.          "#EC NOTEXT
      append ls_line to pt_list_commentary.
    STATUS LINE: TYPE S
      clear ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = 'valid until'.                             "#EC NOTEXT
      ls_line-info = 'January 29 1999'.                         "#EC NOTEXT
      append ls_line to pt_list_commentary.
      ls_line-key  = 'time'.
      ls_line-info = '2.00 pm'.                                 "#EC NOTEXT
      append ls_line to pt_list_commentary.
    ACTION LINE: TYPE A
      clear ls_line.
      ls_line-typ  = 'A'.
    LS_LINE-KEY:  NOT USED FOR THIS TYPE
      ls_line-info = 'actual data'.                             "#EC NOTEXT
      append ls_line to pt_list_commentary.
      p_logo = 'ENJOYSAP_LOGO'.
    endform.                    " Zbuild_comment
    *&      Form  Zcreate_hierarchy
          text
    -->  p1        text
    <--  p2        text
    form Zcreate_hierarchy .
    data: ls_vbak type vbak,
          lt_vbak  type vbak occurs 0.
    get data
      select * from vbak into table lt_vbak
                            up to 200 rows .                "#EC CI_NOWHERE
      sort lt_vbak by AUART.
    add data to tree
      data: l_AUART_key type lvc_nkey.
    loop at lt_vbak into ls_vbak.
        on change of ls_vbak-AUART.
          perform Zadd_AUART_line using   ls_vbak
                                  changing l_AUART_key.
        endon.
      endloop.
    calculate totals
      call method tree1->update_calculations.
    this method must be called to send the data to the frontend
      call method tree1->frontend_update.
    endform.                    " Zcreate_hierarchy
    *&      Form  Zadd_AUART_line
          text
         -->P_LS_vbak  text
         -->P_0379   text
         <--P_L_AUART_KEY  text
    form Zadd_AUART_line  using    p_ls_vbak type vbak
                                   p_relat_key type lvc_nkey
                         changing  p_node_key type lvc_nkey.
      data: l_node_text type lvc_value,
            ls_vbak type vbak.
    set item-layout
      data: lt_item_layout type lvc_t_layi,
            ls_item_layout type lvc_s_layi.
      ls_item_layout-t_image = '@3P@'.
      ls_item_layout-fieldname = tree1->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 =  p_ls_vbak-AUART.
      data: ls_node type lvc_s_layn.
      ls_node-n_image   = space.
      ls_node-exp_image = space.
      call method tree1->add_node
        exporting
          i_relat_node_key = p_relat_key
          i_relationship   = cl_gui_column_tree=>relat_last_child
          i_node_text      = l_node_text
          is_outtab_line   = ls_vbak
          is_node_layout   = ls_node
          it_item_layout   = lt_item_layout
        importing
          e_new_node_key   = p_node_key .
    endform.                    " Zadd_AUART_line
    *&      Form  zchange_toolbar
          text
    -->  p1        text
    <--  p2        text
    form zchange_toolbar .
    get toolbar control
      call method tree1->get_toolbar_object
        importing
          er_toolbar = mr_toolbar.
      check not mr_toolbar is initial.
    add seperator to toolbar
      call method mr_toolbar->add_button
        exporting
          fcode     = ''
          icon      = ''
          butn_type = cntb_btype_sep
          text      = ''
          quickinfo = 'This is a Seperator'.                    "#EC NOTEXT
    add Standard Button to toolbar (for Delete Subtree)
      call method mr_toolbar->add_button
        exporting
          fcode     = 'DELETE'
          icon      = '@18@'
          butn_type = cntb_btype_button
          text      = ''
          quickinfo = 'Delete subtree'.                         "#EC NOTEXT
    add Dropdown Button to toolbar (for Insert Line)
      call method mr_toolbar->add_button
        exporting
          fcode     = 'INSERT_LC'
          icon      = '@17@'
          butn_type = cntb_btype_dropdown
          text      = ''
          quickinfo = 'Insert Line'.                            "#EC NOTEXT
    set event-handler for toolbar-control
      create object toolbar_event_receiver.
      set handler toolbar_event_receiver->on_function_selected
                                                          for mr_toolbar.
      set handler toolbar_event_receiver->on_toolbar_dropdown
                                                          for mr_toolbar.
    endform.                    " zchange_toolbar
    *&      Form  zregister_events
          text
    -->  p1        text
    <--  p2        text
    form zregister_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.
      call method tree1->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
      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.
    endform.                    " zregister_events
    *&      Module  USER_COMMAND_0100  INPUT
          text
    module USER_COMMAND_0100 input.
    ok_code  = sy-ucomm.
    clear sy-ucomm.
    case ok_code.
        when 'EXIT' or 'BACK' or 'CANC'.
          perform Zexit_program.
        when others.
          call method cl_gui_cfw=>dispatch.
      endcase.
      clear ok_code.
      call method cl_gui_cfw=>flush.
    endmodule.                 " USER_COMMAND_0100  INPUT
    *&      Form  Zexit_program
          text
    -->  p1        text
    <--  p2        text
    form Zexit_program .
      call method tree1->free.
      leave program.
    endform.                    " Zexit_program
    <b>Reward if usefull</b>

  • ALV Tree Report--clicking on a row....

    Hello Experts,
    i have a alv tree report.my requirement is,
    "Selecting a row means clicking on record  and then click on a another button called YES ,For other functionality i need to capture the row '.
    How can i solve this  problem.
    Thanks,
    Sridhar.

    hi check this..
    REPORT  z_simpletree.
    type pool declarations for tree
    TYPE-POOLS : fibs,stree.
    *Data declaration for additional node information
    DATA : t_node TYPE snodetext.
    *Internal table and wa decl for nodes
    DATA : it_node LIKE TABLE OF t_node INITIAL SIZE 0,
           wa_node LIKE t_node.
    *Internal table and wa decl for Education table PA0022
    DATA : it_0022 TYPE STANDARD TABLE OF pa0022 INITIAL SIZE 0,
           wa_0022 TYPE pa0022.
    *Internal table and wa decl for text table t517x
    DATA : it_517x TYPE STANDARD TABLE OF t517x INITIAL SIZE 0,
           wa_517x TYPE t517x.
    *Internal table and wa decl for text table t517T
    DATA : it_517t TYPE STANDARD TABLE OF t517t INITIAL SIZE 0,
           wa_517t TYPE t517t.
    *Internal table and wa decl for text table t519T
    DATA : it_519t TYPE STANDARD TABLE OF t519t INITIAL SIZE 0,
           wa_519t TYPE t519t.
    *initialization event
    INITIALIZATION.
    *Start of selection  event
    START-OF-SELECTION.
    *Select the data for tree
      PERFORM fetch_data.
    *Build the hierarchy for tree
      PERFORM build_hierarchy.
    *Build Tree for display
      PERFORM build_tree.
    *&      Form  fetch_data
          text
    -->  p1        text
    <--  p2        text
    FORM fetch_data .
    *select data from PA0022
      SELECT * FROM pa0022 INTO CORRESPONDING FIELDS OF TABLE it_0022
       UP TO 50 ROWS.
    *select data from T517x
      SELECT * FROM t517x INTO CORRESPONDING FIELDS OF TABLE it_517x
       WHERE langu = 'E'.
    *select data from T517T
      SELECT * FROM t517t INTO CORRESPONDING FIELDS OF TABLE it_517t
       WHERE sprsl = 'E'.
    *select data from T519t
      SELECT * FROM t519t INTO CORRESPONDING FIELDS OF TABLE it_519t
       WHERE sprsl = 'E'.
      ENDFORM.                    " fetch_data
    *&      Form  build_hierarchy
          text
    -->  p1        text
    <--  p2        text
    FORM build_hierarchy .
    *Building the nodes and hierarchy for tree
      CLEAR : it_node[],
      wa_node.
      wa_node-type = 'T'.
      wa_node-name = 'Education'.
      wa_node-tlevel = '01'.
      wa_node-nlength = '15'.
      wa_node-color = '4'.
      wa_node-text = 'Infotype 0022'.
      wa_node-tlength ='20'.
      wa_node-tcolor = 3.
      APPEND wa_node TO it_node.
      CLEAR wa_node.
    *Filling the values of internal table into tree
      LOOP AT it_0022 INTO wa_0022.
        wa_node-type = 'P'.
        wa_node-name = 'PERNR'.
        wa_node-tlevel = '02'.
        wa_node-nlength = '8'.
        wa_node-color = '1'.
        wa_node-text = wa_0022-pernr.
        wa_node-tlength ='20'.
        wa_node-tcolor = 4.
        APPEND wa_node TO it_node.
        CLEAR wa_node.
    *Filling the text of T517t
        READ TABLE it_517t INTO wa_517t WITH KEY slart = wa_0022-slart.
        wa_node-type = 'P'.
        wa_node-name = wa_0022-slart.
        wa_node-tlevel = '03'.
        wa_node-nlength = '8'.
        wa_node-color = '1'.
        wa_node-text = wa_517t-stext.
        wa_node-tlength ='40'.
        wa_node-tcolor = 4.
        APPEND wa_node TO it_node.
        CLEAR wa_node.
    *Filling the text of T519t
        READ TABLE it_519t INTO wa_519t WITH KEY slabs = wa_0022-slabs.
        wa_node-type = 'P'.
        wa_node-name = wa_0022-slabs.
        wa_node-tlevel = '04'.
        wa_node-nlength = '8'.
        wa_node-color = '2'.
        wa_node-text = wa_519t-stext.
        wa_node-tlength ='40'.
        wa_node-tcolor = 4.
        APPEND wa_node TO it_node.
        CLEAR wa_node.
    *Filling the text of T517x
        READ TABLE it_517x INTO wa_517x WITH KEY faart = wa_0022-sltp1.
        wa_node-type = 'P'.
        wa_node-name = wa_0022-sltp1.
        wa_node-tlevel = '05'.
        wa_node-nlength = '8'.
        wa_node-color = '1'.
        wa_node-text = wa_517x-ftext.
        wa_node-tlength ='40'.
        wa_node-tcolor = 4.
        APPEND wa_node TO it_node.
        CLEAR wa_node.
        wa_node-type = 'P'.
        wa_node-tlevel = '06'.
        wa_node-nlength = '8'.
        wa_node-color = '1'.
        wa_node-text = '% Completed'.
        wa_node-tlength ='15'.
        wa_node-tcolor = 4.
        APPEND wa_node TO it_node.
        CLEAR wa_node.
        ENDLOOP.
        ENDFORM.                    " build_hierarchy
    *&      Form  build_tree
          text
    -->  p1        text
    <--  p2        text
    FORM build_tree .
    *Fm for constructing the tree
      CALL FUNCTION 'RS_TREE_CONSTRUCT'
        TABLES
         nodetab = it_node.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    *FM for displaying the tree
      CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
        EXPORTING
          callback_program     = sy-repid
          check_duplicate_name = '1'
          color_of_node        = '3'
          color_of_mark        = '3'
          color_of_link        = '1'
          color_of_match       = '5'
          node_length          = 30
          text_length          = 75
          use_control          = 'L'.ENDFORM.                    " build_tree
    regards,
    venkat

  • Development of alv tree report using classes from basics

    Hi,
    Need a simple ALV tree report by showing the reason for why we are using the classse so that i can build a ALV report in the same manner.
    i have the data from MARA for given materials and their descriptions.Now in the basiv out put MARA information should come and tree out put for the material description when the user selects the maerial.
    A hot spot should come on the material and if he opts click the material then MM03 out put should come.
    Help me out in this regard
    Regards
    Naren

    Ok, but the importance of ABAP OO, should not be taken from an example ALV tree, but more in general. There are several good  articles on this on SCN. But for example in this particular case (ALV Tree), you should already see the importance as far as object instances and inheritance is concerned. Without much work, you can create an instance of an ALV tree, and all the attributes, methods etc. are there for use. Some of the methods / attributes are inherited from other superclasses.
    There are propably even more things to be mentioned here which emphasizes the importance of ABAP OO in ALV tree, but as far as I'm concerned, this is about it for me.

  • Share Analytics Reports with non-Siebel Users

    Hello,
    We are on version 7.8.2.4 of Siebel Analytics and are on a UNIX platform.
    I am working on a project that is required to share reports with non-Siebel users. We are hoping to accomplish this through Analytics Delivers, but are open to suggestions or alternatives.
    I have found that an iBot (under the Advanced tab) can be used in conjunction with custom Javascript or VB to FTP the report results in a pdf format to a specified location on the server. The Analytics Scheduler Bookshelf document explains how to do this starting on page 50.
    However, there is a note within this document that says this functionality is only supported on Windows platforms. Unfortunately, our servers are on a UNIX platform. I have been told the possible reason for only supporting this functionality on a Windows platform is because there is not a service analogous to the ActiveX Scripting.FileSystemObject control which is called in the Javascript described in the document mentioned above.
    This leads me to my question: Has anyone ever used this custom Javascript functionality with iBots on a UNIX platform or is there a similar approach that can be used instead? Has anyone found another way to share Analytics reports with non-Siebel users?
    Thanks,
    Andrea Thomas
    [email protected]

    Hi Andrea,
    I don't have experience with ftp-ing a pdf to a specific location. But I do have 2 alternatives:
    1. Use a public dashboard
    http://oraclebizint.wordpress.com/2008/06/30/oracle-bi-ee-1013332-public-reports-and-dashboards-bypassing-authentication/
    2. Set up SA System subject area, to email the pdf to non-Siebel Analytics users.
    http://oraclebizint.wordpress.com/2008/04/25/oracle-bi-ee-101332-sa-system-subject-area-autoloading-profiles-and-bursting/
    In the external table you use for the SA System subject area, it is possible to add 'fake' users with their e-mail addresses.
    Regards,
    Stijn

  • TREE REPORT with CHECKBOX

    Hi
    I want a report in which the report should have tree structure and along with check box
    Regards
    Sneha

    HI
    Check this standard report
    SAPCOLUMN_TREE_CONTROL_DEMO
    *& Report  ZTREE                                                       *
    REPORT  ZTREE                                   .
    DATA: BEGIN OF ITEMS OCCURS 100,
             ID(10),
             PARENT_ID(10),
             TEXT(20),
             SYMBOL,
          END OF ITEMS,
          TABIX_STACK LIKE SY-TABIX OCCURS 10 WITH HEADER LINE,
          ITEMS_SHOW LIKE ITEMS OCCURS 100 WITH HEADER LINE.
    INCLUDE <SYMBOL>.
    \* append sample items (mixed order)
    PERFORM APPEND_ITEM USING:
        '1'  ''        'Food',
        '2'  ''        'Drinks',
        '12' '9'       'Pavan Praveen',
        '17' '11'      'company',
        '3'  ''        'Tools',
        '4'  '1'       'Dairy milk',
        '16' '11'      'Music',
        '5'  '1'       'Chocolate',
        '6'  '2'       'Alcoholic',
        '8'  '4'       'Megastar',
        '10' '5'       'Milk',
        '11' '3'       'Boost',
        '13' '9'       'Sachin ',
        '7'  '4'       'Cricket',
        '14' '2'       'Non-alcholic',
        '35' '31'      'Pepsi',
        '9'  '6'       'Thumsup',
        '15' '14'      'Coca-cola',
        '18' '6'       'Win',
        '28' '18'      'Ganguly ',
        '33' '28'      'INDIA',
        '34' '28'      'Gujarat',
        '29' '18'      'State',
        '30' '29'      'congrats',
        '19' '33'      'chiranjeevi',
        '20' '33'      'kalyan',
        '22' '19'      'here comes',
        '23' '19'      'Chandra',
        '24' '20'      'chat',
        '32' '31'      'Marvelous',
        '25' '20'      'Memorable',
        '31' '34'      'guess'.
    \* show initial list (items with level 0 - parentless items)
    LOOP AT ITEMS WHERE PARENT_ID = ''.
      MOVE-CORRESPONDING ITEMS TO ITEMS_SHOW.
      ITEMS_SHOW-SYMBOL = '+'.
      APPEND ITEMS_SHOW.
    ENDLOOP.
    PERFORM PRINT_TREE TABLES ITEMS_SHOW.
    \* at line-selection - when the node is opened/closed or item double-clk
    AT LINE-SELECTION.
      READ TABLE ITEMS WITH KEY PARENT_ID = ITEMS_SHOW-ID. "see 'hide'
      IF SY-SUBRC = 0. "item has children - expand or collapse
        SY-LSIND = 0.
        PERFORM EXPAND_COLLAPSE USING ITEMS_SHOW-ID.
        PERFORM PRINT_TREE TABLES ITEMS_SHOW.
      ELSE.            "item has NO children - perform some action
        READ TABLE ITEMS WITH KEY ID = ITEMS_SHOW-ID.
        WRITE: 'Action performed on item "' NO-GAP, ITEMS-TEXT NO-GAP,
               '", id.', ITEMS-ID.
      ENDIF.
    \* form print_tree
    FORM PRINT_TREE TABLES ITEMS STRUCTURE ITEMS.
      DATA: V_TABIX LIKE SY-TABIX,
            START_TABIX LIKE SY-TABIX,
            V_LEVEL LIKE SY-TFILL,
            V_OFFSET TYPE I,
            V_ID LIKE ITEMS-ID,
            V_PARENT_ID LIKE ITEMS-PARENT_ID,
            V_PARENT_ID_FOR_VLINE LIKE ITEMS-PARENT_ID,
            V_PREV_LEVEL TYPE I,
            V_ITEMS_COUNT LIKE SY-TFILL,
            V_VLINES_STRING(200).
      CHECK NOT ITEMS[] IS INITIAL.
      SORT ITEMS BY PARENT_ID ID.
      READ TABLE ITEMS INDEX 1.
      V_PARENT_ID = ITEMS-PARENT_ID.
      START_TABIX = 1.
      REFRESH TABIX_STACK.
      DO.
        LOOP AT ITEMS FROM START_TABIX.
          V_TABIX = START_TABIX = SY-TABIX."remember current index
          V_ID = ITEMS-ID.
          V_PARENT_ID_FOR_VLINE = ITEMS-PARENT_ID.
    \*     decrease level and exit loop if parent not the same as previous
          IF ITEMS-PARENT_ID NE V_PARENT_ID.
            PERFORM READ_FROM_STACK CHANGING START_TABIX. "level = NoOfRecs
            READ TABLE ITEMS INDEX START_TABIX.
            V_PARENT_ID = ITEMS-PARENT_ID.
            ADD 1 TO START_TABIX.   "next loop starts from parent index + 1
    \*        clear vline
            IF V_LEVEL > 1.
              V_OFFSET = 2 + ( V_LEVEL - 2 ) * 3.
              IF V_LEVEL = 1. V_OFFSET = 1. ENDIF.
              V_VLINES_STRING+V_OFFSET = ' '.
            ENDIF.
            EXIT.
          ENDIF.
          V_PARENT_ID = ITEMS-PARENT_ID.
    \*     write item
          FORMAT COLOR OFF.
    DESCRIBE TABLE TABIX_STACK LINES V_LEVEL."level is no of StackRecs
          WRITE: / V_VLINES_STRING.
          V_OFFSET = V_LEVEL * 3.
          IF V_LEVEL NE 0.
            IF V_PREV_LEVEL < V_LEVEL.
              WRITE: AT V_OFFSET '|', / ''.
              WRITE: / V_VLINES_STRING.
            ENDIF.
            V_OFFSET = V_LEVEL * 3.
            WRITE AT V_OFFSET '|--'.
          ENDIF.
          V_OFFSET = V_OFFSET + 3.
          CASE ITEMS-SYMBOL.
            WHEN '+'.
              WRITE AT V_OFFSET SYM_PLUS_FOLDER AS SYMBOL
                    COLOR 4 INTENSIFIED HOTSPOT.
            WHEN '-'.
              WRITE AT V_OFFSET SYM_MINUS_FOLDER AS SYMBOL
                    COLOR 4 INTENSIFIED HOTSPOT.
            WHEN OTHERS. FORMAT COLOR 5.
          ENDCASE.
          WRITE: ITEMS-TEXT.
          V_PREV_LEVEL = V_LEVEL.
          HIDE: ITEMS-ID.
          ADD 1 TO V_ITEMS_COUNT.
          READ TABLE ITEMS WITH KEY PARENT_ID = ITEMS-ID.
    \*     increase level and exit loop if item has children
          IF SY-SUBRC = 0.
            START_TABIX = SY-TABIX.
            APPEND V_TABIX TO TABIX_STACK. "level is no of recs in stack
            V_PARENT_ID = ITEMS-PARENT_ID.
    \*        set vline
            V_TABIX = V_TABIX + 1.
            READ TABLE ITEMS INDEX V_TABIX.
            V_OFFSET = 2 + ( V_LEVEL - 1 ) * 3.
            IF V_LEVEL > 0.
              IF ITEMS-PARENT_ID = V_PARENT_ID_FOR_VLINE AND SY-SUBRC = 0.
                V_VLINES_STRING+V_OFFSET = '|'.
              ELSE.
                V_VLINES_STRING+V_OFFSET = ' '.
              ENDIF.
            ENDIF.
            EXIT.
          ENDIF.
    \*     at last - decrease level
          AT LAST.
    \*        clear vline
            IF V_LEVEL > 1.
              V_OFFSET = 2 + ( V_LEVEL - 2 ) * 3.
              IF V_LEVEL = 1. V_OFFSET = 1. ENDIF.
              V_VLINES_STRING+V_OFFSET = ' '.
            ENDIF.
            " next loop starts from parent index, not parent index + 1
            " because of different parents level will decrease anyway
            PERFORM READ_FROM_STACK CHANGING START_TABIX.
            APPEND START_TABIX TO TABIX_STACK. "must return index to stack
          ENDAT.
        ENDLOOP.
        DESCRIBE TABLE ITEMS.
        IF START_TABIX > SY-TFILL OR V_ITEMS_COUNT >= SY-TFILL.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.
    \* form expand_collapse
    FORM EXPAND_COLLAPSE USING VALUE(V_ID).
      DATA: V_NO_MORE_ORPHANS,
            ITEMS_TEMP LIKE ITEMS OCCURS 100 WITH HEADER LINE.
      DELETE ITEMS_SHOW WHERE PARENT_ID = V_ID. "try to collapse
      IF SY-SUBRC = 0.                     "succesfull first collapse
        DO.            "cascade collapse - delete 'orphans' that are left
          REFRESH ITEMS_TEMP.
          MOVE ITEMS_SHOW\[] TO ITEMS_TEMP[].
          SORT ITEMS_TEMP BY ID.
          V_NO_MORE_ORPHANS = 'X'.
          LOOP AT ITEMS_SHOW WHERE PARENT_ID NE ''.
            READ TABLE ITEMS_TEMP WITH KEY ID = ITEMS_SHOW-PARENT_ID
                                   BINARY SEARCH TRANSPORTING NO FIELDS.
            IF SY-SUBRC NE 0.              "no parent - it's an orphan
              CLEAR V_NO_MORE_ORPHANS.
              DELETE ITEMS_SHOW.
            ENDIF.
          ENDLOOP.
          IF V_NO_MORE_ORPHANS = 'X'. EXIT. ENDIF.
        ENDDO.
        ITEMS_SHOW-SYMBOL = '+'.
        MODIFY ITEMS_SHOW TRANSPORTING SYMBOL WHERE ID = V_ID.
      ELSE.                                "unsuccessfull collapse - expand
        ITEMS_SHOW-SYMBOL = '-'.
        MODIFY ITEMS_SHOW TRANSPORTING SYMBOL WHERE ID = V_ID.
        LOOP AT ITEMS WHERE PARENT_ID = V_ID.      "show children
          APPEND ITEMS TO ITEMS_SHOW.
        ENDLOOP.
        LOOP AT ITEMS_SHOW WHERE PARENT_ID = V_ID. "check grandchildren
          READ TABLE ITEMS WITH KEY PARENT_ID = ITEMS_SHOW-ID.
          IF SY-SUBRC = 0.
            ITEMS_SHOW-SYMBOL = '+'.
          ELSE.
            ITEMS_SHOW-SYMBOL = ''.
          ENDIF.
          MODIFY ITEMS_SHOW.
        ENDLOOP.
      ENDIF.
    ENDFORM.
    \* form append_item
    FORM APPEND_ITEM USING VALUE(ID) VALUE(PARENT_ID) VALUE(TEXT).
      ITEMS-ID = ID.
      ITEMS-PARENT_ID = PARENT_ID.
      ITEMS-TEXT = TEXT.
      APPEND ITEMS.
    ENDFORM.
    \* form read_from_stack
    FORM READ_FROM_STACK CHANGING TABIX LIKE SY-TABIX.
      DESCRIBE TABLE TABIX_STACK.
      CHECK SY-TFILL NE 0.
      READ TABLE TABIX_STACK INDEX SY-TFILL.
      TABIX = TABIX_STACK.
      DELETE TABIX_STACK INDEX SY-TFILL.
    ENDFORM.
    Or use this FM RS_TREE_SET_CURRENT_LAYOUT
    *& Report  ZTREESTRUC                                                  *
    REPORT  ZTREESTRUC                              .
    Type-pools : fibs,stree.
    data : t_node type snodetext.
    data : node_tab like t_node occurs 0 with header line.
    clear : node_tab, node_tab[].
    node_tab-type = 'T'.
    node_tab-name = 'Earth'.
    node_tab-tlevel = '01'.
    node_tab-nlength = '5'.
    node_tab-color = '4'.
    node_tab-text = 'Hello'.
    node_tab-tlength ='5'.
    node_tab-tcolor = 3.
    append node_tab.
    clear node_tab.
    node_tab-type = 'P'.
    node_tab-name = 'Europe'.
    node_tab-tlevel = '02'.
    node_tab-nlength = '6'.
    node_tab-color = '1'.
    node_tab-text = 'Hello'.
    node_tab-tlength ='5'.
    node_tab-tcolor = 4.
    append node_tab.
    clear node_tab.
    node_tab-type = 'P'.
    node_tab-name = 'Germany'.
    node_tab-tlevel = '03'.
    node_tab-nlength = '7'.
    node_tab-color = '4'.
    node_tab-text = 'Hello'.
    node_tab-tlength ='5'.
    node_tab-tcolor = 4.
    append node_tab.
    clear node_tab.
    node_tab-type = 'P'.
    node_tab-name = 'Berlin'.
    node_tab-tlevel = '04'.
    node_tab-nlength = '6'.
    node_tab-color = '4'.
    node_tab-text = 'Hello'.
    node_tab-tlength ='5'.
    node_tab-tcolor = 3.
    append node_tab.
    clear node_tab.
    node_tab-type = 'P'.
    node_tab-name = 'Asia'.
    node_tab-tlevel = '02'.
    node_tab-nlength = '4'.
    node_tab-color = '1'.
    node_tab-text = 'Hello'.
    node_tab-tlength ='5'.
    node_tab-tcolor = 3.
    append node_tab.
    clear node_tab.
    node_tab-type = 'P'.
    node_tab-name = 'India'.
    node_tab-tlevel = '03-'.
    node_tab-nlength = '5'.
    node_tab-color = '1'.
    node_tab-text = 'Hello'.
    node_tab-tlength ='5'.
    node_tab-tcolor = 3.
    append node_tab.
    clear node_tab.
    node_tab-type = 'P'.
    node_tab-name = 'Bombay'.
    node_tab-tlevel = '04-'.
    node_tab-nlength = '6'.
    node_tab-color = '1'.
    node_tab-text = 'Hello'.
    node_tab-tlength ='5'.
    node_tab-tcolor = 3.
    append node_tab.
    clear node_tab.
    CALL FUNCTION 'RS_TREE_CONSTRUCT'
    \* EXPORTING
      INSERT_ID                = '000000'
      RELATIONSHIP             = ' '
      LOG                      =
      TABLES
        NODETAB                  = node_tab
    \* EXCEPTIONS
      TREE_FAILURE             = 1
      ID_NOT_FOUND             = 2
      WRONG_RELATIONSHIP       = 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.
      DATA: type_mapping TYPE stree_ctl_type_mapping_tab.
      DATA: wa_type TYPE stree_ctl_type_mapping.
      CLEAR: type_mapping[].
        wa_type-type = 'A'.
        wa_type-icon = '@BL@'.
        APPEND wa_type TO type_mapping.
    *CALL FUNCTION 'RS_TREE_CONTROL_PREPARE'
    \* EXPORTING
      CONTROL_PATTERN             = STREE_CTL_GENERIC
       CONTROL_PATTERN             = 'PH'
    \**   HIERARCHY_HEADER            =
      INITIAL_HEADER_WIDTH        =
      LIST_ITEM_HEADER            =
      MULTIPLE_SELECTION          = 'X'
      ITEM_SELECTION              = STREE_FALSE
      SUPPRESS_NODE_ICON          = STREE_FALSE
      SUPPRESS_FOLDER_ICON        = STREE_FALSE
      CALLBACK_PROGRAM            =
      CALLBACK_ITEM_DISPLAY       =
      COLOR_MAPPING               =
        TYPE_MAPPING                = type_mapping
    IMPORTING
      SUBSCREEN_PROGRAM           =
      SUBSCREEN_DYNNR             =
    EXCEPTIONS
      NOT_AVAILABLE               = 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.
    *CALL FUNCTION 'RS_TREE_SET_CURRENT_LAYOUT'
    \** EXPORTING
      CURSOR_COLUMN             = 3
      CURSOR_LINE               = 2
      FIRST_NODE                = 1
      FIRST_NODE_TYPE           = ' '
      LIST_COLUMN               = 1
      LIST_LINE                 = 1
      LAYOUT_MODE               = STREE_LAYOUT_NORMAL
    IMPORTING
      INCONSISTENT_LAYOUT       =
    TABLES
      LAYOUT                    =
    CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
    EXPORTING
    \*   CALLBACK_PROGRAM                =
      CALLBACK_USER_COMMAND           =
      CALLBACK_TEXT_DISPLAY           =
      CALLBACK_MOREINFO_DISPLAY       =
      CALLBACK_COLOR_DISPLAY          =
      CALLBACK_TOP_OF_PAGE            =
      CALLBACK_GUI_STATUS             =
      CALLBACK_CONTEXT_MENU           =
      STATUS                          = 'IMPLICIT'
      CHECK_DUPLICATE_NAME            = '1'
      COLOR_OF_NODE                   = '4'
      COLOR_OF_MARK                   = '3'
      COLOR_OF_LINK                   = '1'
      COLOR_OF_MATCH                  = '5'
      LOWER_CASE_SENSITIVE            = ' '
      MODIFICATION_LOG                = ' '
      NODE_LENGTH                     = 30
      TEXT_LENGTH                     = 75
      TEXT_LENGTH1                    = 0
      TEXT_LENGTH2                    = 0
      RETURN_MARKED_SUBTREE           = ' '
      SCREEN_START_COLUMN             = 0
      SCREEN_START_LINE               = 0
      SCREEN_END_COLUMN               = 0
      SCREEN_END_LINE                 = 0
      SUPPRESS_NODE_OUTPUT            = ' '
      LAYOUT_MODE                     = ' '
      USE_CONTROL                     = STREE_USE_LIST
       USE_CONTROL                     = 'L'.
    \* IMPORTING
      F15                             =
    **********end of program
    For Tree structure in alv
    Check this
    *& Report  ZALVTREE                                                    *
    REPORT  ZALVTREE                                .
    *Data Declaration
    TABLES:     ekko.
    TYPE-POOLS: slis.                                 "ALV Declarations
    TYPES: BEGIN OF t_ekko,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko     TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          it_ekpo     TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          it_emptytab TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko     TYPE t_ekko,
          wa_ekpo     TYPE t_ekko.
    DATA: ok_code like sy-ucomm,           "OK-Code
          save_ok like sy-ucomm.
    *ALV data declarations
    DATA: fieldcatalog  TYPE lvc_t_fcat WITH HEADER LINE.
    DATA: gd_fieldcat   TYPE lvc_t_fcat,
          gd_tab_group  TYPE slis_t_sp_group_alv,
          gd_layout     TYPE slis_layout_alv.
    *ALVtree data declarations
    CLASS cl_gui_column_tree DEFINITION LOAD.
    CLASS cl_gui_cfw DEFINITION LOAD.
    DATA: gd_tree             TYPE REF TO cl_gui_alv_tree,
          gd_hierarchy_header TYPE treev_hhdr,
          gd_report_title     TYPE slis_t_listheader,
          gd_logo             TYPE sdydo_value,
          gd_variant          TYPE disvariant.
    *Create container for alv-tree
    DATA: l_tree_container_name(30) TYPE c,
          l_custom_container        TYPE REF TO cl_gui_custom_container.
    *Includes
    *INCLUDE ZDEMO_ALVTREEO01. "Screen PBO Modules
    *INCLUDE ZDEMO_ALVTREEI01. "Screen PAI Modules
    *INCLUDE ZDEMO_ALVTREEF01. "ABAP Subroutines(FORMS)
    *Start-of-selection.
    START-OF-SELECTION.
    \* ALVtree setup data
        PERFORM data_retrieval.
        PERFORM build_fieldcatalog.
        PERFORM build_layout.
        PERFORM build_hierarchy_header CHANGING gd_hierarchy_header.
        PERFORM build_report_title USING gd_report_title gd_logo.
        PERFORM build_variant.
    \* Display ALVtree report
      call screen 100.
    *&      Form  DATA_RETRIEVAL
    \*       Retrieve data into Internal tables
    FORM data_retrieval.
      SELECT ebeln
       UP TO 10 ROWS
        FROM ekko
        INTO corresponding fields of TABLE it_ekko.
      loop at it_ekko into wa_ekko.
        SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
          FROM ekpo
          appending TABLE it_ekpo
         where ebeln eq wa_ekko-ebeln.
      endloop.
    ENDFORM.                    " DATA_RETRIEVAL
    *&      Form  BUILD_FIELDCATALOG
    \*       Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
    \* Please not there are a number of differences between the structure of
    ALVtree fieldcatalogs and ALVgrid fieldcatalogs.
    For example the field seltext_m is replace by scrtext_m in ALVtree.
      fieldcatalog-fieldname   = 'EBELN'.           "Field name in itab
      fieldcatalog-scrtext_m   = 'Purchase Order'.  "Column text
      fieldcatalog-col_pos     = 0.                 "Column position
      fieldcatalog-outputlen   = 15.                "Column width
      fieldcatalog-emphasize   = 'X'.               "Emphasize  (X or SPACE)
      fieldcatalog-key         = 'X'.               "Key Field? (X or SPACE)
    \*  fieldcatalog-do_sum      = 'X'.              "Sum Column?
    fieldcatalog-no_zero     = 'X'.              "Don't display if zero
      APPEND fieldcatalog TO gd_fieldcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-scrtext_m   = 'PO Iten'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 1.
      APPEND fieldcatalog TO gd_fieldcat..
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-scrtext_m   = 'Status'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 2.
      APPEND fieldcatalog TO gd_fieldcat..
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-scrtext_m   = 'Item change date'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 3.
      APPEND fieldcatalog TO gd_fieldcat..
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-scrtext_m   = 'Material Number'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 4.
      APPEND fieldcatalog TO gd_fieldcat..
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-scrtext_m   = 'PO quantity'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 5.
      APPEND fieldcatalog TO gd_fieldcat..
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-scrtext_m   = 'Order Unit'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 6.
      APPEND fieldcatalog TO gd_fieldcat..
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-scrtext_m   = 'Net Price'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-datatype     = 'CURR'.
      APPEND fieldcatalog TO gd_fieldcat..
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-scrtext_m   = 'Price Unit'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 8.
      APPEND fieldcatalog TO gd_fieldcat..
      CLEAR  fieldcatalog.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
    \*       Build layout for ALV grid report
    FORM build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    \*  gd_layout-totals_only        = 'X'.
    gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
                                            "click(press f2)
    gd_layout-zebra             = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text       = 'helllllo'.
    ENDFORM.                    " BUILD_LAYOUT
    *&      Form  build_hierarchy_header
    \*       build hierarchy-header-information
    \*      -->P_L_HIERARCHY_HEADER  structure for hierarchy-header
    FORM build_hierarchy_header CHANGING
                                   p_hierarchy_header TYPE treev_hhdr.
      p_hierarchy_header-heading = 'Hierarchy Header'(013).
      p_hierarchy_header-tooltip = 'This is the Hierarchy Header !'(014).
      p_hierarchy_header-width = 30.
      p_hierarchy_header-width_pix = ''.
    ENDFORM.                               " build_hierarchy_header
    *&      Form  BUILD_REPORT_TITLE
    \*       Build table for ALVtree header
    \*  <->  p1        Header details
    <->  p2        Logo value
    FORM build_report_title CHANGING
          pt_report_title  TYPE slis_t_listheader
          pa_logo             TYPE sdydo_value.
      DATA: ls_line TYPE slis_listheader,
            ld_date(10) TYPE c.
    \* List Heading Line(TYPE H)
      CLEAR ls_line.
      ls_line-typ  = 'H'.
    \* ls_line-key     "Not Used For This Type(H)
      ls_line-info = 'PO ALVTree Display'.
      APPEND ls_line TO pt_report_title.
    \* Status Line(TYPE S)
      ld_date(2) = sy-datum+6(2).
      ld_date+2(1) = '/'.
      ld_date3(2) = sy-datum4(2).
      ld_date+5(1) = '/'.
      ld_date+6(4) = sy-datum(4).
      ls_line-typ  = 'S'.
      ls_line-key  = 'Date'.
      ls_line-info = ld_date.
      APPEND ls_line TO pt_report_title.
    \* Action Line(TYPE A)
      CLEAR ls_line.
      ls_line-typ  = 'A'.
      CONCATENATE 'Report: ' sy-repid INTO ls_line-info  SEPARATED BY space.
      APPEND ls_line TO pt_report_title.
    ENDFORM.
    *&      Form  BUILD_VARIANT
    \*       Build variant
    form build_variant.
    \* Set repid for storing variants
      gd_variant-report = sy-repid.
    endform.                    " BUILD_VARIANT 
    Regards
    Pavan

  • Hierarchial ALV  Tree Report.

    Hi!
    iam designing a module pool to get all the info of the idoc like status record control record etc.the 3 rd screen would be a hierarchial tree structure.All the data would be retrieved from Z tables.
    My requirement is on the left side of the pane the tree would contain 6 tables as nodes and these would be constant for all the idoc numbers.On the right side of the screen i would have to populate the complete data from these tables.
    When user clicks on the first table only that table data needs to appear.This would be only a display report.
    Plz tell me if this logic would work
    I will create the tree structure on the left side of the pane with all the 6 tables as default.I would also define a subscren on the right side and would call a table control for the respective tables along with the data populated in them.
    Now can i link the double click event of the tree ie the table name to populate the table control in the subscreen.
    Please provide suggestions.
    thanks
    kedar

    HI Kedar,
    What u r trying to do is going to work.
    Evn I tried to do the same, but since I ahve less knowledge in ALV class I couldnt do it.
    U can refer to DWDM, it is for demo programs...it has ALV tree method

  • How to set selected row on startup of an alv tree build with cl_salv_tree

    HI,
    I have a cl_salv_tree and want the tree structure to open a specific node when starting the report. My coding is something like that:
      DATA: lr_selections       TYPE REF TO cl_salv_selections_tree,
            lr_nodes            TYPE REF TO cl_salv_nodes,
            lr_node             TYPE REF TO cl_salv_node,
            lv_node_index(12)   TYPE c,
            lt_nodes            TYPE salv_t_nodes,
            ls_nodes            TYPE salv_s_nodes,
            lr_item             TYPE REF TO cl_salv_item.
    lr_selections = lr_tree->get_selections( ).
    lt_nodes = lr_selections->get_selected_nodes( ).
    lr_item = lr_selections->get_selected_item( ).
    IF lr_item IS NOT BOUND.
      lr_nodes = lr_tree->get_nodes( ).
      lr_node = lr_nodes->get_node( lv_node_index ).  "lv_node_index is the index of the node i want to be open on startup
      ls_nodes-key = lv_node_index.
      ls_nodes-node = lr_node.
      APPEND ls_nodes TO lt_nodes.
      lr_selections->set_selected_nodes( lt_nodes ).
    ELSE.
      ls_nodes-node = lr_item->get_node( ).
      ls_nodes-key = ls_nodes-node->get_key( ).
      APPEND ls_nodes TO lt_nodes.
      lr_selections->set_selected_nodes( lt_nodes ).
    ENDIF.
    This coding is also used, when the report is running and someone clicks an a row. So thats why I check if a item is marked
    or the total row.
    But the tree always starts without opening the node.
    Do I use the right methods or am I totally wrong ????
    Thx for your help in advance
    dinodini
    Edited by: dinodini on Nov 16, 2010 6:51 PM

    What you are looking for is the similar functionality which could be achieved by the method EXPAND_NODE of the ALV Tree created using CL_GUI_ALV_TREE. In SALV Tree, you can use the method EXPAND of the class CL_SALV_NODE to show all the subnodes of that node, not by using the SELECTION.
    Once you add the Node using the method ADD_NODE, you should call the method EXPAND to expand that subtree.
                lr_nodes  = lr_tree->get_nodes( ).
                lr_node =  lr_nodes->ADD_NODE( ... )
                lr_node->EXPAND( COMPLETE_SUBTREE = 'X' ).
    Regards,
    Naimesh Patel

  • Report with non aggregated and aggregated columns from different facts.

    Hi,
    We have got requirement as follows,
    1) We have two dimension tables, and two fact(Fact1 and Fact2) table in physical.
    2) In BMM we have made hierarchies for both dimensions, and are joins both logical fact table.
    3)In fact1, we are having three measures of which we have made two as aggregation sum, and one is non aggregated(It contains character).
    4)Fact2 have two measures, both are aggregation as sum.
    5)Now here the problem arises, we want to make a report with some columns from dim and non aggrgated column from fact1 and and aggregated column fact2
    How to resolve the above issue.
    Regards,
    Ankit

    As suggested you really want to move your none-aggregated fact attributes to a logical dimension (using the same physical table as the logical fact). Map this in the BMM layer as a snowflake, Place a hierarchy on this dimension with (at minimum) Total -> Detail levels, then on the other fact table you want to include in the report, set the content level on your other fact measures to the 'Total' level for your new logical Dim and it will allow them to be present in the same report.

  • ALV Tree Problem with Checkboxes

    Hello,
    i've got a problem.
    I have an ALV-Tree and die ALV-Detaillist of the tree are type checkbox.
    That's working correct.
    But i want to fill initial data in the checkboxes but the checkbox isnt set.
    i've done as followed:
      CALL METHOD go_alv_tree->set_table_for_first_display
        EXPORTING
         I_STRUCTURE_NAME     =
         IS_VARIANT           =
         I_SAVE               =
          i_default            = abap_false
          is_hierarchy_header  = ls_header
         IS_EXCEPTION_FIELD   =
         IT_SPECIAL_GROUPS    =
         IT_LIST_COMMENTARY   =
         I_LOGO               =
         I_BACKGROUND_ID      =
         IT_TOOLBAR_EXCLUDING =
        CHANGING
          it_outtab            = <go_data_tab>
         IT_FILTER            =
          it_fieldcatalog      = lt_fcat.
    fieldcat are several fields all as checkbox.
    Then i get a component of the output structure and set a X.
    ASSIGN COMPONENT lv_help_arbpl OF STRUCTURE <go_data_struc>
                           TO <fs_arbl>.
          IF <fs_arbl> IS ASSIGNED.
            <fs_arbl> = lc_xfeld.
          ENDIF.
            CALL METHOD go_alv_tree->add_node
              EXPORTING
                i_relat_node_key     = lv_matnr
                i_relationship       = cl_gui_column_tree=>relat_last_child
                is_outtab_line       = <go_data_struc>
                is_node_layout       = ls_layout
             IT_ITEM_LAYOUT       =
                i_node_text          = lv_node_text
              IMPORTING
                e_new_node_key       = lv_period
              EXCEPTIONS
                relat_node_not_found = 1
                node_not_found       = 2
                OTHERS               = 3.
    in <go_data_struc> the fields which should be set, are set with X.
    But after i add all of my nodes and do CALL METHOD p_go_alv_tree->frontend_update, the checkbox is empty but there is an X in the field beside the checkbox.
    Thanks in advance.
    best regards,
    Dennis

    Ok i solved the problem.
    best regards,
    Dennis

  • Problem when printing Alv Tree Report in back ground

    Hi,
    I am using SUBMIT ...TO SAP-SPOOL WITHOUT SPOOL DYNPRO with GET_PRINT_PARAMETERS FM.Its working fine.
    My problem is that my SUBMIT report have TREE STRUCTURE as output so when i am running my program one blank screen is coming with heading DISPLAY LOG TREE because of TREE STRUCTURE.when i click on back button then only further processing happens.
    How to avoid this TREE STRUCTURE SCREEN ???
    Is there any other way to pass your list o/p to SPOOL other than .....TO SAP-SPOOL..?
    Thanks in advance.

    in foreground when u run ALV report it holds maximum fields and displays in 1 single row, but the case is not in back ground...When any report is run in background, the default size for a line is 255 chars...So, if it more it gets splitted into 2 line item....This is how back ground job works for a report  though it is a normal report or alv report.

  • ALV TREE Report

    Dear all,
    I am currently working on a tree alv report. Here i have 3 levels of heirearchy each heirearchy level has different fields to be displayed. Can anyone please help me out how to build the fieldcatalog when the field changes for each heirearchy level? If anyone can help me with sample report will be rewarded with points.
    Example:
    1st level - Netwrok Activity -- Display Fields from AFVC table
    2nd level - Components of Activity - Display fields from RESB Table
    3rd Level - Items of Component - Display fields from STPO table
    We dont have such example in BCLAVTREE if so pls help me with some sample code of program how to build fieldcatolog.
    Thanks & Regards
    Sathish

    Hi,
    If it's going three level drill down list then you can use can see following piece of code. declaration should be like this.
    top_of_page type slis_formname value 'TOP_OF_PAGE',
    end_of_page type slis_formname value 'END_OF_PAGE',
    user_command type slis_formname value 'USER_COMMAND',
    pf_status_set type slis_formname value 'PF_STATUS_SET',
    user_command1 type slis_formname value 'USER_COMMAND1',
    pf_status_set1 type slis_formname value 'PF_STATUS_SET1',
    and displaying the first list will be.
    call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
    * I_INTERFACE_CHECK = ' '
    * I_BYPASSING_BUFFER =
    * I_BUFFER_ACTIVE = ' '
    i_callback_program = name
    i_callback_pf_status_set = pf_status_set
    i_callback_user_command = user_command
    * I_STRUCTURE_NAME =
    i_callback_top_of_page = 'TOP-OF-PAGE'
    i_grid_title = 'CUSTOMER GROUP WISE REPORT'
    is_layout = layout
    it_fieldcat = fieldcat_t
    * IT_EXCLUDING =
    * IT_SPECIAL_GROUPS =
    * it_sort = SORT_T
    * IT_FILTER =
    * IS_SEL_HIDE =
    i_default = 'X'
    i_save = 'A'
    * IS_VARIANT =
    * it_events = events_t
    * IT_EVENT_EXIT =
    * IS_PRINT =
    * IS_REPREP_ID =
    * IT_ADD_FIELDCAT = FIELDCAT_T1
    * I_SCREEN_START_COLUMN = 0
    * I_SCREEN_START_LINE = 0
    * I_SCREEN_END_COLUMN = 0
    * I_SCREEN_END_LINE = 0
    * IMPORTING
    * E_EXIT_CAUSED_BY_CALLER =
    * ES_EXIT_CAUSED_BY_USER =
    tables
    t_outtab = it_basic.
    and capturing user command will be like this.
    form user_command using ucomm like sy-ucomm
    selfield type slis_selfield.
    case ucomm.
    when '&IC1'.
    read table it_basic index selfield-tabindex.
    perform get_data_first_list using it_basic-kdgrp.
    when '&PLEVEL'.
    when '&CUST'.
    when '&F15'.
    leave to screen 0.
    endcase.
    endform. "user_command
    you may be able to display the similar when the double click a line or clicking on a button.
    if you want have mulitple header lines on the top of page you can this.
    form top-of-page.
    *ALV Header declarations
    data: t_header type slis_t_listheader,
    wa_header type slis_listheader.
    wa_header-typ = 'H'.
    wa_header-info = xhead.
    append wa_header to t_header.
    clear wa_header.
    concatenate sy-datum+6(2) sy-datum+4(2) sy-datum+0(4) into xhead1
    separated by '.'.
    wa_header-typ = 'H'.
    wa_header-info = xhead1.
    append wa_header to t_header.
    clear wa_header.
    * append t_header.
    *append t_header.
    call function 'REUSE_ALV_COMMENTARY_WRITE'
    exporting
    it_list_commentary = t_header.
    * i_logo = 'Z_LOGO'.
    endform. "top-of-page
    May it helps you.
    Regards.
    DS

  • OBIEE operational reporting with non EBS source(source is GOMs)

    Can anyone please explain me what is operational reporting and how to deal with it if the source is GOMS(non EBS source)?
    any one had the experience of dealing with such a project?
    please post any links related to this topic if you can?
    Edited by: 949630 on Jul 29, 2012 10:45 AM

    No.
    Read the manuals, search this forum, do your own learning.
    How to configure OBIA is part of the product documentation.
    How to change connection pools in OBIEE is part of the product documentation.
    Both are covered many times in this forum and on the wider web in blog postings etc.

  • Suppressing empty nodes in ALV tree grid

    Hi,  I'm writing an ALV tree report with financial data broken down by cost element hierarchy. We've determined that the maximum number of levels in our hierarchy is seven so have to build the program to accept seven node levels. Most times when it runs it will find fewer than seven nodes.  Is there an easy to to suppress empty columns in the report so that the end user does not not see a bunch of empty nodes in the report?

    Expand or Collapse Branches or Hide Areas
    You are able to expand and collapse the branches of the tree structure individually or together. Beyond that you are able to make a node or an item completely invisible.
    Methods
    Function                                       Class                                   Method
    Expand individual branch               CL_SALV_NODE                  EXPAND 
    Collapse individual branch                                                        COLLAPSE
    Expand all branches                    CL_SALV_NODES                EXPAND_ALL
    Collapse all branches                                                              COLLAPSE_ALL
    Change visibility of a node            CL_SALV_NODE                  SET_VISIBLE
    Check whether the node is visible                                             IS_VISIBLE
    Change visibility of an item             CL_SALV_ITEM                 SET_VISIBLE
    Check whether the item is visible                                             IS_VISIBLE

Maybe you are looking for

  • How to Disable field in Selection-screen

    Hi All, I want to disable Screen field in my seelction screen. Below is my Code, but it is not working. I want to perform. If RB1 = X Then Parameter P_VBELN should get disabled. Please suggest, find below my code. *....Selection Screen selection-scre

  • My iPod Touch 4g just crashes a lot in games like Batman- Arkham city

    I recently updated my iPod to iOs 5.1.1 expecting some better performance an al... and I reaaaaly love gaming on my iPod but it has jus occured that all my games are crashing.... Especially Batman Arkham city & Shadowgun its an iOs error... Dese same

  • What happened to "weighted optimization" in CS4

    In Photoshop CS3 and earlier, weighted optimization of JPEGs could be achieved by using the "Use channel to modify quality setting" button just to the right of the Quality setting in the Save for Web and Devices dialog box. This option no longer appe

  • Text file on cldc

    hallo, can i create text file with text editor at pc than can be stored and manipulated on mobile phone. thanks very much

  • Graphs

    I have recently sarted programming in java, and I would like to write a program that takes in corridinates x and y and draws a line graph on a logarithmic scale with a line of best fit, but i do not know how to handle graphics in java, how is it best