cancel
Showing results for 
Search instead for 
Did you mean: 

how to make field non-editable (display mode)

Former Member
0 Kudos

Hi Experts,

In IC-WEB Client when we click on Complaints transaction we will get four views.The left side top most view is overview screen

where we will fill status,reason code e.t.c for creating a complaint.Similarly in the last view i.e right most down SLA dates we will

have date fields like Notification Receipt, Actual start date e.t.c .

Now my requirement is to restict the user not to fill Notification receipt when he selects the Status as completed.So how can i

make first date type ' Notification Receipt ' (the view is present right side down SLA Dates) in diplay mode when user selects the

status as 'Completed' (the view is present on left side topmost).Could any body guide me how can i achieve this.

Thanks in advance,

Pavan.

Edited by: Pavan T on Nov 20, 2009 8:58 AM

Accepted Solutions (0)

Answers (3)

Answers (3)

former_member1055365
Participant
0 Kudos

Hi Pavant,

after implemention of steps which are described by Prasenjit and Nicolas you can redefine the I-GETTER of our attribute. the I-Getter defines the inputreadyness of a ui element and is located in your contextnode.

Inside the I-Getter method GET_I_<my_attribute> you can return while runtime

rv_disabled = 'TRUE'. " disable input = read-only

or

rv_disabled = 'FALSE'. " user can edit field

best wishes,

Hakan

Former Member
0 Kudos

Hi All,

I am really thankfull to all of you for responding and providing me various solutions.I included some code in DO_PREPARE_OUTPUT

to get the date field disabled when status is selected as 'Completed'.

lr_adminh->get_property_as_value( exporting iv_attr_name = 'OBJECT_ID'

importing ev_result = lv_ticket_no ).

if lv_ticket_no is not initial.

read table gt_dates_group into ls_dates_group with key name_event = 'SRV_START'.

if sy-subrc = 0.

ls_dates_group-read_only = 'X'.

modify gt_dates_group from ls_dates_group index sy-tabix.

endif.

Regards,

Pavan.

Edited by: Pavan T on Nov 23, 2009 9:44 AM

prasenjit_sharma
Active Contributor
0 Kudos

Hi,

1. You can go to BSP_WD_CMPWB transaction.

2. Enter the name of your compoennt.

3. Enhance it. and go to the relevent view and enhance it.

4. Go to the configuration tab. And create/copy a configuration.

5. Locate the field in your configuration.

6. Go to change mode.

7. select the field and Alt-click on the field.

8. Set the field to read-only.

Regards

Prasenjit

nicolas_busson
Active Contributor
0 Kudos

Hi Prasenjit,

Not sure your point 3 is really necessary: why would you enhance a component and a view to create a new configuration?

Nevertheless, creating a new config is also a good idea if the field is never to be filled in manually. Or we could also recommend to create two different config (one with the field read-only, and one with the field ready for input), and choose between the correct config to load depending on the status in method DO_CONFIG_DETERMINATION.

... SAP is providing so many ways to fit this requirement...

Regards,

Nicolas Busson.

former_member202474
Contributor
0 Kudos

Hi Pavan,

Based on the status , if you want to make the view disabled, then just remove the edit button for taht view if you have it.

If you want to disable a particular field then make rv_disabled as true in get_i method of that field. If the view is a form view then you can disable it in configuration itself.

Hope this helps.

Regards,

Ruby.

nicolas_busson
Active Contributor
0 Kudos

Hello,

Here is one other technique: if this date is never to be filled in manually by end users, then just flag it as read-only in customizing:

SPRO >> CRM >> Basic functions >> Date Management >> Define date profile.

Regards,

Nicolas Busson.