cancel
Showing results for 
Search instead for 
Did you mean: 

How to save the selected records from Table control in dialog programming

Former Member
0 Kudos

Hiiiiiiii Every1

Actually the problem is like this:-

I have to select some records from table control and then want to save the selected records in DB table.

Example

I have some rows having inforamtion bout employees...

Now what i want is that when i click on 'SAVE' button then these selected rows should be moved into DB table.

Sachin Dhingra

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

see below example, I have added INSERT option after DELETE option.

REPORT demo_dynpro_tabcont_loop_at.

CONTROLS flights TYPE TABLEVIEW USING SCREEN 100.

DATA cols LIKE LINE OF flights-cols.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

DATA: itab TYPE TABLE OF demo_conn.

TABLES demo_conn.

SELECT * FROM spfli INTO TABLE itab.

LOOP AT flights-cols INTO cols WHERE index GT 2.

cols-screen-input = '0'.

MODIFY flights-cols FROM cols INDEX sy-tabix.

ENDLOOP.

CALL SCREEN 100.

MODULE status_0100 OUTPUT.

SET PF-STATUS 'SCREEN_100'.

ENDMODULE.

MODULE cancel INPUT.

LEAVE PROGRAM.

ENDMODULE.

MODULE read_table_control INPUT.

MODIFY itab FROM demo_conn INDEX flights-current_line.

ENDMODULE.

MODULE user_command_0100 INPUT.

save_ok = ok_code.

CLEAR ok_code.

CASE save_ok.

WHEN 'TOGGLE'.

LOOP AT flights-cols INTO cols WHERE index GT 2.

IF cols-screen-input = '0'.

cols-screen-input = '1'.

ELSEIF cols-screen-input = '1'.

cols-screen-input = '0'.

ENDIF.

MODIFY flights-cols FROM cols INDEX sy-tabix.

ENDLOOP.

WHEN 'SORT_UP'.

READ TABLE flights-cols INTO cols WITH KEY selected = 'X'.

IF sy-subrc = 0.

SORT itab STABLE BY (cols-screen-name+10) ASCENDING.

cols-selected = ' '.

MODIFY flights-cols FROM cols INDEX sy-tabix.

ENDIF.

WHEN 'SORT_DOWN'.

READ TABLE flights-cols INTO cols WITH KEY selected = 'X'.

IF sy-subrc = 0.

SORT itab STABLE BY (cols-screen-name+10) DESCENDING.

cols-selected = ' '.

MODIFY flights-cols FROM cols INDEX sy-tabix.

ENDIF.

WHEN 'DELETE'.

READ TABLE flights-cols INTO cols WITH KEY screen-input = '1'.

IF sy-subrc = 0.

LOOP AT itab INTO demo_conn WHERE mark = 'X'.

DELETE itab.

ENDLOOP.

ENDIF.

WHEN 'INSERT'.

READ TABLE flights-cols INTO cols WITH KEY screen-input = '1'.

IF sy-subrc = 0.

LOOP AT itab INTO demo_conn WHERE mark = 'X'.

itab1 = itab.

modify itab1.

ENDLOOP.

ENDIF.

if not itab1 is initial.

INSERT dbtab FROM TABLE itab1.

endif.

ENDCASE.

ENDMODULE.

Former Member
0 Kudos

Hi,

You can use the MODIFY or INSERT command to update the DB table from the internal table. ABAP F1 help on any of the above keywords should give you the correct syntax for the same.

Sudha

Former Member
0 Kudos

In the PAI where you are checking for okcode of 'SAVE', write the following code:

If the internal table name hich you used to populate table control is same as that of the table control field names which you defined in screen painter,

then LOOP at I_TAB where sel = 'X'.

Move all the I_TAB fields to the corresponding fields in Internal table which you will use to update db atble.

ENDLOOP.

Update db table with the records of new internal table created.

Cheers

sharmistha