Application Development and Automation 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: 
Read only

problem in screen painter

Former Member
0 Likes
1,526

hello,

i have a db table zproject_details.. it has 4 fields, proj_no(pri key), proj_name, orij_name, proj_type..

i have created 2 screens, in the 1st screen i enter the proj_no and press the 'NEXT' button to

call 2nd screen.

on the 2nd screen, there are 3 drop down list boxes in which proj_name, orij_name and proj_type

are retrieved(from zproject_details) and displayed...

if i change value of any of the field in screen 2, i have to update that record in the zproject_details

too.. so when any record is changed, i modify it in an internal table thus i can change more than

one record, and when i press 'SAVE' button, all changed records are modified in zproject_details.

this is what i have done,

module STATUS_0002 output. " ouyput of screen 2

  • SET PF-STATUS 'xxxxxxxx'.

  • SET TITLEBAR 'xxx'.

data : update1(2) value '0',

update2(2) value '0',

update3(2) value '0',

flag100(2) value '0'.

TYPES : begin of itab,

proj_no type zproject_details-proj_no,

proj_name type zproject_details-proj_name,

orig_name type zproject_details-orig_name,

proj_type type zproject_details-proj_type,

end of itab.

DATA : itab TYPE standard TABLE OF itab initial size 100

with header line,

wa type itab.

select single * from zproject_details

where proj_no = PROJ_NO.

if update1 ne 1.

move zproject_details-proj_name to ZPROJ_NAME-PROJ_NAME.

endif.

if update2 ne 2.

move zproject_details-ORIG_NAME to ZORIJ_NAME-ZORIG_NAME.

endif.

if update3 ne 3.

move zproject_details-proj_type to ZORIJ_TYPE-PROJ_TYPE.

endif.

endmodule. " STATUS_0002 OUTPUT

&----


*& Module USER_COMMAND_0002 INPUT

&----


  • text

----


module USER_COMMAND_0002 input.

data : PROJ_NAME(35) type c,

ORIG_NAME(35) type c,

PROJ_TYPE(35) type c.

if flag100 = 0.

select single * from zproject_details into itab

where proj_no = proj_no .

flag100 = 1.

endif.

case OK_CODE.

when 'PNAME'. " function code of drop down list with values proj_name

itab-proj_name = zproj_name-PROJ_NAME.

modify table itab.

if zdemo-proj_name ne itab-proj_name.

update1 = 1.

endif.

when 'ONAME'. " function code of drop down list with values orij_name

itab-orig_name = zorij_name-zorig_name.

modify table itab .

if zdemo-orig_name ne itab-proj_name.

update2 = 2.

endif.

when 'PTYPE'. " function code of drop down list with values proj_type

itab-proj_type = zorij_type-proj_type.

modify table itab .

if zdemo-proj_type ne zorij_type-proj_type.

update3 = 3.

endif.

when 'SCREEN1'.

clear : zproj_name, zorij_name, zorij_type.

leave to screen 0001.

when 'SAVE'.

modify zproject_details from table itab .

if zdproject_details-proj_name = itab-proj_name.

message i000.

else .

message i001.

endif.

endcase.

endmodule. " USER_COMMAND_0002 INPUT

when i keep debugger on change values on screen and press 'SAVE', my itab has the modified

changed values but they are not updated in zproject_details at last..

eg: if i change the proj_name on screen

after the if stmt - if zdproject_details-proj_name = itab-proj_name.

the itab has the modified value of proj_name but change has not occured in zproject_details...

i dont understand what is wrong, i even used 'update zproject_details from table itab'...

plz help me out,

thank you...

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,493

hello Naveen,

im sorry, the stmt got copied wrong, the correct stmt is, it is not zdzproject_details and the structure

is correct, i checked it, not difficult to track, its only a 4 field table

when 'SAVE'.

modify zproject_details from table itab .

if zproject_details-proj_name = itab-proj_name.

message i000.

else .

message i001.

endif.

thank you

Edited by: aarti mane on Feb 13, 2009 8:17 AM

18 REPLIES 18
Read only

Former Member
0 Likes
1,493

you are modifying the internel table .... not in z table ....

please modify statement for z table .. then its work ..

Read only

Former Member
0 Likes
1,493

plz chk the code proprely, when i press a push button 'SAVE' i modify the zproject_details table also,

when 'SAVE'.

modify zproject_details from table itab .

if zdzproject_details-proj_name = itab-proj_name.

message i000.

else .

message i001.

endif.

Edited by: aarti mane on Feb 13, 2009 7:47 AM

Edited by: aarti mane on Feb 13, 2009 7:47 AM

Read only

0 Likes
1,493

Hi,

r u sure that itab has same structure as zdzproject_details?

