Selection lists are one of Cyrious' most useful features. Combined with Parts lists, it is possible to create and easily maintain complex lists of selectable items and their prices from one location - The Parts Categories. This page covers generally how to combine lists and parts

We want to create a drop down list which is populated with selectable items – e.g. a list of acrylic sheets – and to draw the price from the ListPriceValue of the list. We want to create the list from a Parts list and to draw the list price value from the cost entered for the part.

The various options, formulas, and code for using parts prices and accessing those in pricing formulas are plentiful. While not complex, the interaction of the many variables required to get it correct can seem complex; so patience and testing is important in implementing pricing formulas with parts. If your system is already using parts and their formulas, be very careful that you do not alter existing consumption formulas or units that might be employed in other ways in your datasets. The example below is not the one to use if you are calculating job cost or maintaining inventory through the pricing forms, although it will provide familiarization with how the Parts and list formulas can be used to do that.

  1. Create a Parts Category or sub-category called Clear Acrylic. Enter each acrylic part in the “folder”. Since the name of the part will be what shows in your Selection List, be sure to name it descriptively. We use a name such as 1/8th in Clear Acrylic_4x8. We include the the sheet size because for many substrates, there are several alternatives which the salesperson picks based on the job– e.g. 4×10 or 5×10. Be sure you have enabled Cost Tracking and selected an Expense Account.
  2. On the Consumption tab, set the Unit Type to Each and the Basic Stocking Unit to Sheet. Next, click on the Advanced Tab. You will see a line in the box showing the specifications for the sheet unit. Click on the button labelled New Item. This will bring up a form where your first selection is Unit Type. For this example, select Area since we are going to create a formula to return the price per square foot, IN the next field, you will see a selection called “Units”. From the drop-down, select “Square Foot”. The final box asks the formula to calculate the cost of“ one equals this many sheet” (because you have selected square foot) square foot. Since this part is a 4×8 sheet, the formula is 1/(4*8). When entering additional parts, be sure that this formula corresponds to the square feet of the part you are adding or your formulas will not be correct. Finally, you enter the Consumption formula in the box to the right. In most cases for area pricing this would be Quantity * Area in SqFeet. You can open the formula box to be sure it say K at the bottom showing that you have no errors in your formula or click on the little checkmark to the right of the formula boxes and it will tell you if your formulas have errors.
  3. On the Accounting tab be sure you have selected the correct Expense Account.
  4. On the cost tab, enter the cost of the “Fixed Cost” of the sheet. To keep things simple be sure that the radio button “Use the Default Multiplier of “1” is checked. For more elegant solutions you can set this to a number larger than one if, for example, you wanted to put a spoilage factor or a multiplier for shipping costs using this feature,
  5. If your formulas require data about the height, width, and/or thickness of the sheet, you would need to create Part UDFs for these characteristics and enter them when you create the part. You would them access them in your pricing formulas the way you do ListPropertyValues except your formula would use one of the UDF access formulas such as PartUDFByVariableName(variable,”part udf“). We have lists where we use both ListPropertyValues and PartUDFs; so for this we have created an “intermediate” variable such as SubstrateThickness where we use a formula which tests if a part is assigned and if so uses the UDF access formula else the ListPropertyValue access formula.
  6. Create a Selection List called ClearAcrylic. at this point you have two options for how to bring your parts list into the Selection List. The easiest and one we strongly encourage uses Cyrious' Dynamic Parts List feature. With this feature, Cyrious will import all the parts in your Parts Category into your selection list automatically. If you add an additional acrylic sheet it will automatically show up in your selection list. You do not need to maintain two lists. To use this feature, in the selection list where it says Insert Row, click on the small downarrow icon. This will open a list where you will see the choice of “Add Dynamic Part Category”. Click on that. You will then be presented with a browser where you select the Category where your parts list is – in this case Clear Acrylic.
  7. Selecting the Dynamic Part Category will result in some additional columns appearing in your selection list. The first is Part. You leave that alone. The next is consumption. Since we want to return the cost of one square foot, you would enter a 1 there. The next column is “Consumption Unit”. Since you want the cost of a square foot, you would select that from your drop down list. Your final step is to create a Default formula to return the cost. Enter your formula in the top formula (the default line) of the Price F(x) column. There are a number of formulas you could use. We access the Part cost through the variable to which the selection list is attached – for this example, SubstrateThickness. This helps assure that the cost returned is only for the part selected from the Acrylic list. The following formula will return the Part's cost. Note the use of the ISASSIGNED() function which we have found very helpful in avoiding errors resulting from the Part not being assigned when a formula calls for its price or other characteristics.

IF ISASSIGNED(PartByVariableName("SubstrateThickness")) Then PartByVariableName("SubstrateThickness").EstimatedCost Else 0 ENDIF.

If you have done everything correctly, when you select the list in your pricing form, you will see a list of each of the acrylic sheets in your Parts list and your ListPriceValue function will return the square foot price of each regardless of the sheet size.

If for some reason you do not want to use the Dynamic Part Category feature, you can achieve the same thing by attaching individual parts to each row in your list. Under Insert Column you would select Add Part Link. This results in additional columns being added for the Part Name, the Consumption Unit, the Consumption Formula, the Part Description, etc. You clcik on the part column in the row where you want to add the part, select the part from the drop down list of parts, and then complete the entires for the unit and consumption formula exactly as above. You can then create a default formula in the List Price Default F(X) or add a formula to each line item.

Note that whether you use the Dynamic Part Category or bring parts in individually, you can combine them with manually entered list items and manually entered prices in the Price F(x) field. We have permitted that where sales personnel are creating an estimate and do not have the ability to enter new parts but need to create a temporary line item to price a job.

Contributor: Steve Gillispie, Acorn Sign Graphics)

Date: 3/6/2011

Version 04.50.1102.0401

See Also

You could leave a comment if you were logged in.