Domains
Introduction to domains​
Domains are abstract data types, used to indicate the data type of columns and parameters. Changing a domain will update all columns and parameters that use this domain. Depending on the database management system, user-defined data types or reference-fields are created for domains to be used in SQL business logic.
Create a domain​
menu Data > Domains
A domain always contains a Data type and possibly a length and precision.
Select the Control that should be used to visualize the columns and parameters in the user interface, for instance as a text field, an image or a checkbox.
Enter User interface settings.
- Alignment - Alignment in the grid (left, right, or center). The numerical alignment for the entire form can be set with the Extended property:
FormAlignmentOfNumbers
.
- Alignment - Alignment in the grid (left, right, or center). The numerical alignment for the entire form can be set with the Extended property:
A domain can optionally contain Elements to offer the user a pre-defined selection.
The Default value type can be a 'Constant value' or an 'Expression'. An expression can fill any new or changed column during the upgrade.
If necessary, enter the Default column settings. An example is the Mandatory field.
Overview of the Domains screen
Adding elements to a domain
Make columns created with a domain mandatory​
It is possible to make a domain mandatory. New columns created with this domain will be mandatory by default. This can be adjusted by column.
menu Data > Domains > tab Form
- Under Default column settings, check the Mandatory box.
Make a domain unavailable​
It is possible to mark a domain element as 'unavailable'. This way, it won't be shown in the drop-down, so it can't be selected for future entries. This setting doesn't affect older or historic entries. For these, the domain element is still available.
menu Data > Domains > tab Elements > tab Form > tab Element
- Uncheck the Available checkbox.
Show or hide the action button for read-only fields​
menu Data > Domains > tab Form
Some fields are always read-only, used only to show data. The Show action button option allows you to hide the action button for that domain. There are three options:
- Never: the action button is hidden.
- When editable: the action button is only displayed if the field is editable.
- Always: the button is always displayed.
Control with action button set to Always
Controls​
Using a control, you can specify how a column should be displayed in the user interface.
menu Data > Domains > tab Form > tab Domain
- In the Control field, select the domain.
The following options are available:
Control | Description | Platform | SQL | ORACLE | DB2 |
---|---|---|---|---|---|
BARCODE_SCANNER | Text input with a barcode scanner. | Universal, Mobile | VARCHAR | VARCHAR2 | VARCHAR |
CALCULATOR | Displays a calculator for carrying out a calculation. | Windows/Web | INT, NUMERIC | INT, NUMERIC | INT, NUMERIC |
CHECKBOX | Gives the possibility to check a checkmark. The value can be on, off or unknown. | All | BIT, TINYINT, SMALLINT | SMALLINT | SMALLINT |
CODE_ EDITOR | Internal use. | Windows/Web | |||
COLOR | Selecting a color. | Windows/Web | INT | INT | INT |
COMBO | Selecting a value from a list. | All | Depending on elements | Depending on elements | Depending on elements |
CORTEX_DECODER | Text input with a barcode scanner. | Universal, Mobile | VARCHAR | VARCHAR2 | VARCHAR |
CURRENCY | For compatibility, use NUMERIC. | All | NUMERIC | NUMERIC | NUMERIC |
DATE | Displays a calendar in which a date can be entered. | All | DATE, DATETIME | DATE, TIMESTAMP | DATE, TIMESTAMP |
DATETIME | Displays a calendar for selecting the date and a time format in hours, minutes and seconds. | All | DATETIME | TIMESTAMP | TIMESTAMP |
DATETIME_SHORT | Displays a calendar for selecting the date and a time format in hours and minutes (no seconds). | Universal | DATETIME | TIMESTAMP | TIMESTAMP |
Opening an email program with email address as send to. | All | VARCHAR | VARCHAR2 | VARCHAR | |
FILE_LINK | When entering or modifying a file, location can be selected. | All | VARCHAR | VARCHAR2 | VARCHAR |
FILE_UPLOAD | Uploading and downloading a file. The default value of the column is the standard file location for the Windows GUI. The File storage folder is used for the Web GUI if files are uploaded. | All | VARCHAR | VARCHAR2 | VARCHAR |
FOLDER | Selecting and opening a folder. | Windows/Web | VARCHAR | VARCHAR2 | VARCHAR |
GOOGLE_MAPS | Opening Google maps based on a location. | Windows/Web | VARCHAR | VARCHAR2 | VARCHAR |
GROUP HEADER LABEL | Creates a header label from your own data | All | VARCHAR | VARCHAR2 | VARCHAR |
GROUP HEADER ICON | Creates an icon in front of the group header label | All | VARCHAR | VARCHAR2 | VARCHAR |
HTML | Text is displayed as HTML. | Windows/Web | NVARCHAR | NVARCHAR2/NCLOB | VARGRAPHIC/DBCLOB |
IMAGE_COMBO | Selecting an image from a list. | Windows/Web | Depending on elements | Depending on elements | Depending on elements |
IMAGE_LINK | Selecting and displaying a photo. | All | VARCHAR | VARCHAR2 | VARCHAR |
IMAGE_UPLOAD | Uploading a photo. | All | VARCHAR | VARCHAR2 | VARCHAR |
LABEL | Creates a label without a field | All | VARCHAR | VARCHAR2 | VARCHAR |
MULTILINE | Editing a text with several lines, possibly via a separate pop-up screen. | All | VARCHAR | VARCHAR2 | VARCHAR |
NUMERIC | Displays numbers with a comma for thousands. | All | NUMERIC | NUMERIC | NUMERIC |
PASSWORD | The text is replaced by an asterisk. | All | VARCHAR | VARCHAR2 | VARCHAR |
PERCENTAGE | Displays numbers as a percentage. | All | INT or NUMERIC | INT or NUMERIC | INT or NUMERIC |
PHONE_NUMBER | Text with link to open a phone application | All | VARCHAR | VARCHAR2 | VARCHAR |
PROGRESS_BAR | Displays a bar with the progress (only in grids). | Windows/Web | INT | INT | INT |
RADIO_BUTTON | Displays a list with various options. | All | TINYINT | SMALLINT | SMALLINT |
REMOTE_FOLDER | Upload or download files with crud rights on the folder. | Windows/Web | VARCHAR | VARCHAR2 | VARCHAR |
REMOTE_FOLDER_SIMPLE | More secure version of REMOTE_FOLDER without delete or upload the whole folder. | Windows | VARCHAR | VARCHAR2 | VARCHAR |
RTF | Text is displayed as RTF. | All | NVARCHAR_MAX | NVARCHAR2 | VARCHAR |
SIGNATURE | Field to enter a signature. | Mobile | VARCHAR | VARCHAR2 | VARCHAR |
SQLEDITOR | Internal use. | Windows/Web | |||
TIME | Time format in hours, minutes and seconds. The time can possibly be selected with an up and down button. | All | TIME | TIMESTAMP | TIME |
TIME_SHORT | Time format in hours and minutes (no seconds). The time can possibly be selected with an up and down button. | Universal | TIME | TIMESTAMP | TIME |
URL | Opening URL in the active browser. | All | VARCHAR | VARCHAR2 | VARCHAR |
VIDEO_LINK | Shows a media player. | Windows | VARCHAR | VARCHAR2 | VARCHAR |
Timezone for DATETIME controls​
Universal GUIWhen you select a control for a domain that shows a DateTime value, you can select the Time zone:
- Show as stored - The time zone as stored in the database.
- Local - The user's current time zone as set in IAM. See Users in IAM's Manager's guide.
Time zone setting for domains
Domain elements for COMBO and RADIO BUTTON​
Domain elements have to be defined for the COMBO and RADIO BUTTON controls. The user can choose from these elements for a column with this domain. The element ID is used in the translation module to translate the elements. The database value is the value that is stored in the database (often numerically, but this is not mandatory). It is possible to setup in which order the domain elements should be sorted: the order number (default value) or the translation.
The domain gender has the elements unknown, man and woman with database values 0, 1 and 2. Instead of displaying this as text in a combo box, an icon of a man and woman can now be displayed in the combo box.
If you select the IMAGE_COMBO control, an image must be added to the elements. This replaces the text.
An example of using images in domain elements
PASSWORD control fields​
In a password control field, passwords are by default hidden from view. Users can toggle the 'visibility' icon to display the password in plain text or to hide the password from view.
Password control field with visibility icon in the Universal GUI
When a password field is non-editable or read-only, the 'visibility' icon is hidden, and the number of characters is set to 8 instead of revealing the password length.
If the password control is used, the field has not yet been encrypted. The value will therefore still be visible in the database when it is stored and can also be passed on to the defaults and layouts.
Progress bar in forms​
The PROGRESS BAR control displays a progress bar in grids. To display a progress bar in forms, use the FormProgressBar extended property.
Barcode scanner controls​
Universal GUI Mobile GUIThinkwise supports two barcode scanner controls. This topic provides information for both types of barcode controls.
- The Barcode scanner. This barcode scanner is an open-source third-party component. It is a free alternative to the more powerful, paid Cortex barcode scanner.
- The Cortex barcode scanner.
When using Google Chrome on iOS, both the regular and Cortex barcode scanners only work on iOS 14.3 and higher due to vendor limitations.
For both scanner controls, after scanning, a key code is sent to the application. Usually, this is the tab key, but this so called suffix can be configured for some barcode scanners.
As a result, the scanned value is sent to the database, and the cursor moves to the next field.
- To change the field where the cursor moves after scanning, apply a Default with a
cursor_to_col_id
parameter. - With the same Default, you can also process the scanned barcode into the database. This way, you can keep the task open and scan multiple items in a short time.
- In a situation or location where the internet connection may occasionally drop, and the task is marked as Offline executable, consider using the RepeatOfflineTasks extended property until the task is canceled.
- If the barcode field is not the last field in a task and you want to scan another item directly, consider Repeating a task after execution.
Barcode scanner​
This barcode scanner control is a regular text input with a barcode icon next to it. It can be used in two different ways:
- If you use an external hand-held barcode scanner that is connected to your device, the text input field is automatically filled after scanning.
- If you use your device to scan a barcode, it uses your device's camera to scan the barcode and extract the data. When a user clicks the barcode icon the first time, permission is asked to use the camera. If the camera permission has been given, scanning will start in a pop-up.
If you're using a hand-held scanner and scanning is the last step in a task, the task is submitted directly, if:
- The barcode scanner is configured to send Tab after the barcode (this is commonly called 'postfix').
- The hand-held scanner is connected to, e.g., a cell phone or a desktop.
- The focus is on the 'BARCODE_SCANNER' input field in a a task.
- The barcode field is the last visible field in a task.
Supported barcode symbologies​
The Barcode scanner supports the following barcode symbologies:
Supported | ||
---|---|---|
Aztec | DataBarExpanded | PDF417 |
Codabar | DataMatrix | QRCode |
Code39 | EAN-8 | UPC-A |
Code93 | EAN-13 | UPC-E |
Code128 | ITF | 1D-Codes |
DataBar | MaxiCode | 2D-Codes |
By default, the barcode scanner will try to find barcodes with all of the symbologies above.
If only a few symbologies need to be supported, the scan performance can be improved by letting the barcode scanner search for only specific symbologies. This
can be configured in the config.json
file in the Universal GUI folder. For example, when only UPC-E
and QRCode
are necessary, config.json
can be
configured like this:
{
"barcodeScannerSymbologies": "UPC-E, QRCode",
"defaultApplication": "",
"defaultPlatform": 3,
"loginOptionsDisabled": false,
"installNotificationDisabled": true,
"installNotificationExpirationInDays": 30,
"serviceUrl": "https://web10.thinkwise.app/ng_indicium/iam/iam"
}
Cortex barcode scanner​
Universal GUIThe Cortex barcode scanner is a more powerful alternative to the free to use barcode scanner.
To use the Cortex barcode scanner, you need a license from the manufacturer. For more information, see https://codecorp.com/products/web-sdk.
When using Google Chrome on iOS, both the regular and Cortex barcode scanners only work on iOS 14.3 and higher due to vendor limitations.
To use Cortex in the Universal GUI:
menu Data > Domains
- Configure CORTEX_DECODER as the domain control.
- In the Universal GUIs configuration file
config.json
, add the license like this:
"cortexLicense": "your-license-key-here",
To improve the scan performance, you can configure only the symbologies you need:
"cortexEnabledSymbologies": ["Code128", "EAN8", "EAN13", "UPCA"].
By default, Cortex scans the following symbologies:
Supported (default) | ||||
---|---|---|---|---|
Aztec | UPCA | UPCE | PDF417 | Interleaved2of5 |
Code93 | Code128 | Code39 | QR | EAN8 |
EAN13 | DataMatrix | DotCode | GS1Databar14 |
However, Cortex supports a lot more symbologies. This is the full list:
Supported (all) | ||||
---|---|---|---|---|
AustraliaPost | MSIPlessey | Code128 | Plessey | EAN8 |
CanadaPost | MicroPDF417 | Code49 | Straight2of5 | GridMatrix |
Code11 | Pharmacode | DataMatrix | UPCA | IATA2of5 |
Code39 | RoyalMail | EAN13 | USPSIntelligent | KoreaPost |
CompositeCode | Trioptic | GoCode | BC412 | Maxicode |
DutchPost | UPU | HongKong2of5 | CodablockF | PDF417 |
GS1Databar14 | USPSPostnet | JapanPost | Code32 | QR |
HanXinCode | Aztec | Matrix2of5 | Code93 | Telepen |
Interleaved2of5 | Codabar | NEC2of5 | DotCode | UPCE |
USPSPlanet |