Dynamic Answers & Calculations
Often you may need to display some text or calculate a value in a dynamic fashion.
For example, you may want to show different text in a field based on what the user has previously answered.
Or maybe you have a product order Form that should calculate the total amount to pay.
This is where the Dynamic Value property found on most form fields comes in handy.
Dynamic Value allows you to create a formula that generates or calculates a result that is assigned as the given field's answer.
So for example, imagine you have the following Form fields:
- "Enter Product Name" - a Text field with Data Name of productName
- "Enter Product Cost" - a Number field with Data Name of productCost
- "Enter Number of Items" - a Number field with Data Name of numberItems
- Add a new Hidden field to your Form, and set the Data Name to be "totalIncludingTax"
- On this new field, find the Dynamic Value property.
- It’s found near the bottom of the properties list, in the Advanced section.
- It’s found near the bottom of the properties list, in the Advanced section.
- Enter the following formula into the Dynamic Value: {{productCost}} * {{numberItems}} * 1.10
What we've done so far is add a hidden field (a field the app user will never see) which will store the result of the formula calculation.The formula is applying a 10% tax rate to the product cost amount.
This is the first example of how you can use the Dynamic Value property to calculate results.
Now we're going to use Dynamic Value again to display a message to the app user.We want to summarize their order details using a read-only Text field.
- Add a new Text field to your Form, set the Data Name to be "orderSummary".
- Find the Read Only property and tick the box.
- This will make the field read-only, so the user cannot change the displayed answer text.
- This will make the field read-only, so the user cannot change the displayed answer text.
- Find the Dynamic Value property and enter the following formula:
concat('You ordered ', {{numberItems}}, ' of ', {{productName}}, '. Total (including tax) is: ', {{totalIncludingTax}})
What we're doing with the above formula is building up dynamic text, by concatenating together pieces of text.
The concat() function is used to build up the final text, and we are using the values from the various fields (the {{dataName}} bits).
See the Creating a Formula page, to learn more about how a formula works.
That's it, you now know how to create dynamic values and calculations!