Previous Section | Next Section
...
Now, we'll take a look at some business rules. We're going to add several rules to automate parts of the form. We will use the Visual Rule Builder to create the code for all but one of these rules.
Update the Client Information Form
- Click the Copy icon to make a copy of the Order Info form. Then, click the Edit icon to open the Form Designer.
- In the Properties Panel, change the form name to Order Info Rules.
Rule: Automatically Set Date to today's date
...
- Click the rules icon on the toolbar. Create a new rule and click the icon to edit it.
- Change the name of the rule to: Initialize form
Click on the Rule Builder button.
Click Next to go to the Action wizard.
Click the Add Action button on the top right of the Action Wizard
Select TodaysDate from the first dropdown. TodaySDate is the Name of the Date control at the top of the form. If your control is named something else, select that control from the dropdown.replace TodaySDate below with that name
Select to from the second dropdown
Type today in the Expression field and click on the today function when it displays in the dropdown
Click Finish then click on the save and test icon. Now, when the end user first starts using the form, the Date control at the top will be set to today's date. No need for the user to type it in.
Expand title Click here to see this rule in the Visual Rule Builder
...
When the user selects an item in any of the rows in the Order Items table, we want the price of that item to be displayed automatically. Normally, this price information would come from a back end database or other system but we're just hard-coding the values in the rule for the time being. We will build this rule with JavaScript instead of using the Visual Rule Builder so that you can see that supports more than one way to write business rules.
- Click the icon in the toolbar to return to the form. In the Order Items table, select the Price column by clicking on the header. In the Properties panel, uncheck Enabled. The entire column is greyed out.
- Go back to the rules editor, create a new rule and edit it. Change the name of the rule to: Set Price for Item.
Click Rule Code then click Edit Code. In the Rule area, type or copy/paste the following.
Code Block language javascript linenumbers true for (var i = 0; i < Item.value.length; i++) { if (Item[i].value === 'Chevrolet') { Price[i].value = 125.75; } else if (Item[i].value === 'Chrysler') { Price[i].value = 118.75; } else if (Item[i].value === 'Ford') { Price[i].value = 132.75; } }
Now, when the user selects an item, the price for that item will be displayed.
Rule: Calculate
...
Subtotals
When an item and quantity are selected in a particular row, we want to compute the price for that item (Subtotal = Quantity * Price) and the overall price for all itemsdisplay it in the Subtotal column for that row.
- Click the icon in the toolbar to return to the form. In the Order Items table, select the Subtotal column by clicking on the header. In the Properties panel, uncheck Enabled. The entire column is greyed out.
- Go back to the rules editor, create a new rule and edit it. Change the name of the rule to: Calculate SubTotals
Click on the Rule Builder button. You will see the Condition wizard
Click the Add Condition button
Select your Price control from dropdown
- Select the "is filled" property from the Property dropdown
Click Next to go to the Action wizard.
Click the Add Action button on the top right of the Action Wizard
Select your Subtotal control from the dropdown.
Select "to" from the second dropdown
Type sum Price * Quantity in the Expressions field and click on the sum function when it displays in the dropdown
- Select the Subtotal control then add the closing parenthesis
Click Finish then click on the save and test icon. Now, when the end user selects the item and fills in the quantity, the Subtotal will be calculated for each row of the table
Expand | ||
---|---|---|
| ||
Rule: Calculate Grand Total
When an item all items and quantity quantities are selected in a particular row, we want to compute the price for that item (Subtotal = Quantity * Price) and the overall price for all items and display it in the Grand Totals field.
- Click the icon in the toolbar to return to the form. In the Order Items table, select the Subtotal column by clicking Click on the header. In Grand Total control. Uncheck Enabled in the Properties panel, uncheck Enabled. The entire column field is greyed out.
- Go back to the rules editor, create a new rule and edit it. Change the name of the rule to: Calculate SubTotalsGrand Total
Click on the Rule Builder button. You will see the Condition wizard
Click the Add Condition button
Select your Price control from dropdown
- Select the "is filled" property from the Property dropdown
Click Next to go to the Action wizard.
Click the Add Action button on the top right of the Action Wizard
Select your Subtotal Grand Total control from the dropdown.
Select "to" from the second dropdown
Type sum in the Expressions field and click on the sum function when it displays in the dropdown
Select the Subtotal
controlfield from the dropdown then add the closing parenthesis
Click Finish then click on the save and test icon. Now, when the end user selects the item and fills in the quantity, the Subtotal will be calculated for each row of the table
Now, when the user selects an item and a quantity, the subtotal for that line and the overall grand total are automatically calculated and updated. The last line triggers the rule whenever a row is deleted from the table.
Expand | ||
---|---|---|
| ||
Now, the overall Grand Total is automatically calculated and updated with the Subtotal amounts as rows are filled in and added to the table. Try deleting a row in the table. Notice the Subtotal amount for that row is subtracted from the Grand Total
has a powerful Rules engine. You can perform many dynamic actions in your form including the examples above as well as many other actions like showing/hiding connecting to back end systems and retrieving JSON to populate form controls etc
The Visual Rule Builder makes it easy to create rules to show/hide parts of the form, automatically filling fill in user information, making make controls required or optional dynamically , connecting to back end systems and retrieving JSON to populate form controls etc. Form without writing code, For more information, refer to the Rules Examples documentation.