Properties of fields: Enumeration values

On the Enumeration values tab, which is present when you have selected a new or existing data dictionary field in a database and set the Type of this field to Enumerative field on the Field properties tab, you set up the drop-down list that makes up an enumerative field. In a running application a user must choose a value from this drop-down list for an entry field associated with this data dictionary field; a different value cannot be entered.

Click here for information on how to edit properties in general. On the current tab you'll find the following settings:

Enumeration source

First choose the type of list you want to offer the user: a Fixed list or a List from a record (a dynamic list). A Fixed list is filled only with preset values that you provide on this tab, while a List from a record typically will be filled with values from a field in the current record in a running application, a field that you specify for List from a record.
A more advanced use of a dynamic list is also possible: with the Copy lists from linked record functionality you are able to display all occurrences of some source field from a linked record, in a drop-down list for a destination field in the primary database, dependent on the value in an associated linked field. (For this use, the Field for dynamic lists must be left empty.)

Sort enumeration values

Normally in a drop-down list, the order of the list of values is presented as they have been entered underneath Enumeration values on the current tab. But if such a list is long, it may serve users better if it is sorted alphabetically. To not have to do this sorting manually, you can choose a Sort enumeration values type: Ascending or Descending. You can enter the list of values in a random order; in the running application these values will then be automatically sorted alphabetically (ascending or descending) when the relevant drop-down list is opened.

Field for dynamic lists

If you chose List from a record as the Enumeration source of the enumerative list and you want to use values from the current record, then here you specify the source tag or field name from which the drop-down list in the running application must retrieve its values when the user opens the entry field associated with this data dictionary field. The source field can only be a local field (from the current record).
This means that the list will be different for each record, and may sometimes only contain one value or even none at all.
Note that of merged-in fields you only have the first occurrence, so you cannot retrieve all occurrences of a linked field this way.

You can retrieve all occurrences of a merged-in field though, via the Copy lists from linked record functionality. (For this use, the Field for dynamic lists must be left empty.) An example of this advanced functionality is when you have one database that holds records for cinemas. In some repeated field in each of those records you have registered the theatres available in that cinema. These records can be linked to records of movies in a movie database. In each movie record you have a linked field (to the cinema database) in which you can enter the name of a cinema or retrieve it through the Find data for field window. For the linked field you must have defined a Linked field mapping to copy all occurrences of the field that holds the theatres in the currently selected cinema to a destination field in your movie record. In the movie database you must have specified a field as a dynamic enumerative list (Enumeration source: List from a record) which retrieves its values from said destination field through the Copy lists from linked record linked field mapping. Thus, as soon as you select a cinema in a movie record, and click the enumerated field, a drop-down list shows all theatres in that cinema.

Value

If you chose Fixed list as the Enumeration source of the enumerative list, then in this column you enter the names of the enumerative values (aka neutral, language independent values). Only these names will be saved in the database, not the user-friendly language values. The user will never see the neutral values, so they may be an abbreviation and always in English for instance. You can use upper or lower-case and spaces, if you wish.

New enumerative list items can be inserted anywhere in the list, from the right-click pop-up menu: the new row will be inserted right above the currently selected row.

Individual value rows can be assigned role based or record type* based access rights, via the Enumeration properties editor (see the Language value option below), so that the contents of the drop-down list presented to users may vary depending on the user role or record type of the currently displayed record.

Language value

If you chose Fixed list as the Enumeration source of the enumerative list, then here you provide all user base required translations of text values per neutral value for the field as users will see them. The interface language (not the data language) in which the Collections application is running, determines which translation of an enumerative value is displayed in the field/drop-down list.

Individual value rows can be assigned role based or record type* based access rights, so that the contents of the drop-down list presented to users may vary depending on the user role or record type of the currently displayed record. Click a translation in the Language value column to open the Enumeration properties editor window for that particular value row to edit all required translations at once and/or to edit both types of access rights.
So to offer users a different subset of all the enumerative values specified for the current field, based on the record type of the currently edited record, specify record type access rights per enumeration value on the Record type access tab. Preferably choose between None (to hide an enumerative value) and Full (to show an enumerative value). You can make different settings per enumeration value.

* You must have already set up a record type field for the current database, to make this work: for more information see the Record type field topic in the 7.3 release notes.

Per enumeration value you may set both Access rights based on user roles as well as Record type access rights. Using only one of both or both at the same time, has the following consequences:

If for a particular enumeration value no access rights have been specified for a specific record type or $REST, then for this record type the normal role access rights mechanism will be applied, which will only show the value in the list if the role of the current user has access rights to the value.
If record type access rights other than None have been specified for a particular enumeration value for the record type currently opened by the user, then the value in the list is shown if the user has enough access rights based on his role.
If instead the record type access rights have been set to None or if the user role access rights are None, then the value will be hidden.

The record type access rights functionality is available from Designer 7.4 and Axiell Collections 1.0.