2009 Jun 05 6:31 AM
Hi
I have an table control displayed on module pool screen, and an Internal table which holds table control's
data.
When a person changes anything in table control, after pressing Save button only
the "CHANGED/EDITED FIELDS" should get updated in my Z table.
Which will ensure good performance (i.e system doesn't have to overwrite UNCHANGED FIELDS as well
in Z table)
How can I achive this ? Please provide sample code.
Regards
Tulip
Hi
I have an table control displayed on module pool screen, and an Internal table which holds table control's
data.
When a person changes anything in table control, after pressing Save button only
the "CHANGED/EDITED FIELDS" should get updated in my Z table.
Which will ensure good performance (i.e system doesn't have to overwrite UNCHANGED FIELDS as well
in Z table)
How can I achive this ? Please provide sample code.
Regards
Tulip
2009 Jun 05 6:34 AM
i think you cannot write the updation of the Ztable fields in a single row for only some fields,you have to write for updating the whole row.
For an internal table you can write by using TRANSPORTING..
2009 Jun 05 6:41 AM
Hi Tulip,
By default bring all the Data's in the table control in display mode,
have a button called EDIT in PF-status whenever you wants to change anything , cselect the rows and click edit button and after editing the by pressing save button you can update to the DB table,
check below code,
&----
*& Module DISABLE_ENABLE_FIELDS_100 OUTPUT
&----
To enable and diable fields n Edit click
----
MODULE disable_enable_fields_100 OUTPUT.
DATA : v_line_sel TYPE i,
v_dummy,
v_line_no(6) VALUE 'LINENO'.
CHECK ok_code = 'EDIT'.
*GET CURSOR FIELD V_LINE_NO LINE v_line_sel.
IF x_assignment-lineno = 'X'.
LOOP AT SCREEN .
IF screen-name = 'X_ASSIGNMENT-EMPLOYEE_ID' OR
screen-name = 'X_ASSIGNMENT-ACTIVITY' OR
screen-name = 'X_ASSIGNMENT-MATERIAL' OR
screen-name = 'X_ASSIGNMENT-ADATE'.
screen-input = 1.
MODIFY SCREEN.
CLEAR x_assignment-lineno .
MODIFY t_assignment FROM x_assignment INDEX tablecontrol-current_line TRANSPORTING lineno.
CLEAR v_line_sel.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
2009 Jun 05 6:43 AM
Hi,
You can check out the link:
Refer the sample code:
LOOP AT itab INTO demo_conn WHERE mark = 'X'.
insert into table from itab.
ENDLOOP.
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.
Hope it helps
Sumana
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |