One of the more common requests we get when building custom applications is the addition of a progressive value list. A progressive value list is something you may see more often than you realize—like when you’re entering an address into your car’s GPS system. Have you ever wondered how it’s able to limit the names of streets based on the house number or the state you’ve entered?
Now, let’s break down this concept a little more…
In order to display the correct set of options for the previous selection, we’ll need to utilize the option for value lists labeled “Include only related values starting from”. This allows us to set what the first table occurrence evaluates. Simply put, it allows us to dictate whether something is considered related and, thus, will show up in our progressive value list. In our file, we named this the Dinner table occurrence.
Next, we create two table occurrences for selection purposes, ProteinSelect and PreparationSelect and relate them to the Dinner table occurrence. From there, we select the category that will produce the available options in the next dropdown, which, in our sample, is the ProteinSelect. Selecting the category sets that field with the ID for the category, which allows the display of only those proteins who have the same value in their ID_Category field to show up. The same goes for our methods of preparation. When we select the protein, we set the ID into the field, which will display only those preparations with the same value in their ID_Protein field as our selection.
Finally, in order to ensure the user follows the correct order for selections, we need to set “hide conditions” on our fields so that the proceeding field only becomes available for entry after a selection has been made. Doing so allows us to ensure that the user will always have a valid set of values to select from.
Adding a progressive value list is incredibly useful to help usher your users through an automated workflow by setting constraints on what information is available and when. Not only does it cut down on human error, it also allows your users to become more productive by limiting the amount of time needed to manually sort through information.