Control is designed to handle many different types of complexity in products. This often occurs in the form of options from which the User can select. When the options represent different answers to the same question (like “What color do you want to use?”), you will often want to give the User a list of values from which to choose.

In Control, this list is referred to as a selection list. You might have a color list, or a list of pizza toppings, or a list of services you can perform. A selection list item is an individual item in the list, like pepperoni. A selection list may contain an unlimited number of items.

In addition to its name, each selection list item may know other information about itself. It may have a price or cost assigned to it and it may link to parts and other lists. You can even create selection list properties to store your own information about each item.

Intelligently using selection lists allows the program to respond appropriately to each selection a User makes. When applied correctly, it can also provide a platform for adding new options to products on the fly during order entry, if that is desired.

Selection List Properties

To the degree possible, selection lists, or more precisely the selection list items, should hold as much information as possible about the item being selected. This is accomplished using custom properties of the list.

For example, if we had a selection list of printing paper, we might add the following custom properties to the list:

Paper Cost Per 100 Sheets Fold Thickness Without Cutting
Paper Size Name (A4, A1, Custom) Preferred Supplier
Paper Type (Bond, Cardstock) Sheet Height
Paper Weight (20#, 80#) Sheet Thickness
Paper Color Sheet Width

The idea is to put all of the information related to a selection in the list with the value. Since variables can access this information, you can always access these list properties with a variable formulas like:
|| PaperColor ? ListPropertyText(Paper, “Paper Color”);
SheetSize ? ListPropertyValue(Paper, “Sheet Height in Inches”)
+ “by” +
ListPropertyValue(Paper, “Sheet Width in Inches”) || This makes the process of adding or changing paper types very easy – you only have to add a new value to the selection list. Adding values to the selection list can be done from within an order further simplifying this process.
Selection List Screen
|| Main Menu | Setup | Pricing Setup | Selection Lists | New List || All of the information about a selection list and corresponding list items is entered from the one selection list screen.

Figure 6 1 Selection List Screen
Basic Selection List Entry
|| Name || Enter a name for the selection list. The name will be used to identify this list in different parts of pricing setup, so enter something meaningful. ||

Category Select the category to organize this selection list under.
Format Select Text or Number from the list to identify whether the text for each list item should be interpreted as a number or as text. The format changes how sorting is handled, but does not affect the use of the selection list in any other way.

Selection List Item Entry
|| Price Lookup || Use this field to designate how you want Cyrious to determine the price for this product on estimates, i.e. is there a specific formula for the price, or does it need to be input by the User? ||

Price F(x) If you have designated that a formula should be used in the Price Lookup column, enter the formula in this field.
Cost Lookup Use this field to designate how you want Cyrious to determine the price for this product in accounting.
Cost F(x) If you have designated that a formula should be used in the Cost Lookup column, enter the formula in this field.

Basic List Item Actions
|| Insert || Click this button to insert another row into the selection list. ||

Remove Click this button to delete the currently selected row from the selection list.
Move Up Click this button to move the currently selected row in the selection list above the preceding row.
Move Down Click this button to move the currently selected row in the selection list below the preceding row.
Text Sort Click this button to sort all of the rows based on their text values. How numbers are sorted is affected by value of the Format field.
Insert Other Click on this to insert a new column into the selection list. The column may be a Dependent List Link, a Part Link, a Property, a Filter, or a list of Parts. Refer to the following section for a full description of these special columns.
Insert Other | Parts Click Insert Other and choose Insert Parts to get a list of Part Categories. Once selected, a row for each part in that Part Category will be inserted. These rows will be linked to the Part in the default Part Link.
Remove Other Click inside of a cell and click Remove Other to delete a special column from the selection list item.
Rename Click inside of a cell and click Rename to rename a special column.

Working With Special Columns
Selection lists are used to provide the operator with a list of options from which to choose.
Much of the power of selection lists in Control comes from the ability to associate additional information and logic with these selection list choices.

Figure 6 2 Working with Special Selection List Columns
You can add special columns that link to other (dependent) selection lists, add parts to the order whenever an item is selected, or contain other information (properties) about this list item.
Adding Dependent List Links
|| Insert Other | Add Dependent List Link || Select this to add a new Dependent List. You will then be prompted for a name for the list (column). Enter a name that explains the purpose of the dependent list. This will help you identify the correct dependent list to use should you have several in the same selection list. ||

\\   \\ //Figure 6 3 Special Dependent List Link Columns// \\ Two columns are added for each new dependent list link.   \\ || **List** Column || Enter or select the linked dependent list for this list item. ||

|| Default Column || Enter to select the default value for whenever that row is chosen. Leave this blank if you don't want to set a default value or want to set the default value in the product setup. ||

\\ **ADDING PART LINKS** \\ **Insert Other | Add Part Link	**Select this to add a new Part Link.   \\ The first Part link will be called Part, the second will be called Part 2, etc. \\   \\ //Figure 6 4 Special Part-Link Columns// \\ Six columns are added for each new part link.   \\ || **Part **Column || Enter or select the linked part for this list item. ||

|| Default Column || Check the box in this column to indicate the part that should be used is the part specified in the default row for the selection list. ||

Consumption F(x) Enter the consumption formula for this part. You may use any variables or functions available to the product in this formula. As will all consumption formulas, the value of the formula must be converted to the default units for the part. If the consumption formula is left blank, it will default to consumption formula specified in the default row.
Use Parent Default F(x) Check this box if you want to use the consumption formula in the variable and not enter a consumption formula in the list. This is sometimes used when a selection list is shared among different types of products and each product needs a unique way to calculate consumption. Checking this box essentially moves the consumption formula to the setup of the product's variable.
Part Description Enter or select the description shown in the parts list when this part is included. As a given part (like production labor or ink) may be used several times in the production process, it is often helpful to explain the usage in this description field (like “Cutting Time” or “Layout Time”).
Use Parent Description Check this box if you want to use the part description in the variable and not enter in the list. This is usually applicable for the same reasons and times when you will check the Use Parent Default F(x) box.

|| Insert Other | Add Property || Select this to add a new List Property. You will then be prompted for a name for the property. Enter a name that explains the purpose of the property and the units measured in (if applicable). This will help you identify the correct property and know what unit conversions might be needed. ||

\\ //Figure 6 5 Special Dependent List Link Columns// \\ Two columns are added for each new property.   \\ || **Property Column** || Enter the value of the property for this list item. ||

|| Default Column || Enter to select the default value for whenever that row is chosen. Leave this blank if you don't want to set a default value or want to set the default value in the product setup. || Detail (Sub) View
The detail subview is useful for editing list items with several properties, dependent lists, or part links. Rather than work with the columns, the subview displays all of the chosen special columns in their own table.

Figure 6 6 Special Selection List Subdetail
You may choose to view the Dependent List Links, Part Links, or Properties in the subview. To open or close the subview, click on the “hot spot” on the resize bar at the bottom of the Selection List setup window.

Working With Special Rows
Every selection lists has two special rows, called (default) and (blank). These rows have a special purpose for selection lists and, when properly configured, give Control a flexibility to handle situations not previously encountered or considered.

Figure 6 7 Special Selection List Rows
The (Default) Row
The (default) row can be thought of as both the “most common” and the “fall-back” position. Often, all or many of the choices in a selection list will share common traits.
The part they use might be the same, the consumption formulas might be identical, custom property values are the same, etc. In these cases, simply put the desired value in the (default) row and check the appropriate “Default” checkbox.
When the default values are common, adding new list items are made much faster through the proper use of default values.
The second use of the (default) row is as a fall-back mechanism. If a variable's “Limit to List” option is not selected, the operator is free to type in their own value and not choose one of the list items.
In these cases, what parts should be linked? What should the values of custom properties be? What dependent lists should be linked? The answer, as you have undoubtedly guessed, is the values specified by the (default) row.
|| || If you don't want this fall-back provision, then make sure the “Limit to List” option is selected. This will force an operator to add a new row and make those values explicit in order to choose a value not already in the selection list. ||

\\ The (Blank) Row \\ The **(blank)** row is used when the operator has not entered a value into the selection list (and there is no default value).  In these cases, the parts, properties, and dependent list links used will be those entered into the **(blank)** row. \\ ||   || If you don't want this fall-back provision for blank rows, then make sure the "Answer Required" option is selected in the variable.  This will force an operator to fill in a value before saving the order or estimate. ||

Effective Use
Effective use of selection lists is often the difference between an intuitive, easy to use pricing system that only provides Users with valid choices, and an ugly, tech-oriented system useful only by trained experts. Selection lists are the keys to giving Users choices in terms that they understand, and then encoding those responses with useful data.
Dependent Lists
In Control, you can vary the selection list used for a variable based on the answer given in another list. The varying list is dependent on the source list. These dependencies are a power feature in Control that allows you to narrow the possible choices based on earlier answers.
For example, suppose you have two large format printers, each with the features listed below.
|| Printer || Printer A || Printer B ||

Paper Types Supported Bond Matte
Bond Gloss
Bond Matte
Resolutions 180 dpi
360 dpi
360 dpi
720 dpi

Figure 6 8 Example of Dependant Source Lists
If you provide all paper types and all resolutions to the User, there is a good chance that she will select an invalid combination of printer, paper type, and resolution.
If, on the other hand, you structure Paper Type list as dependent on the Printer and the Resolution list as dependent on the Printer you can vary the choices given to the User dynamically.
The lists you need to achieve this would be:
* Printer A Paper Types
* Printer A Resolutions
* Printer B Paper Types
* Printer B Resolutions
* Printers
A tree diagram showing the dependencies would look something like this:

Figure 6 9 Example Dependencies Diagram
While it takes a little more work (five lists instead of three), the result is a system that prevents the User from entering invalid data, which is usually more than worth the additional effort.
To set up selection lists, the dependent list variable in the product is configured to get the value of its list from another list variable known as the autonomous list variable. Setting up a dependent list is done in product setup on the variables tab.
Selection List Part Links
Another important concept to remember is that whenever your selection list corresponds to a selection of parts, you should link these directly from the selection list.
For example, you may have a selection of pizza toppings that correspond directly to the parts for those toppings.
The best way to set this up is to link the part for each item directly to the selection list item.
By doing this, selecting the item automatically includes the corresponding part.

For example:
|| List Item || Part || Consumption Formula ||

Pepperoni Topping, Pepperoni Quantity * Area * 0.25 each per SqInch
Hamburger Topping, Hamburger Quantity * Area * 0.15 pounds per SqInch
Anchovies Topping, Anchovies Quantity * Area * 0.15 each per SqInch
Canadian Bacon Topping, Ham Quantity * Area * 0.10 pounds per SqInch
Ham Topping, Ham Quantity * Area * 0.10 pounds per SqInch

Figure 6 10 Example Selection Lists

Note that you can link more than one part to a selection list item, so in this example you could link not only the topping but the additional labor to add the topping as well.

Setting the parts links up in the selection list is desirable for several reasons:

  1. Ease of entry. Linking parts to the product requires the use of an inclusion formula to determine which part to use.

By linking a part to its corresponding list item, selecting the list item becomes the only inclusion formula you need.

  1. Maintainability. It is easier to correctly add, remove, and edit items in the selection list. When you add a new list item, you will need to add a new part.

You will instead have to search for all occasions when you use the list and make changes.

  1. Reusability. You will often have numerous products that use the same selection lists. Each time you use the list, the links to the parts are already established, so nothing else needs to be done for these parts.
  2. Speed. If you have hundreds of parts to choose from, linking the parts to the products requires that hundreds of inclusion formula be evaluated just to determine which parts are used.

For extreme numbers of parts, this can result in a delay of a few seconds each time a variable is changed during order entry.

Linking the parts directly to the list item allows Control to bypass

these inclusion formula calculations and link the part directly.

Linking the part to the list item will require you to create additional lists. In general, however, the benefit of linking the part to the list item directly outweighs the time it takes to create the additional lists.

The following example may help clarify why this is so.

Assume one of your products is Copies from a digital copier.

Customers may select from three sizes (8.5 x 11“, 8.5 x 17”, and 11 x 14“) and three colors (white, bright white, and yellow).

A natural first thought would be to create two selection lists: one for paper sizes, and one for paper colors.

If you did this, however, you would find that there was no way to link the selection lists to the paper inventory (parts).


Quite simply, there are nine types of paper (three colors x three size) but only three choices in either list.

Therefore, there is not way to create a one-to-one correspondence between list item and parts.

The solution to this dilemma is to create separate lists for each color or size of paper . For example, we can create one list for size containing three values, and link each of those values to a dependent color list. In this case, we then have four lists, constituting:

  • 11 x 17 Paper Colors
  • 8.5 x 11 Paper Colors
  • 8.5 x 17 Paper Colors
  • Paper Sizes

By making the latter lists dependent on the first, we now have nine list items possible for paper color, and each one can be linked to its corresponding part.

See Also

You could leave a comment if you were logged in.