A choice field provides several predefined options to choose from. Only one option can be selected.
In SimpleOne interface, choice fields are displayed as drop-down lists, as in the example below:
Configure a choice-type column for a table.
Learn what sources can define a set of options for a particular choice field.
Configure choice options for a particular field via the new choice form.
Overriding of choice options set for child table
Change choice options for an inherited choice field in a child table.
You can provide a set of options for a choice field with localization, which will be displayed in user locale.
This field can contain all kinds of symbols. If the string length is not set, then it is limited to 80 symbols.
To create a choice column, please complete the following steps:
You can also open the form this way:
Please note that in this case, you will need to fill in the Table field manually. |
Field | Mandatory | Description | |
---|---|---|---|
Table | Y | Specify the table name that will be a parent for this column. This field is a reference to the Tables dictionary (sys_db_table). | |
Column Type | Y | Specify a column type: Choice. | |
Title | Y | A column title displayed on the form. It is preferred to be sensible and human-readable. Latin, Cyrillic, [0..9] numbers, and the underscore symbol ( _ ) are allowed. | |
Column Name | Y | A system column name. It is preferred to be human-readable and keep the kind of stored data. Latin letters, [0..9] numbers, and the underscore symbol ( _ ) are allowed. | |
Comments | N | Write a comment with the additional information. | |
Active | N | Select this checkbox, and customizing of this field displayed on the form and list will be possible. If unselected, then such a field will be not available for choosing in Form Layout or List layout. | |
Read Only | N | Select this checkbox to make the field read-only. | |
Mandatory | N | Select this checkbox to make the field mandatory (appropriate Choice columns with Choice Type = Dropdown with -- None --). | |
Full Text Search | N | Set this attribute equal to TRUE to make it possible to perform a Global Search against the current column. | |
Display by Ref | N | When a record references to another record and the table or column containing this record has the attribute Display by Ref equal to TRUE, then the column value will be displayed. If a table contains a field that has Display by Ref = TRUE, the value of this field will be displayed when referencing this table in the Reference field of the referencing table. | |
Unique | N | When turned on, no way to add a record with a value of this field, if a record with the same value already exists. | |
Type Specification tab | |||
Choice Table | N | Reference to a table. | |
Choice Type | Y | Define whether the option "None" is applicable for the field. Available options:
If the Dropdown without --None-- is chosen, the Dafault value tab becomes mandatory. | |
Choice Field | Y | Reference to a particular column of the table specified in the Choice Table field. | |
Default Value tab | |||
Default Value | N | The value of a choice option to be populated authomatically by default. Check the value of a field in Choice Options dictionary (sys_choice). The field is mandatory if the Choice Type is Dropdown without --None-- (must specify a default value). | |
Use Dynamic Default | N | Check this box to display the Dynamic Default field. | |
Dynamic Default | N | Select the script from the Dynamic Default Values (sys_default_value_dynamic) dictionary, so its execution result will be automatically calculated and entered into this field. This value will be the default value for the column specified. This field appears only when the Use Dynamic Default attribute is set to TRUE.
|
There are three ways to define a set of choices for the drop-down lists:
In the second case, you may need to create a different set of choices if the column is inherited and has predefined options. See Overriding of choice options set for child table to learn more.
In the third case, the available options are taken from a particular column of a source table. In the example below, the choice table Role contains a column Name and some records where Name is not empty. The choice options will be values of the Name column in this table.
Before creating a set of options for a particular table and column, please make sure that this column is already created (navigate to System Definition → All Columns). |
To create a choice option for a column table, please perform the following steps:
You can also open the form this way:
Please note that in this case, you will need to fill in the Table and Column fields manually. |
Field | Mandatory | Description |
---|---|---|
Table | Y | Specify the table to which this choice option is related. Select the same table for the translated version as for the original one. |
Column | Y | Specify the column to which this choice option is related. Select the same column for the translated version as for the original one. |
Title | Y | Type the translation of the source field there. |
Language | Y | Specify the two-symbol name of the language (ru, en, and so on). Generally, references to languages are stored in the Languages (sys_language) table. |
Value | Y | Type the same value as specified for the source field. |
Order | Y | Enter the number to define the option order in the choice list. |
Hint | N | Text hint. This field is not mandatory. |
An easier way to quickly create several options for the same column is to use Insert and Stay:
You can also use this way to create a translation for the choice options. After saving the record, enter the translation in the Title field and specify the language in the Language field. Then click Insert and Stay. A copy of the current choice option for the specified language will be created and saved. Please note that the Value field has to remain unchanged. |
Override allows changing choice options set for the child tables extended from the base table. For example, the parent table has the following options for a choice column State: New, Rejected, Processed. An overriding can change the quantity of these options or the options themselves in the child table. For example, for the State new set can be Draft, New, Assigned, Completed, Rejected.
When creating a choice field, it is recommended to set text values in the Value field to increase code readability. For example, it can be incoming, or active, or failed values for Incoming, Active, and Failed choice options.
Regarding task states, it makes sense to make values numerical; this can help with selection construction (see the code sample below).
task.addQuery('state', '>', '2'); // all states after In Progress |
To create a new options set, please perform the following steps:
You also can find the form this way:
Please note that in this case, you will need to fill in the Task and Column fields manually. |
To learn how to change the column attributes, please see the Column Overriding article.
To localize a choice list, please complete the steps below:
An easier way to quickly localize a set of options for the same column is to use Insert and Stay.
Please note that the Value field has to remain unchanged. |
If some of the choice options were not localized (for example, some added choice options in English but didn't add their translations), then in user locale other than English, choice lists containing untranslated options will display them in English by default, regardless of the current user locale. To avoid this, please be careful when adding options to your choice lists. |