Skip to Content
0
Former Member
Feb 15, 2009 at 05:43 PM

cl_salv_table=>factory (subject is okay)

190 Views

Hi Friends,

The display / listing on my Screen 300 comes up again, although I have called the refresh method. I mean, at return to the screen 200 and chosing another button to display another list as the first display, I am still getting the display of the first button instead of the second listing which I want to display.

Can someone give me tip how to correct this bug.

my code:

IF NOT gr_table IS INITIAL.
    gr_table->refresh( ).
    CLEAR gr_table.
  ENDIF.


  CLEAR: gv_custom_container.
  CLEAR  gr_columns.

  IF gv_custom_container IS NOT BOUND.
    CREATE OBJECT gv_custom_container
      EXPORTING
        container_name = 'CUSTOM_300'.
  ENDIF.
  IF sy-subrc <> 0.
    EXIT.
  ELSE.

    TRY.
        CALL METHOD cl_salv_table=>factory
          EXPORTING
            r_container    = gv_custom_container
          IMPORTING
            r_salv_table   = gr_table
          CHANGING
            t_table        = gt_itab_email.
      CATCH cx_salv_msg.                                "#EC NO_HANDLER
      CLEANUP.
    ENDTRY.


*activate ALV generic Functions
    DATA: lr_functions TYPE REF TO cl_salv_functions_list.
    TRY.
        lr_functions = gr_table->get_functions( ).

        lr_functions->set_default( abap_true ).


        gr_columns = gr_table->get_columns( ).
        gr_columns->set_exception_column( value = 'LIGHTS' ).
      CATCH cx_salv_data_error.
      CLEANUP.
    ENDTRY.

    CALL METHOD gr_table->display.

Thanks

Blacky.

Edited by: Julius Bussche on Feb 15, 2009 10:28 PM