I have an ALV with two rows. I want to delete these rows in internal table and dictionary table also. To get which rows in alv i chose, i use a method
go_selections = go_salv->get_selections( ).
go_rows = go_selections->get_selected_rows( )
Nextly, i am iterating through results LOOP AT go_rows INTO gv_row.
Inside above loop I have an another loop, which stores data from internal table into workarea. Then, i set the counter variable which holds the id of the dictionary table and delete respective row.
LOOP AT gr_data INTO lr_znewfdkey6.
counter2 = lr_znewfdkey6-id.
IF counter2 EQ gv_row.
DELETE FROM znew_fdkey01 WHERE id EQ lr_znewfdkey6-id.
MESSAGE 'Row deleted .' TYPE 'I'.
But unfortunately this works only when id of the dictionary table is equal to row number selected in alv. If I have lr_znewfdkey6-id
in dictionary table, equal to for example 5, get_selected_rows( ) returns value started by one etc., and this will cause inequality.
How to fix this?