I am wondering how to make a field readonly. I am looking for a rule for this purpose but I don’t see it. As you see in the image below we have the option to “Make field mandatory”.
Like this, how can I make a field readonly so the user cannot edit it?
Hi @MSP,
From my understanding, I think Read Only would imply that the field should not be editable by the user because, let’s say it’s a pre-populated field; whereas Mandatory would mean that the user MUST enter data into the field or rather it is a required field not to be skipped;
If you want it to be mandatory to fill all values for a data element in data entry if one or more values have been filled, select All fields for data elements required .
This means that if you enter one data value for a data element in an entry field (that is for a category option combination), then you must enter data for all fields belonging to that data element (that is all category option combinations).
Thanks for your reply and yes, your understanding is correct. But my requirement is to set a field as Readonly.
The data for this field will be populated through a db script and not using a program rule. So once populated, I want the user to view only, not allowing him to make any changes. Any idea how can I achieve this?
Hi @MSP,
I do work with web api. I was searching with same issue you faced but found no answer.
I have solved the issue by creating a Program Rule with action ‘Assign value’.
Just create a Program rule variable with the data element you need to make readonly.
Create Program rule and provide rule expression something always true (I have given 1 == 1).
Choose Program rule action as ‘Assign value’.
Set ‘Data element to assign to’ with your same data element.
Set ‘Expression to evaluate and assign’ with your created program rule variable.
I have tested it in 2.29 version in Event program. It also do the same in Tracker.