How to Make a Field Editable Only During Edit Mode and Not When Creating a Record in AppSheet?

Hi everyone,

I’m building an app in AppSheet and need the Category field to behave as follows:

  1. When creating a new record: The Category field should automatically be set to the default value "Billable" and should not be editable during the creation process.

  2. When editing an existing record: The Category field should be editable, allowing users to change its value.

I’ve tried several formulas in the Editable? field, such as ISNOTBLANK([_THISROW_BEFORE]), CONTEXT("ViewType"), and configurations with CONTEXT("View"), but none have successfully distinguished between creating a new record and editing an existing one. Since both processes occur in a "Form" view, it has been challenging to differentiate between them.

Has anyone encountered a similar issue or knows a solution to make the field editable only during edit mode and not when creating a record?

Thanks so much for any suggestions or solutions!

 
Solved Solved
0 1 233
1 ACCEPTED SOLUTION

Please try below,

A) In the editable_if setting of  the [Catgeory] field , please add an expression something like

IN([Key_Column], Table_Name[Key_Column])

B) In the "Initial Value" setting of the [Category] column, please add  "Billable"

Basically, with the editable_if  expression above, we check if the record has been saved to the table ( meaning it is not a new record). If the expression returns FALSE, it means it is a new record being added through form and not yet saved to the backend table, so disallow edits.

For reference , please take a look at the following series of very useful tips by @Steve 

Re: FAQ: FILTER(), LOOKUP(), MAXROW(), MINROW(), R... - Page 2 - Google Cloud Community

 

View solution in original post

1 REPLY 1

Please try below,

A) In the editable_if setting of  the [Catgeory] field , please add an expression something like

IN([Key_Column], Table_Name[Key_Column])

B) In the "Initial Value" setting of the [Category] column, please add  "Billable"

Basically, with the editable_if  expression above, we check if the record has been saved to the table ( meaning it is not a new record). If the expression returns FALSE, it means it is a new record being added through form and not yet saved to the backend table, so disallow edits.

For reference , please take a look at the following series of very useful tips by @Steve 

Re: FAQ: FILTER(), LOOKUP(), MAXROW(), MINROW(), R... - Page 2 - Google Cloud Community

 

Top Labels in this Space