05-15-2007 3:28 PM
Hi guys,
Please can you suggest me, how to come out this problem.
I have one Ztable around 10 fields, I was designed one screen using same fields, I want fetch each record from the Ztable and modify the record again update the same record to my Ztable.
Please suggest me how to do this one, if possible please send some similar coding, it will help me lot. Otherwise suggest some examples in the SDN.
Thanks
Gourisankar
05-16-2007 4:23 AM
Hi Gourishankar,
Can you have a look at the link below :
Thanks!
Anusha
05-16-2007 4:27 AM
See Program to update the custom table,i created one table control which has all the fields and also i designed find function..
&----
*& Module pool ZLWMI151_BAT2
*& Transaction: ZBAT2
*& Programmer: Seshu Maramreddy
*& Date : 05/17/2005
Transport : DV3K919574
*& Description: This program Will Displays the Batch Conversion
*& data in Display mode except Deletion Flag.
*& Batch conversion table (ZBATCH_CROSS_REF)
*&
*&
*&----
PROGRAM ZLWMI151_BAT2 .
INCLUDE ZLWMI151_BAT2_TOP.
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
case ok_code.
when 'ENT1'.
*perform modify_table.
MODIFY ZBATCH_CROSS_REF FROM TABLE T_ZBATCH .
select * from zbatch_cross_ref into corresponding fields of table
t_zbatch.
leave to screen 100.
when 'BACK'.
leave to screen 0.
when 'EXIT'.
leave to screen 0.
when 'CANC'.
leave to screen 0.
WHEN 'SAVE' or 'ENT1' or space.
perform modify_table.
MODIFY ZBATCH_CROSS_REF FROM TABLE T_ZBATCH .
*update
when 'EXCE'.
perform down_load.
WHEN '%SC'.
perform find_field using ok_code.
endcase.
clear ok_code.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module STATUS_0100 OUTPUT
&----
GUI Status
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '0100'.
DESCRIBE TABLE T_zbatch LINES G_LINE.
TC1-LINES = TC1-LINES + 18.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module modify_table INPUT
&----
text
----
MODULE modify_table INPUT.
MODIFY t_zbatch INDEX tc1-current_line.
IF sy-subrc <> 0.
INSERT t_zbatch INDEX tc1-current_line.
ENDIF.
ENDMODULE. " modify_table INPUT
&----
*& Form down_load
&----
Download the data int XLS File
----
FORM down_load.
CALL FUNCTION 'DOWNLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = 'DAT'
TABLES
DATA_TAB = t_zbatch
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
CUSTOMER_ERROR = 7
OTHERS = 8.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " down_load
&----
*& Module valid_flag INPUT
&----
text
----
MODULE valid_flag INPUT.
if not ( t_zbatch-flag = 'D' or t_zbatch-flag = '' ).
*CALL FUNCTION 'Z_POPUP_TO_DISPLAY_TEXT_CNSL'
EXPORTING
TITEL =
TEXTLINE1 = text-001.
TEXTLINE2 =
TEXTLINE3 =
TEXTLINE4 =
.
message e126(zz).
endif.
ENDMODULE. " valid_flag INPUT
&----
*& Module modify OUTPUT
&----
text
----
MODULE modify OUTPUT.
select * from zbatch_cross_ref into corresponding fields of table
t_zbatch.
sort t_zbatch by werks werks cmatnr srlno.
ENDMODULE. " modify OUTPUT
&----
*& Form modify_table
&----
text
----
--> p1 text
<-- p2 text
----
FORM modify_table.
*MODIFY t_zbatch INDEX tc1-current_line transporting flag.
*
IF sy-subrc <> 0.
INSERT t_zbatch INDEX tc1-current_line.
ENDIF.
ENDFORM. " modify_table
&----
*& Form find_field
&----
text
----
-->P_OK_CODE text
----
FORM find_field USING command.
data: position like sy-tabix.
data: found(1).
data: find_pos like sy-tabix,
loop_curr like sy-tabix.
select * from zbatch_cross_ref into table t_find.
sort t_find by werks cmatnr srlno.
if command = '%SC'. "Suchen
position = 1.
perform popup_get_value using 'FSTR' ''
changing rsdxx-findstr.
else. "FIWE "Suchen wiederholen
position = loop_first + 1.
if rsdxx-findstr = space.
perform popup_get_value using 'FSTR' ''
changing rsdxx-findstr.
endif.
endif.
if ok_code = 'ABR'.
clear ok_code.
leave screen.
else.
clear found.
loop at t_find from position.
if t_find cs rsdxx-findstr
or t_find cp rsdxx-findstr.
found = 'X'.
find_pos = sy-tabix.
exit.
endif.
endloop.
if found = 'X'.
loop_curr = 1.
tabpos = loop_first = find_pos.
if use_old is initial.
tc1-top_line = find_pos.
set cursor field tc1-top_line.
endif.
else.
message s042(e2) with rsdxx-findstr.
endif.
endif.
ENDFORM. " find_field
FORM POPUP_GET_VALUE USING FCT MODE
CHANGING VALUE.
DATA: ANSWER,
popup_title(35),
TITLE LIKE POPUP_TITLE,
FIELDS LIKE SVAL OCCURS 1 WITH HEADER LINE.
CASE FCT.
WHEN 'FIND'. "Suchen Feld
TITLE = TEXT-TFI.
FIELDS-TABNAME = 'RSEDD0'.
FIELDS-FIELDNAME = 'FIELDNAME'.
FIELDS-NOVALUEHLP = 'X'.
FIELDS-VALUE = VALUE.
APPEND FIELDS.
WHEN 'FSTR'. "Suchen String
TITLE = TEXT-TFS.
FIELDS-TABNAME = 'RSDXX'.
FIELDS-FIELDNAME = 'FINDSTR'.
FIELDS-NOVALUEHLP = 'X'.
FIELDS-VALUE = VALUE.
APPEND FIELDS.
WHEN 'ACCL'. "Aktivierungsart
TITLE = TEXT-TAC.
FIELDS-TABNAME = 'DD02D'.
FIELDS-FIELDNAME = 'AUTHCLASS'.
FIELDS-VALUE = VALUE.
IF MODE = 'S'.
FIELDS-FIELD_ATTR = '02'.
ENDIF.
APPEND FIELDS.
WHEN 'DELC'. "Auslieferungsklasse
TITLE = TEXT-TDC.
FIELDS-TABNAME = 'DD25D'.
FIELDS-FIELDNAME = 'CUSTOMAUTH'.
FIELDS-VALUE = VALUE.
IF MODE = 'S'.
FIELDS-FIELD_ATTR = '02'.
ENDIF.
APPEND FIELDS.
ENDCASE.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
POPUP_TITLE = TITLE
IMPORTING
RETURNCODE = ANSWER
TABLES
FIELDS = FIELDS
EXCEPTIONS
ERROR_IN_FIELDS = 1
OTHERS = 2.
IF SY-SUBRC = 0
AND ANSWER = SPACE.
VALUE = FIELDS-VALUE.
ENDIF.
ENDFORM.
Reward Points if it is useful
Thanks
Seshu
05-16-2007 5:53 AM
check the below two programs, names are in bold lettters
Table Control with LOOP - ENDLOOP - <b>demo_dynpro_tabcont_loop</b>
PBO.
flights-lines = fill. "DESCRIBE TABLE itab LINES fill.
LOOP WITH CONTROL FLIGHTS.
READ TABLE itab INTO demo_conn INDEX flights-current_line.
ENDLOOP.
PAI.
LOOP WITH CONTROL FLIGHTS.
lines = sy-loopc.
MODIFY itab FROM demo_conn INDEX flights-current_line.
ENDLOOP.
Table Control with LOOP AT ITAB - <b>demo_dynpro_tabcont_loop_at</b>
Table Control Modificatinos
PBO.
flights-lines = fill. "DESCRIBE TABLE itab LINES fill.
LOOP AT ITAB INTO DEMO_CONN WITH CONTROL FLIGHTS.
ENDLOOP.
PAI.
LOOP AT ITAB.
MODIFY itab FROM demo_conn INDEX flights-current_line.
ENDLOOP.
Hope this will solve ur problem..
<b><u>Dont forget to reward all the useful replies</u></b>
Sudheer
05-16-2007 5:01 AM
hi ,
please go thorugh the program below .....
REPORT demo_dynpro_tabcont_loop_at.
CONTROLS flights TYPE TABLEVIEW USING SCREEN 100.
DATA: cols LIKE LINE OF flights-cols,
lines TYPE i.
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 CORRESPONDING FIELDS OF 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'.
DESCRIBE TABLE itab LINES lines.
flights-lines = lines.
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.
ENDCASE.
ENDMODULE.
for further reference check the sample prog ..demo_dynpro_tabcont_loop.
reward if helpful !
Regards,
Ranjita
05-16-2007 5:12 AM
Hai,
Go through the module pool programming..it's pretty simple ,.,try this..
&----
*& Module pool ZM_DP *
*& *
&----
*& *
*& *
&----
PROGRAM ZM_DP .
data : ok_code type sy-ucomm,
STEXT LIKE ZMUTHU_DIALOG-HOSPITALID.
tables ZMUTHU_DIALOG.
data : wa_hpt like ZMUTHU_DIALOG,
HOSPITALID like ZMUTHU_DIALOG-HOSPITALID,
HOSPITALNAME like ZMUTHU_DIALOG-HOSPITALNAME,
CITY like ZMUTHU_DIALOG-CITY,
IT_HPT TYPE TABLE OF ZMUTHU_DIALOG.
&----
*& Module STATUS_0201 OUTPUT
&----
text
----
MODULE STATUS_0201 OUTPUT.
SET PF-STATUS 'PF000001'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0201 OUTPUT
&----
*& Module USER_COMMAND_0201 INPUT
&----
text
----
MODULE USER_COMMAND_0201 INPUT.
CODE FOR SAVE RECORD IN DB *****************
if ( ok_code = 'CREATE' ).
IF STEXT = SPACE.
wa_hpt-HOSPITALID = HOSPITALID.
wa_hpt-CITY = CITY.
wa_hpt-HOSPITALNAME = HOSPITALNAME.
insert ZMUTHU_DIALOG from wa_hpt.
MESSAGE I000(8I) WITH 'SAVED TO DATABASE'.
ELSE.
MESSAGE E000(8I) WITH 'PLZ CHOOSE MODIFY BECS THZ RECORD EXISTS'.
ENDIF.
endif.
CODE FOR RETURNING BACK TO PRGM *****************
IF OK_CODE = 'BACK'.
LEAVE PROGRAM.
ENDIF.
CODE FOR CLEARING THE TEXTBOXES ****************
IF OK_CODE = 'CLEAR'.
HOSPITALID = SPACE.
CITY = SPACE.
HOSPITALNAME = SPACE.
STEXT = SPACE.
ENDIF.
CODE FOR MODIFYING THE RECORD *****************
IF OK_CODE = 'MODIFY'.
wa_hpt-HOSPITALID = HOSPITALID.
wa_hpt-CITY = CITY.
wa_hpt-HOSPITALNAME = HOSPITALNAME.
MODIFY ZMUTHU_DIALOG FROM WA_HPT.
MESSAGE I000(8I) WITH 'MODIFIED IN DATABASE'.
ENDIF.
CODE FOR SEARCH AS PER THE ID *****************
IF OK_CODE = 'SEARCH'.
IF STEXT NE SPACE.
SELECT * FROM ZMUTHU_DIALOG INTO TABLE IT_HPT
WHERE HOSPITALID = STEXT.
LOOP AT IT_HPT INTO WA_HPT.
HOSPITALID = wa_hpt-HOSPITALID.
CITY = wa_hpt-CITY.
HOSPITALNAME = wa_hpt-HOSPITALNAME.
ENDLOOP.
ELSE.
MESSAGE W000(8I) WITH 'ENTER AN ID TO CHECK'.
ENDIF.
ENDIF.
ENDMODULE. " USER_COMMAND_0201 INPUT
Thanks & Regards,
Gpinathan.T
05-18-2007 10:36 AM
U need to <b><u>award points for all the useful replies</u></b>, and also u nees to <b><u>mark it as Answered if ur problem is solved</u></b>.
Regards
Sudheer