ABAP ALV - удалить определенную строку

Я хочу удалить определенную строку в таблице. Я идентифицировал строку перед использованием get_selected_rows. Теперь у меня есть строка, указанная в "gt_rows".

Теперь я хочу удалить эту строку. Я просто не могу это сделать. Вот мой текущий код:

        go_selec = go_alv->get_selections( ).   "gt_rows
    CALL METHOD go_selec->get_selected_rows
      RECEIVING
        value = gt_rows.
      *Here the row should get deleted.

Имя таблицы базы данных - «zrtable», имя внутренней таблицы - it_table. Имя структуры - ls_table. Я новичок, поэтому немного кода было бы здорово. :)


person KevinMueller    schedule 08.02.2018    source источник
comment
Возможный дубликат ABAP - ALV удалить выбранную строку   -  person József Szikszai    schedule 08.02.2018


Ответы (1)


Таблица gt_rows содержит данные индекса выбранных строк.

Теперь вам нужно зацикливаться на своей индексной таблице, чтобы прочитать эти строки.

LOOP AT gt_rows ASSIGNING FIELD-SYMBOL(<index>).
  READ TABLE it_table ASSIGNING FIELD-SYMBOL(<table_line>) INDEX <index>. 
  IF <table_line> IS ASSIGNED.
    CLEAR <table_line>.
  ENDIF.
ENDLOOP.

Также вместо READ TABLE вы можете использовать,

DATA(line) = it_table[ index ].

Считайте символы полей указателями, вы напрямую обращаетесь к данным, используя их, поэтому они указывают на ссылку, а не на значение.

person Gurkan Yilmaz    schedule 20.02.2018