Values for column properties normally apply to all the rows in the column. For example, if you set the Protect property to “1” for the Emp_Id column, the user will be unable to modify Emp_Id for any of the rows. If you query the property value for this column at runtime, it will return “1”.
Instead of a constant, you can assign a conditional expression to some column properties. Such properties are set on a row-by-row basis at runtime.
For example, you might wish to allow users to enter an employee id for new rows but protect this value for existing rows. The conditional expression for this column’s Protect property would be:
If(IsRowNew(), 0, 1)
When you query the Protect property at runtime, the result in this case would be the actual expression (preceded by a default value and a tab character and enclosed in quotes) instead of the property value. The value for the Protect property would be:
"0 <tab> If(IsRowNew(), 0, 1)"