Skip to content

Table cell editing

Users can change many record values directly in table cells: in Data Explorer lists, in related tables on a record’s details page and drawer, and in related tables on Forms and Cards. Each change is saved as a normal record update with the same access checks, field rules, validation, automation and audit as a change made in the record form.

Cell editing is a setting of each Table Surface and is enabled by default, including for tables created before the setting existed.

  1. Open the Entity Definition, then Surfaces and the Table Surface.
  2. In the Behavior section, use Allow editing in cells.
  3. The change is saved automatically and applies the next time users load the table.

Turn it off for tables that should stay read-only lists, for example when every change must go through a form with explanations or attachments.

A cell can be edited when all of these are true:

  • the table allows cell editing;
  • the user may update that record, and the record’s current state allows it;
  • the user may write that field on that record;
  • the field is not read-only, not calculated, and its editability rule allows a change for this record.

Every field type can be edited, always with the same editor as in the record form:

  • Text, long text, whole and decimal numbers, money, Yes/No, choice lists (single and multiple), dates, times and date-and-time fields open a small editor at the cell.
  • Time zone fields open the time zone picker dialog directly.
  • Links to other records, users, roles, classifier categories, files, addresses and Markdown text open the record form showing only that field. It uses the same lookups, upload and checks as the full form.

Rules that make a field editable only when a record is updated apply to cells as they do to the edit form.

Nested tables and lists of related records are not table columns. Their rows are edited in the related table on the record’s details page or drawer, which supports cell editing too, and in the record form.

Automatic line numbers, related values shown through a reference, and the parent and sort fields of a Tree View stay read-only in cells.

In a table that allows cell editing, board and process columns offer their commands in the cell:

  • Clicking a board status (when the record is on the board) opens its menu. It lists the statuses the record can move to and moves it with the same checks as on the board; it also opens the board item. If the move is refused, a dialog explains why.
  • A process column shows the commands of the process card: start the process, or respond to the step waiting for the user.

Users who may not move the item or run the process see the commands disabled or receive the reason when they try. Turning cell editing off also removes these commands from the table.

  • Yes/No, choice lists, dates and time zones open with one click. A Yes/No change needs a second click on the checkbox, so a stray click never changes data; picking a single choice or a time zone saves it.
  • Text, numbers and money open with a double click, Enter, or by typing; the typed character replaces the value. Fields that open the record form do so with a double click or Enter.
  • The cell shows a progress indicator while saving. If the save fails, the cell shows the stored value again and a dialog names the record (its number, name and ID) and the field and shows the reason, for example the validation message of another field. It offers to retry when that can help and to open the record form; closing it drops the change.
  • A record must still be valid as a whole. If another required field of the record is empty, the change cannot be saved from the cell; open the form to complete the record.

The Table Surface configuration document has InlineEditingEnabled; an omitted value means true. Saving a configuration replaces the whole document, so a client that reads a configuration and writes it back must send the value it read.

Entity YAML writes InlineEditingEnabled: false in TableConfiguration only for tables where cell editing is off. Releases without this setting cannot import such a file.

Runtime table columns report Editable and Editor already resolved for the current user. Each runtime row lists, as WritableFieldIds, the fields the user can read and write on that row; the list is empty when the user cannot update the record, for example when it is archived. It does not include field rules or the record form’s editability decisions, so a save remains the final check.