This control is frequently used for domains (*_TBD). When a form is created, every attribute with a relation to a domain receives a basic combo box. All entries in TB_RELATIONS are analyzed.
Basic combo box properties: A combo box always has a drop-down arrow that you use to select an entry. If the related feature has geometry, you can optionally set an FID Selection button to identify and assign the related object in the map and a Highlight button to highlight the related object in the map.
Property |
Description |
System Category |
|
ClassName |
ComboBox |
Name |
Name = attribute name, for example ID_STATUS |
Base |
|
AllowReference |
If True, the value can be entered by using a reference record. |
IsLocked |
True = cannot be edited |
IsMandatory |
True = must always be acquired. In edit mode these attributes are highlighted by a red background color. |
ValidationCode |
Defines a validation code for each input field. During validation, values from other attributes can also be queried. |
ValidationMessage |
Defines a message to display if validation fails. |
Specific Category |
|
AllowDoubleClick |
True = default = If you double-click, the form of the related table will appear. False = If you double-click, no table will appear. |
Detail |
All Detail entries belong together. They can be entered together in a separate dialog box that appears when you click any of the respective drop-down arrows. |
DetailIndustryModel |
The detail table may also reside in an industry model that is not the current industry model. |
DetailFieldName |
Detail attribute that is stored, for example, ID; usually the attribute is set according to TB_RELATIONS. |
DetailFilter |
Default filter = empty. Detail Listfilter: You can define which records of the detail table are available, for example, ACTIVE=1. Also, you can define an additional filter. |
DetailList |
Detail Listfiled: attribute to show in the form, for example, VALUE. For example, use ID || ' - ' || VALUE to show both ID and VALUE. For domains usually the ID is listed. It is reasonable to change this into VALUE, as this is more clarifying. |
DetailOrderBy |
Defines the sort order of entries in the detail table, for example, VALUE. |
DetailTable* |
The related table. For example *_TBD, which is usually the detail table that is set according to TB_RELATIONS. |
FidButton** |
True = an FID selection button is shown next to the input box. Use this only if the relation points to a geometry feature that can be identified in the map. |
HighlightButton |
True = shows a highlight button |
UseBuffer*** |
True = default; by default, all values of the specified detail table are loaded once in a session. If set to False, loads the detail table every time you open the combo box (by pressing the drop-down arrow button) or you change (update, or navigate to) the record. Note: A False setting negatively impacts performance. Always set this option to True if you work in Table View mode, because in this case records are changed frequently in order to show all records. |
ValueDefault |
Specifies a default value to insert when you add a new record. You can also use this for the AutoIncrement value or date/time and to create GUIDs. |
* DetailTable: The preview pane shows the detail list. Click refresh to check whether your definition has the desired results.
** FID button: The Fid Selection button is used to assign the related object by clicking in the drawing. It is visible even if the attribute is locked. That means that the drop down list will not open, and the user will always need to use the button to select the feature in the map. He cannot select one from the list. In this special case, locked means that the user cannot enter any values using the keyboard.
Combo box detail table settings: Normally you would change the Detail Listattribute or Detail Sort Order only, because the Detail Table and Detail Attribute values are read from TB_RELATIONS.
*** UseBuffer: Normally, you set the UseBuffer property to True for best performance. In the case of real domain tables (*_TBD), the entries do not change much, so they are not loaded every time you change the record. It may be necessary to set the UseBuffer property to False, for example, if the related table is not a real domain, but an ordinary feature table, whose contents frequently change.
Multi-relations, which are relations to several tables, can be set in the data model administrator. If a multi-relation is defined, you can select those tables from the Detail Table dropdown list as well. In this case, you will see an entry in the dropdown list in {} as the first item.
If you have a complex expression instead of a simple attribute, you can use multi-relations, which means that you can have a list of FIDs from several defined feature classes. For example: 'FID: ' || FID || ', NR: ' || NR
To get this working, the expression in the property box has to look like this: 'FID: ' || FID || ', NR: ' || NR, NR. Note, that you should list all attribute names used in the expression after the expression and separated by commas. The attribute name FID is an exception and should not to be listed.