I have several item type properties are a calculated value (found using an expression), but I want the ability for the user to define the value manually as well. Currently I do this using 4 item type properties:
"Quantity (Calculated)" - this uses an expression to get the quantity based on the element.
"Override Calculated Quantity" - True/False item type property that is set to False by Default. The user changes it to True if they want to define a quantity that's different from what the expression in number 1 is calculating.
"Quantity (User Defined)" - Number item type property that the user places manually.
"Quantity" - this item type uses a conditional "iff" expression and reports either the value in number 1 or number 3 based on the value of number 2.
I then use number 4 if I need to use the quantity for another calculation or if the Quantity is put into a report.
This strategy works, but I think this could be consolidated with some additional functionality. I think it would be better if there were a way to use a True/False item type like number 2 to determine if another item type is read only and uses a pre-determined expression. Then, my workflow would only need 2 item types. I could eliminate 1 and 3, have the expression from number 1 in number 4, and use number 2 as a toggle to determine if number 4 uses the expression to find it's value or allows the user to manually define it's value.