Dear Community: I need your help with this is...

(SmartD) #1

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.

(Suvrutt Gurjar) #2

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.

(Praveen Seshadri (AppSheet)) #3

@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

(Suvrutt Gurjar) #4

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.

(SmartD) #5

@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.