Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Double click ALV not change

Former Member
0 Kudos

Hi all

i had programing a simple tree with alv, check URL

[http://bildupload.sro.at/p/350813.html]

on the left side, you see database. Now, when you click ones of db, it should show the db with data fields in ALV. The first click work, but continue doens't work. Why?

thx

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

You clear (REFRESH I_TAB...) in event generated by theclick on left side?

May be you are appending at the end of internal table...

Best regards,

Leandro Mengue

7 REPLIES 7

Former Member
0 Kudos

Hi,

You clear (REFRESH I_TAB...) in event generated by theclick on left side?

May be you are appending at the end of internal table...

Best regards,

Leandro Mengue

Former Member
0 Kudos

problem solved?

Former Member
0 Kudos

the event generated table is private class instance variable.

here the code


method create_and_init_tree.
    data lt_tabname         type tt_tabname.
*    data lt_simple_events   type cntl_simple_events.
*    data lrf_tree_events    type ref to gcl_tree_events.
*    data lt_node_table_type type tt_node_table_type.

    if c_grf_custom_container is bound.
      c_grf_custom_container->free( ).
      clear c_grf_custom_container.
    endif.

*    create object lrf_tree_events
*      exporting
*        irf_create_tree_node = me.

    me->build_table_db_index(
      changing
        ct_tabname = lt_tabname
        ).

    "Container erstellen
    create object c_grf_custom_container
      exporting
        container_name              = 'TREE_CONTAINER'
      exceptions
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5.
    if sy-subrc <> 0.
      message a000.
    endif.

    "Tree in Container inserten
    create object c_grf_simple_tree
      exporting
        parent                      = c_grf_custom_container
        node_selection_mode         = cl_gui_simple_tree=>node_sel_mode_single
      exceptions
        lifetime_error              = 1
        cntl_system_error           = 2
        create_error                = 3
        failed                      = 4
        illegal_node_selection_mode = 5.
    if sy-subrc <> 0.
      message a000.
    endif.

    me->create_events(
      changing
        ct_simple_events = c_gt_simple_events
        ).

    "Events registrieren
    c_grf_simple_tree->set_registered_events(
      exporting
        events                    = c_gt_simple_events
      exceptions
        cntl_error                = 1
        cntl_system_error         = 2
        illegal_event_combination = 3
        ).
    if sy-subrc <> 0.
      message a000.
    endif.

    set handler me->handle_node_double_click for c_grf_simple_tree.

    me->build_node_table(
      changing
        ct_tabname         = lt_tabname
        ct_node_table_type = c_gt_node_table_type
        ).

    c_grf_simple_tree->add_nodes(
      exporting
        table_structure_name           = 'MTREESNODE'
        node_table                     = c_gt_node_table_type
      exceptions
        failed                         = 1
        error_in_node_table            = 2
        dp_error                       = 3
        table_structure_name_not_found = 4
        others                         = 5
        ).
    if sy-subrc <> 0.
      message a000.
    endif.

  endmethod.                    "create_and_init_tree

 method create_events.
    data ls_simple_event type cntl_simple_event.

    ls_simple_event-eventid = cl_gui_simple_tree=>eventid_node_double_click.
    ls_simple_event-appl_event = 'X'.
    append ls_simple_event to ct_simple_events.
  endmethod.                    "create_event

  method build_node_table.
    field-symbols <ls_tabname> type tabname.
    data ls_node_table_type    like line of ct_node_table_type.
    data ls_tab_map            type ts_tab_map.

    if not c_gt_tab_map is initial.
      exit.
    endif.
    loop at ct_tabname assigning <ls_tabname>.
      ls_node_table_type-node_key = sy-tabix.
      clear ls_node_table_type-relatkey.
      clear ls_node_table_type-relatship.
      ls_node_table_type-hidden = ' '.
      ls_node_table_type-disabled = ' '.
      ls_node_table_type-n_image = icon_database_table.
      clear ls_node_table_type-isfolder.
      ls_node_table_type-text = <ls_tabname>.
      ls_tab_map-id = ls_node_table_type-node_key.
      ls_tab_map-tabname = ls_node_table_type-text.
      append ls_node_table_type to ct_node_table_type.
      append ls_tab_map to c_gt_tab_map.
    endloop.
  endmethod.                    "build_node_table

  method handle_node_double_click.
    constants co_tabname type string value 'C_GT_'.
    data lrf_show_db_alv type ref to gcl_show_db_alv.
    data ls_tab_map      type ts_tab_map.
    data lf_tabname      type string.

    field-symbols <lt_any> type any table.

    read table c_gt_tab_map into ls_tab_map
                            with key id = node_key.
    if sy-subrc = 0.
      concatenate co_tabname ls_tab_map-tabname
                  into lf_tabname.
      assign (lf_tabname) to <lt_any>.
      if sy-subrc = 0.
*        create object lrf_show_db_alv.
*        lrf_show_db_alv->create_alv(
*          changing
*            cf_tabname = ls_tab_map-tabname
*            ct_any     = <lt_any>
*            ).
        grf_show_db_alv->create_alv(
          changing
            cf_tabname = ls_tab_map-tabname
            ct_any     = <lt_any>
            ).
      endif.
    endif.
  endmethod.                    "handle_node_double_click

Former Member
0 Kudos

the event generated table is private class instance variable.

here the code


method create_and_init_tree.
    data lt_tabname         type tt_tabname.
*    data lt_simple_events   type cntl_simple_events.
*    data lrf_tree_events    type ref to gcl_tree_events.
*    data lt_node_table_type type tt_node_table_type.

    if c_grf_custom_container is bound.
      c_grf_custom_container->free( ).
      clear c_grf_custom_container.
    endif.

*    create object lrf_tree_events
*      exporting
*        irf_create_tree_node = me.

    me->build_table_db_index(
      changing
        ct_tabname = lt_tabname
        ).

    "Container erstellen
    create object c_grf_custom_container
      exporting
        container_name              = 'TREE_CONTAINER'
      exceptions
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5.
    if sy-subrc <> 0.
      message a000.
    endif.

    "Tree in Container inserten
    create object c_grf_simple_tree
      exporting
        parent                      = c_grf_custom_container
        node_selection_mode         = cl_gui_simple_tree=>node_sel_mode_single
      exceptions
        lifetime_error              = 1
        cntl_system_error           = 2
        create_error                = 3
        failed                      = 4
        illegal_node_selection_mode = 5.
    if sy-subrc <> 0.
      message a000.
    endif.

    me->create_events(
      changing
        ct_simple_events = c_gt_simple_events
        ).

    "Events registrieren
    c_grf_simple_tree->set_registered_events(
      exporting
        events                    = c_gt_simple_events
      exceptions
        cntl_error                = 1
        cntl_system_error         = 2
        illegal_event_combination = 3
        ).
    if sy-subrc <> 0.
      message a000.
    endif.

    set handler me->handle_node_double_click for c_grf_simple_tree.

    me->build_node_table(
      changing
        ct_tabname         = lt_tabname
        ct_node_table_type = c_gt_node_table_type
        ).

    c_grf_simple_tree->add_nodes(
      exporting
        table_structure_name           = 'MTREESNODE'
        node_table                     = c_gt_node_table_type
      exceptions
        failed                         = 1
        error_in_node_table            = 2
        dp_error                       = 3
        table_structure_name_not_found = 4
        others                         = 5
        ).
    if sy-subrc <> 0.
      message a000.
    endif.

  endmethod.                    "create_and_init_tree

 method create_events.
    data ls_simple_event type cntl_simple_event.

    ls_simple_event-eventid = cl_gui_simple_tree=>eventid_node_double_click.
    ls_simple_event-appl_event = 'X'.
    append ls_simple_event to ct_simple_events.
  endmethod.                    "create_event

  method build_node_table.
    field-symbols <ls_tabname> type tabname.
    data ls_node_table_type    like line of ct_node_table_type.
    data ls_tab_map            type ts_tab_map.

    if not c_gt_tab_map is initial.
      exit.
    endif.
    loop at ct_tabname assigning <ls_tabname>.
      ls_node_table_type-node_key = sy-tabix.
      clear ls_node_table_type-relatkey.
      clear ls_node_table_type-relatship.
      ls_node_table_type-hidden = ' '.
      ls_node_table_type-disabled = ' '.
      ls_node_table_type-n_image = icon_database_table.
      clear ls_node_table_type-isfolder.
      ls_node_table_type-text = <ls_tabname>.
      ls_tab_map-id = ls_node_table_type-node_key.
      ls_tab_map-tabname = ls_node_table_type-text.
      append ls_node_table_type to ct_node_table_type.
      append ls_tab_map to c_gt_tab_map.
    endloop.
  endmethod.                    "build_node_table

  method handle_node_double_click.
    constants co_tabname type string value 'C_GT_'.
    data lrf_show_db_alv type ref to gcl_show_db_alv.
    data ls_tab_map      type ts_tab_map.
    data lf_tabname      type string.

    field-symbols <lt_any> type any table.

    read table c_gt_tab_map into ls_tab_map
                            with key id = node_key.
    if sy-subrc = 0.
      concatenate co_tabname ls_tab_map-tabname
                  into lf_tabname.
      assign (lf_tabname) to <lt_any>.
      if sy-subrc = 0.
*        create object lrf_show_db_alv.
*        lrf_show_db_alv->create_alv(
*          changing
*            cf_tabname = ls_tab_map-tabname
*            ct_any     = <lt_any>
*            ).
        grf_show_db_alv->create_alv(
          changing
            cf_tabname = ls_tab_map-tabname
            ct_any     = <lt_any>
            ).
      endif.
    endif.
  endmethod.                    "handle_node_double_click

Former Member
0 Kudos

the event generated table is private class instance variable.

here the code


method create_and_init_tree.
    data lt_tabname         type tt_tabname.
*    data lt_simple_events   type cntl_simple_events.
*    data lrf_tree_events    type ref to gcl_tree_events.
*    data lt_node_table_type type tt_node_table_type.

    if c_grf_custom_container is bound.
      c_grf_custom_container->free( ).
      clear c_grf_custom_container.
    endif.

*    create object lrf_tree_events
*      exporting
*        irf_create_tree_node = me.

    me->build_table_db_index(
      changing
        ct_tabname = lt_tabname
        ).

    "Container erstellen
    create object c_grf_custom_container
      exporting
        container_name              = 'TREE_CONTAINER'
      exceptions
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5.
    if sy-subrc <> 0.
      message a000.
    endif.

    "Tree in Container inserten
    create object c_grf_simple_tree
      exporting
        parent                      = c_grf_custom_container
        node_selection_mode         = cl_gui_simple_tree=>node_sel_mode_single
      exceptions
        lifetime_error              = 1
        cntl_system_error           = 2
        create_error                = 3
        failed                      = 4
        illegal_node_selection_mode = 5.
    if sy-subrc <> 0.
      message a000.
    endif.

    me->create_events(
      changing
        ct_simple_events = c_gt_simple_events
        ).

    "Events registrieren
    c_grf_simple_tree->set_registered_events(
      exporting
        events                    = c_gt_simple_events
      exceptions
        cntl_error                = 1
        cntl_system_error         = 2
        illegal_event_combination = 3
        ).
    if sy-subrc <> 0.
      message a000.
    endif.

    set handler me->handle_node_double_click for c_grf_simple_tree.

    me->build_node_table(
      changing
        ct_tabname         = lt_tabname
        ct_node_table_type = c_gt_node_table_type
        ).

    c_grf_simple_tree->add_nodes(
      exporting
        table_structure_name           = 'MTREESNODE'
        node_table                     = c_gt_node_table_type
      exceptions
        failed                         = 1
        error_in_node_table            = 2
        dp_error                       = 3
        table_structure_name_not_found = 4
        others                         = 5
        ).
    if sy-subrc <> 0.
      message a000.
    endif.

  endmethod.                    "create_and_init_tree
--------------------------------------------------------------
 method create_events.
    data ls_simple_event type cntl_simple_event.

    ls_simple_event-eventid = cl_gui_simple_tree=>eventid_node_double_click.
    ls_simple_event-appl_event = 'X'.
    append ls_simple_event to ct_simple_events.
  endmethod.                    "create_event
--------------------------------------------------------------
  method build_node_table.
    field-symbols <ls_tabname> type tabname.
    data ls_node_table_type    like line of ct_node_table_type.
    data ls_tab_map            type ts_tab_map.

    if not c_gt_tab_map is initial.
      exit.
    endif.
    loop at ct_tabname assigning <ls_tabname>.
      ls_node_table_type-node_key = sy-tabix.
      clear ls_node_table_type-relatkey.
      clear ls_node_table_type-relatship.
      ls_node_table_type-hidden = ' '.
      ls_node_table_type-disabled = ' '.
      ls_node_table_type-n_image = icon_database_table.
      clear ls_node_table_type-isfolder.
      ls_node_table_type-text = <ls_tabname>.
      ls_tab_map-id = ls_node_table_type-node_key.
      ls_tab_map-tabname = ls_node_table_type-text.
      append ls_node_table_type to ct_node_table_type.
      append ls_tab_map to c_gt_tab_map.
    endloop.
  endmethod.                    "build_node_table
--------------------------------------------------------------
  method handle_node_double_click.
    constants co_tabname type string value 'C_GT_'.
    data lrf_show_db_alv type ref to gcl_show_db_alv.
    data ls_tab_map      type ts_tab_map.
    data lf_tabname      type string.

    field-symbols <lt_any> type any table.

    read table c_gt_tab_map into ls_tab_map
                            with key id = node_key.
    if sy-subrc = 0.
      concatenate co_tabname ls_tab_map-tabname
                  into lf_tabname.
      assign (lf_tabname) to <lt_any>.
      if sy-subrc = 0.
*        create object lrf_show_db_alv.
*        lrf_show_db_alv->create_alv(
*          changing
*            cf_tabname = ls_tab_map-tabname
*            ct_any     = <lt_any>
*            ).
        grf_show_db_alv->create_alv(
          changing
            cf_tabname = ls_tab_map-tabname
            ct_any     = <lt_any>
            ).
      endif.
    endif.
  endmethod.                    "handle_node_double_click

Former Member
0 Kudos

the event generated table is private class instance variable.

here the code


method create_and_init_tree.
    data lt_tabname         type tt_tabname.
*    data lt_simple_events   type cntl_simple_events.
*    data lrf_tree_events    type ref to gcl_tree_events.
*    data lt_node_table_type type tt_node_table_type.

    if c_grf_custom_container is bound.
      c_grf_custom_container->free( ).
      clear c_grf_custom_container.
    endif.

*    create object lrf_tree_events
*      exporting
*        irf_create_tree_node = me.

    me->build_table_db_index(
      changing
        ct_tabname = lt_tabname
        ).

    "Container erstellen
    create object c_grf_custom_container
      exporting
        container_name              = 'TREE_CONTAINER'
      exceptions
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5.
    if sy-subrc <> 0.
      message a000.
    endif.

    "Tree in Container inserten
    create object c_grf_simple_tree
      exporting
        parent                      = c_grf_custom_container
        node_selection_mode         = cl_gui_simple_tree=>node_sel_mode_single
      exceptions
        lifetime_error              = 1
        cntl_system_error           = 2
        create_error                = 3
        failed                      = 4
        illegal_node_selection_mode = 5.
    if sy-subrc <> 0.
      message a000.
    endif.

    me->create_events(
      changing
        ct_simple_events = c_gt_simple_events
        ).

    "Events registrieren
    c_grf_simple_tree->set_registered_events(
      exporting
        events                    = c_gt_simple_events
      exceptions
        cntl_error                = 1
        cntl_system_error         = 2
        illegal_event_combination = 3
        ).
    if sy-subrc <> 0.
      message a000.
    endif.

    set handler me->handle_node_double_click for c_grf_simple_tree.

    me->build_node_table(
      changing
        ct_tabname         = lt_tabname
        ct_node_table_type = c_gt_node_table_type
        ).

    c_grf_simple_tree->add_nodes(
      exporting
        table_structure_name           = 'MTREESNODE'
        node_table                     = c_gt_node_table_type
      exceptions
        failed                         = 1
        error_in_node_table            = 2
        dp_error                       = 3
        table_structure_name_not_found = 4
        others                         = 5
        ).
    if sy-subrc <> 0.
      message a000.
    endif.

  endmethod.                    "create_and_init_tree

Former Member
0 Kudos

i can't delete my post...sorry...