Skip to Content
0
Aug 24, 2020 at 12:36 PM

Insert Workarea Into Table with Parameters - Problem

77 Views

Hey,

My sample Code

Workarea/Table (Data)

DATA: go_salv     TYPE REF TO cl_salv_table,
      go_function TYPE REF TO cl_salv_functions_list,
      
      BEGIN OF wa,
        number   TYPE string,
        id       TYPE string,
        location TYPE string,
        password TYPE string,
        user     TYPE string,
      END OF wa,
      lt_data LIKE TABLE OF wa.


Insert some sample data

wa-number = '1234'.
wa-id = 'Test 1'.
wa-location = 'Test Location 1'.
wa-password = 'Test Password 1'.
wa-user = 'Test User 1'.

INSERT wa INTO TABLE lt_data.


wa-number = '5678'.
wa-id = 'Test 2'.
wa-location = 'Test Location 2'.
wa-password = 'Test Password 2'.
wa-user = 'Test User 2'.

INSERT wa INTO TABLE lt_data.


wa-number = '9999'.
wa-id = 'Test 3'.
wa-location = 'Test Location 3'.
wa-password = 'Test Password 3'.
wa-user = 'Test User 3'.

INSERT wa INTO TABLE lt_data.


Parameter (Selection-Screen)

SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS: bu_numb TYPE string.
SELECTION-SCREEN END OF BLOCK b1.


Display ALV Grid

IF wa-number = bu_numb.

* Displaying ALV Grid
  TRY.
      CALL METHOD cl_salv_table=>factory(
        IMPORTING
          r_salv_table = go_salv
        CHANGING
          t_table      = lt_data
      ).

      go_function = go_salv->get_functions( ).
      go_function->set_default( abap_true ).
      go_salv->display( ).

    CATCH cx_salv_msg.

  ENDTRY.
ELSE.
  MESSAGE 'Not found' TYPE 'E'.
ENDIF.


My Problem: 1234 and 5678 are showing Not found Error message, and 9999 is showing all three entries, but i want to show each entry if it matches the number.

If there is another way instead of writing
wa-number = '1234'.
wa-id = 'Test 1'.
wa-location = 'Test Location 1'.
wa-password = 'Test Password 1'.
wa-user = 'Test User 1'.

INSERT wa INTO TABLE lt_data. 
three times, I would also be happy if someone has an idea. Thanks in advance ; )

Attachments

g6ozs.png (4.0 kB)