if not then it wont modify, plz check it.

Regrds,

Naveen

Read only

0 Likes
1,493

please check that the declaration of the internaal table..... if that declaration is not equal records are not inserted ..

Read only

Former Member
0 Likes
1,493

Hi aarti

Cad you try using the update command ?

Use this.

LOOP AT t_breakdown1.

UPDATE znel_breakdown FROM TABLE t_breakdown1.

ENDLOOP.

Read only

Former Member
0 Likes
1,493

im sorry, it got copied wrong, the correct stmt is,

when 'SAVE'.

modify zproject_details from table itab .

if zproject_details-proj_name = itab-proj_name.

message i000.

else .

message i001.

endif.

Read only

Former Member
0 Likes
1,493

Hi,

Check Sy-subrc value after Modify statement. whether it is updating the table properly.

Read only

Former Member
0 Likes
1,493

i tried loop endloop, when i debugged, cmpiler wont even go inside the loop, from the loop stmt, it directly jumps to end loop....

thank you

Read only

Former Member
0 Likes
1,493

hi Selva,

i did sy-subrc, it shows the message i000.

modify zproject_details from table itab.

if sy-subrc = 0.

message i000.

else .

message i001.

endif.

Read only

0 Likes
1,493

Hello

can yu reply for this?

r u sure that itab has same structure as zdzproject_details?

if not then it wont modify, plz check it.

Regrds,

Naveen

Read only

Former Member
0 Likes
1,494

hello Naveen,

im sorry, the stmt got copied wrong, the correct stmt is, it is not zdzproject_details and the structure

is correct, i checked it, not difficult to track, its only a 4 field table

when 'SAVE'.

modify zproject_details from table itab .

if zproject_details-proj_name = itab-proj_name.

message i000.

else .

message i001.

endif.

thank you

Edited by: aarti mane on Feb 13, 2009 8:17 AM

Read only

0 Likes
1,493

Hi,

modify zproject_details from table itab .

this will definetly work if zproject_details structure and Itab structure is SAME.

Regrds,

Naveen

Read only

0 Likes
1,493

Hi

Did you try wid update ?

Read only

Former Member
0 Likes
1,493

hi Matrina,

i did try with update..

i tried

loop at itab.

update zproject_details from table itab.

endloop.

then i debugged, cmpiler wont even go inside the loop, from the loop stmt, it directly jumps to end loop....

i e1 tried without loop endloop... the values dont change, in debugger after the UPDATE stmt, the itab has the modified values, but zproject_details is not updated..

thank you

thank you

Read only

0 Likes
1,493

Hey

Then there is somethg wring wid the itab

It won go into the loop only if itab is initial ....

Jjus check once and send your whole code once

Read only

0 Likes
1,493

Aarti,

In the PAi of screen 2 you have to append values to the itab from the screen fields ...before

Module USER_COMMAND_0002 INPUT.

loop at the itab .append the screen fields to the fields of itab.append itab .endloop.

then use the modify or update to update it .

then only it ll go inside the loop of itab,.without loop if u modify it won change.

Even if one record is there it'll go insidee loop .

for e.g

this is PAI of my screen

PROCESS AFTER INPUT.

FIELD T_BREAKDOWN1-ENTRY_DATE.

FIELD T_BREAKDOWN1-PLANT.

FIELD T_BREAKDOWN1-SHIFT. (3 fields in screen)

loop at t_breakdown1.

CHAIN.

FIELD T_BREAKDOWN1-REASON.

FIELD T_BREAKDOWN1-MINS.

FIELD T_BREAKDOWN1-PICK MODULE CHECK.

ENDCHAIN.

MODULE MODIFY_TAB_9002.

(inside this i write:

t_breakdown1-entry_date = l_date.

t_breakdown1-plant = l_plant.

t_breakdown1-shift = l_shift.

t_breakdown1-reason = t_breakdown1-reason.

t_breakdown1-mins = t_breakdown1-mins.

t_breakdown1-pick = t_breakdown1-pick.

APPEND t_breakdown1.

)

endloop.

MODULE USER_COMMAND_9002.

here i give if sy-ucomm =save

Read only

Former Member
0 Likes
1,493

hi naveen,

i checked, its only a 4 field table... actually my original project is bigger but im new to screen painter

and wanted to get concepts clear... so i did this demo screen to know how data is modified in database table from the screen, i created a database table 'zproject_details' with 4 fields proj_no(pri key), proj_name, orij_name, proj_type...

check the declaration of itab...

what is going wrong??

thank you...

Read only

Former Member
0 Likes
1,493

hi,

itab does not go in loop probebly bcoz derz only one record in it... i have sent the code related to

screen 2, right from data declaration to the updation of the table... is the select single stmt wrong???