Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Module pool

Former Member
0 Kudos

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

6 REPLIES 6

0 Kudos

Hi Gourishankar,

Can you have a look at the link below :

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/2165e990-0201-0010-5cbb-b5c2ad43...

Thanks!

Anusha

Former Member
0 Kudos

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

0 Kudos

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

former_member196299
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

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