Editing Options

For foreign keys, and other fields shown using the Compact Join feature, the dropdown list that appears during editing can be constrained to show only specific, relevant options.

For example, a dropdown list picking entries from a Cities table may be constrained to show only cities from the country that is selected first in an adjacent Country field:

A dropdown list being used to pick a City specific to a Country selected in another field, using the Dropdown Constraint feature.

This kind of behavior is also known as a “dependent drop-down” or “dynamic drop-down”.

To constrain a data editing dropdown, right-click its column, and click Format/Options. Then, for the Dropdown Constraint option, enter your desired logical condition.

The Dropdown Constraints setting in context, showing how the example in the previous figure was configured.

In the example above, the Country and City fields contain IDs that have been joined against other tables. The fields in those tables can be seen in the Fields sidebar. The formula [ISO3] = [CountryISO3] is used to match the country from the Country field with the country looked up via the City field. (The example dataset is available here.)

Any conditional formula may be used as a dropdown constraint, with the restriction that references outside the subquery of the edited field must yield a single value relative to each dropdown-edited cell. When the dropdown list is opened, the latter kind of reference will substitute the value currently displayed on the screen, incorporating any pending data edit.

You can combine multiple conditions using the and/or operators. Continuing the previous example, the formula [ISO3] = [CountryISO3] and [Population] > 1000000 adds the requirement that only cities with a population of at least one million are included.

The constraint formula is automatically checked for certain errors. If there are problems, such as illegal references, or errors at query execution time, a message will be shown.

If a field name to be referenced exists in multiple data tables, you can disambiguate the reference by naming the table (or technically, the subquery) first followed by a backslash, e.g. [Cities\ID]. Or you can rename fields in Ultorg to make them unique within the perspective.

The Dropdown Constraint setting is specific to the field in your current perspective. You can create different dropdown conditions depending on the needs of your current data entry task.

Read-only and “Last Modified” Fields

Using the Edit Table Defaults feature, you can configure individual table columns as read-only or as fields that should be auto-filled with timestamp or username values during data editing. These settings are accessed via the “Edit Behavior on Insert” and “Edit Behavior on Modify” properties in the Format popup.

The Edit Behavior settings being modified in the Edit Table Defaults mode. The example table shows fields such as 'Created By', 'Modified By', 'Created On', and 'Modified On', which can each be configured to behave according to their name.

Modified edit behaviors are immediately honored by all perspectives, new and existing. They can not be overridden by individual perspectives. If you attempt to edit a value in a field that has been configured as read-only or auto-generated, an error message will be shown:

The tooltip that appears if the user attempts to edit a cell that has been configured to be auto-filled by Ultorg.

The options above affect the Ultorg user interface on the current computer only. You can use the Export Perspectives feature to share perspectives and data source settings, including table-level editing options, with other users.

Note that users can always change these options. If you need a real, enforced access control mechanism, this should be configured on the underlying database server (PostgreSQL, Microsoft SQL Server etc.). Feel free to contact us if you would like help with this.

Editing in Form Layouts

Data editing works from any of the visual layouts produced by Ultorg's automatic layout engine. For example, you can open a form layout with Open Details, and make edits there:

A form layout, opened with the Open Details action, with some pending edits.

For most of the other editing examples we have used a regular nested table layout.