Dear Community: I need your help with this issue: I need a field that does not allow editing once a data is selected or written and the record has been recorded. I have tried placing the formula: ISBLANK ([NameColumn]) in the “Editable_If” option, but it blocks the field immediately, before it records and what I need is to block or not allow editing after it has been recorded. Any idea? Thanks in advance.
Hi @SmartD, One way could be to add a column in the said table. The column is
called say [TrackChange] of DateTime type with spreadsheet formula of Now()
or even with a spreadsheet formula something like say CONCATENATE([Key Column cell],“A”)
You may hide this column.
Now if you wish to block say column
[Column A], after record is saved, then please enter the formula ISBLANK[TrackChange] in the editable_if constraint of [Column A]
The user will not be able to change the column [Column A] once the record is saved.
@Suvrutt_Gurjar that is a pretty obscure way of doing it.
The way @SmartD is trying to do it feels like it should work.
The column is editable if its value is blank.
I tried an app with the Editable_If expression ISBLANK([_THIS]) It works exactly as expected. I also tried to replace [_THIS] with [TheActualColumnName] and it worked fine too
Hi @praveen, Thank you for your guidance.
ISNOTBLANK([_THIS]) is indeed a straightforward way.
I somehow gave emphasize to @SmartD’s statement that "what I need is to block or not allow editing after it has been recorded. " I took record for entire record save.
Testing showed that
with ISBLANK([_THIS]) in Editable_if condition, as soon as the user
comes out of that field after data entry , he may not be able to change it before saving the form.
I thought the user may need to edit, revisit
an entry while he is still in edit mode.
As a workaround for this need, I
suggested a spreadsheet based validation approach so that the user may edit the fields till the time he is in the form before saving.
I will request your guidance.
@Suvrutt_Gurjar Thanks a lot for your answer. With your answer you gave me the way to the final solution. Finally I created two additional fields: [ColumnNow] and [ColumnNºEditions]. The app formula for [ColumnNow] is NOW () and the data type of [ColumnNºEditions] is ChangeCounter and inside it has [ColumnNow] as a ChangeCounter. Then, in the objective field in Editable_If I have written [ColumnNºEditions]=0. Note: in my case, by performance I prefer to use minimally spreadsheet formulas. @praveen
thanks for answer.