Check Lists

The new Check List type controls are used for storing multiple options against an object.

For example, assigning multiple Sales People to a design, assigning multiple Custom Processes to a drawing layer or assigning multiple Impact users to a customer.

Data Storage

The new Check List type controls support two methods of data storage.

  1. Storing the data in a child table which contains three columns; the primary key, a key to the parent object and a key to the item parent object. In Impact this represents the simplest many-to-many relationship.
  2. Storing the data encoded into a string column. This is easier and quicker to set up but has some drawbacks (see below).

Child Table Storage

If the DBW table (the parent table) has one or more child table relationships defined then you can store the checked list values into one of those child tables.

The example below shows a TESTOPTL table that creates a many-to-many relationship between the TEST and TESTOPTS tables. This allows many TESTOPTS records to be linked to many TEST records.

One child table record will be created for each checked item.

The child table must have at most only two non-null columns defined; one for the link to the parent table and one for the link to the value record. No other non-null columns can exist in the child table.

When using a child table for storage the check list values must come from another table that is configured on the Data Source page (see Dynamic Values below).

Character Column Storage

Alternatively the checked values can be stored into a simple character field. Each checked value is stored separated by the specified delimiter character.

When users are interacting with the check list type controls the stored value is generated and if it exceeds the length of the character field the value cannot be saved.

When using dynamic values (see below) and a character storage field the values are checked when being loaded. If any values contain the storage delimiter character an error is generated and the value is not included in the check list type control.

One other disadvantage of using a character storage column is that you cannot easily change any existing values once you have stored some records.

Check List Values

When using a character field for storage you have the choice of using either a fixed set of values (much like a listbox control), or using dynamic values from another table (much like a dynamic lookup control).

When using a child table for storage your only choice is to use dynamic values.

Fixed Values

Specify the fixed value list choices as below, each choice separated by a vertical bar.

Dynamic Values

Dynamic values are loaded from another database table; each value that is loaded represents one item in the check list type control.

Dynamic values can be loaded from some internal tables (such as USERS), or from a custom table or from a remote table on a different connection.

By using a defined table relationship the data source has all the information it needs to determine the parent table, parent column and child storage column.

Alternatively when manually configuring the data source you must provide this information.

General Options

You can specify the minimum and maximum items that must be checked.

You cannot save the DBW if these requirements are not met.

Check List Type Controls

All three check list type controls are interchangeable in terms of the data they store. As long as you configure the same data storage and data source you can simply switch between any of the check list type controls if required.

Each just presents the options in a slightly different way.

Check Listbox

A drop down listbox control showing each option.

You can configure the text that will be displayed when nothing is checked on the options page.

Check Listview

A listview control containing each option.

You can configure the height of the list view on the options page.

You can configure the list view to display columns on the options page, in which case it scrolls horizontally rather than vertically.

 

Check Twin List

The twin list control showing two list views.

 

Items in the left hand list are considered unchecked, while items in the right hand list are considered checked.

You can configure the height of the twin list control as well as the left and right headings on the options page.

Internal and External Database Windows

The new check list type controls work in both internal and external Database Windows. Check list type controls are not supported in remote database windows. However a remote data source can be used to populate the check values.

Check list type controls that use a child table for data storage are not supported within a DBW that is being used to add/edit a Child Table ListView row. This is because you cannot actually define a two-level database table relationship to achieve this configuration.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.

You may like to read -