Skip to Content
0
Former Member
Sep 09, 2007 at 05:26 AM

Internal table modification in ABAP object event

38 Views

Hi Gurus

I have an internal table displayed using ALV - OOPS concept. THe internal table has 15 rows in my test program but it can go up depending on user inpout.

I am able to display it . on the screen . One of the fields is editable . It is required that it take input from user and on pressing enter , the value entered in that cell should be subtracted from a total amout displayed in the cell next to it.

I have used the following code . There are no errors , but nothing happens when I edit it. The screen remains as it is.

Any help will be very useful

DATA : ITAB type ITABT occurs 0.

DATA : itab_w like line of itab.

CLASS LCL_EVENTS_D0100 IMPLEMENTATION.

METHOD handle_data_changed.

DATA: ls_good TYPE lvc_s_modi.

DATA : L_PLANETYPE TYPE ITABT-SEL_QUANT.

LOOP AT er_data_changed->mt_good_cells INTO ls_good.

CASE ls_good-fieldname.

  • check if column PLANETYPE of this row was changed

WHEN 'SEL_QUANT'.

CALL METHOD pr_data_changed->get_cell_value

EXPORTING

i_row_id = ls_good-row_id

i_fieldname = ls_good-fieldname

IMPORTING

e_value = l_planetype.

ENDCASE.

LOOP AT ITAB INTO ITAB_W .

read table itab into itab_w WITH KEY FINDEX = LS_GOOD-ROW_ID .

itab_w-f_balquant = itab_w-f_balquant - l_planetype.

modify itab FROM itab_w .

endloop.

ENDLOOP.

ENDMETHOD.

ENDCLASS.