...
As with any system, the more flexible the capabilities of a system, the more sophisticated the system will be to support the dynamic nature of the system. With this in mind, Windsor established this Advanced Form Design Guide to provide information and guidance on the more advanced design topics and advanced form elements.
Anchor | ||||
---|---|---|---|---|
|
...
Click on the Forms link at the top of the page to open the Forms Manager.
Click on the Edit icon for the form in question to open the Forms Designer.
Ensure the current version of the form is in a Draft status to ensure the form configuration can be edited.
Click on the Form Details tab.
Scroll to the Alternative Identifier section of the form.
Check the Activate Display of Alternative Submission Identifier checkbox to enable this feature and display additional relevant settings.
Display Label: By default, “Alternative Identifier” is displayed as the label for references to this value. When utilized, the default label (i.e. "Alternative Identifier") will be changed to another value (e.g., Permit Number, Document Number, etc.).
To override this display label to a custom value, check the Override Display Label checkbox. This will enable the Custom Display Label field for entry.
Enter the desired display label value in the Custom Display Label field.
Alternative ID Control: The Alternative ID Control field is used to specify the control that will be used to house and manage the alternative identifier. From this field, select the Tag value for the control that is considered the Alternative ID Control on the form.
Note: Only the following controls, when assigned a Tag value, can be referenced as an Alternative Identifier: short text, calculated, single select, phone, email, date, time, number and URL controls.
...
Click on the Forms link at the top of the page to open the Forms Manager.
Click on the Edit icon for the form in question to open the Forms Designer.
Ensure the current version of the form is in a Draft status to ensure the form configuration can be edited.
Navigate to the Internal Data tab in the Form Details step of the Form Designer.
Click the Edit Internal Controls button to open the list of internal data controls that have been configured.
Click the Add Control link to add a new internal data control. To edit an existing internal data control, click the Edit button to the right of the control in question.
Add/Edit Internal Data Controls – When adding/editing an Internal Control, the following attributes are available:
A Label will describe the internal control. This will be the value that is presented to a user when working with internal controls.
The Type specifies the type of internal control. Internal Controls can be of the following Types:
Checkbox
Date
Dropdown
Paragraph
Text
Time
The Show After value is used to specify a custom sort order for the list of values.
The Tag value is a unique name assigned to an internal control to allow the control to be identified. This attribute is essential for facilitating the data importing and exporting processes.
The Read-Only attribute is used to make an internal data control read-only and locked. This is useful when populating the internal data control value based on a value entered on the submission.
If Required is checked, this attribute must be provided before "finalizing" (moving the submission to a "final" status) a submission.
The Automated assigning of value(s) is used to configure the population of the internal data control during the submission process based on a value from the submission or a default value. The following options are available.
None disables the population of data during the submission process.
The Populate with submission data is used to configure the population of the internal data control based on a value from the submission. If checked, the Source Section, Source Control, and Update linked data on submission revision? fields will be displayed. These values will be used to link the internal data control to a field within the submission.
The Source Section field is used to select and identify the section that houses the field that will be copied to the internal data control field.
The Source Control field is used to select and identify the control (within the selected Source Section) which represents the field that will be copied to the internal data control field.
Check the Update linked data on the submission revision field to configure the internal data control to be updated to the latest value following each submission. If this value should remain untouched following the initial submission (and any changes by internal staff), leave this attribute unchecked.
The Set default value is used to configure the population of an internal data control during the submission process based on the value entered in the Default DROPDOWN value, Default PARAGRAPH value, or Default TEXT value, respectively. Note: This option is only available for the Dropdown, Paragraph, and Text types.
...
Open the Submission View page for the submission in question from the Processing Dashboard.
Hover over the Internal Data attribute and click on the field. The attribute will now be editable.
Enter the appropriate values in this field.
Click out of the field to save the entered values.
...
After a form is submitted there is usually a large amount of activity regarding workflow events and internal data controls. Utilizing the event log is an efficient way to monitor your form for any workflow event-related actions. Once on the submission overview, a summary of the event log can be found on the right column of the overview page. Action, user, date, and time are all details available in this section.
Anchor | ||||
---|---|---|---|---|
|
...
Select the Parent Organization.
If not in Draft mode, enable Draft mode for the Organization.
Navigate to the Staff Assignments tab.
Role Management
...
Select the Edit button next to Workgroups on the Staff Assignments tab of the Organization Designer.
If the screen is not in an add state, select the Add New Workgroup button. A dialog will be presented where the Name attribute can be entered to define the name of the Workgroup. Enter the Name attribute to define the name of the Workgroup.
Once the Workgroup is defined, select the Add Row button in the Workgroup area to assign an individual staff member to each defined Role. For each mapping, select a Role value to represent the relevant Role and select a User to represent the user that will be assigned to the current Workgroup when a Submission's Workgroup is assigned to the current Workgroup value.
Repeat these steps for each user role assignment for the workgroup.
...
Select the Edit button next to Workgroup Route Maps on the Staff Assignments tab of the Organization Designer.
If the screen is not in an add state, select the Add New Workgroup Route Map button. A dialog will be presented where the Name attribute can be entered to define the name of the Workgroup Route Map.
Click on the new Workgroup Route Map.
Select the Add Row button.
Enter the When input matches… value which represents the value entered/selected on a submission that will be used to match to/assign a Workgroup.
Select the Assign Workgroup value which represents the Workgroup that will be assigned to a submission when the Submission includes the When input matches… value.
Repeat these three steps for each Workgroup Assignment for the Workgroup Route Map.
Repeat all these steps for each Workgroup Route Map.
...
Select the Edit button next to Workgroup Route Maps on the Staff Assignments tab of the Organization Designer.
Select the Workgroup Route Map to edit by clicking upon the Workgroup Route Map row.
Adjust the Workgroup Route Map settings as desired.
...
Navigate to Step 3 (Processing Steps) of the Form Designer for a form.
Click Edit staff assignments in the top right hand of Step 3 of the Form Designer wizard. The Edit Staff Assignment dialog box will be displayed.
Select the Assignments link in the top left, if not selected.
Assign Roles/Persons:
...
Select the Role or specific Person that will be assigned by default, if appropriate, as the Responsible Person for new submissions.
For each step, select the Role or specific Person that will be assigned by default, if appropriate, as the Step assignment for new submissions.
Option 2: Bulk Assignments:
Select the Assign Multiple button.
Select the Responsible Person and Steps to reassign.
Select the Assign Selected button to open the Bulk Assign dialog.
Select the specific Role or Person for which the selected steps will be assigned by default.
...
Select the Workgroup Routing link in the top left, if not selected.
Select the relevant Workgroup Route Map to be used to route submissions to a specific Workgroup.
Select the Field (Input Data for Workgroup Route Map) that will map to the Workgroup Route Map. Once selected, a secondary selection may be presented (e.g., if the selected field is an address, etc.). Select the secondary selection, if presented.
...
Anchor | ||||
---|---|---|---|---|
|
...
Click on the Forms link at the top of the page to open the Forms Manager.
Click on the Edit icon for the form in question to open the Forms Designer.
Ensure the current version of the form is in a Draft status to ensure the form configuration can be edited.
Navigate to the Sections and Controls (Step 2) section of the Form Designer.
Click on the Edit icon for the section in question.
From the Section dialog, click the Enable Repeater for this Section checkbox to enable the repeater configuration settings.
...
Click the Dynamically Name Repeater Items checkbox to enable the dynamic name configuration settings.
Enter the formula for deriving the repeating section name in the Repeater-Item Name Formula field. This formula field allows for specifying the text to display for each item in the list. For example:
...
Click on the Forms link at the top of the page to open the Forms Manager.
Click on the Edit icon for the form in question to open the Forms Designer.
Ensure the current version of the form is in a Draft status to ensure the form configuration can be edited.
Navigate to the Sections and Controls (Step 2) section of the Form Designer.
Click on the Edit icon for the section in question.
From the Section dialog, click the Enable Repeater for this Section checkbox and the Sort checkbox to enable the repeater configuration settings.
You will then be presented with two fields to set up your sort criteria with. The control dropdown menu will already be populated with eligible control names. This will be the control that the sorting will be based on.
Control sorting automatically changes between alphanumeric and numeric sorting. The form designer then dictates whether the sorting is ascending or descending by utilizing the second field Asc/Desc.
...
Name
Location
Address
Attachment
Table
Advanced Table
Datagrid
Contact
Hidden Text
Calculated
Message
...
Disable Ability to Delete Rows: Selecting this option removes the “delete row” option from the form. This prevents a user from removing a necessary row.
Enable Unique ID: Selecting this option will prevent users from entering duplicate values within the specified column of the table or datagrid. If a duplicate value is entered, an error message will be displayed, and the form cannot be submitted until the issue is resolved.
Require at Least One Row: Selecting this option requires the user to complete at least one row of the table. This is similar to marking other controls “required” but limits that requirement to a single row of the table.
...
Below is an example of how an advanced table may appear on a form. Advanced tables are highly flexible and allow for a variety of control options, the number of columns and rows, and control types. The final look of the table is dependent on the configuration selected.
...
DataGrid Control
The DataGrid control allows for the capture and/or display of data in a highly formatted table structure like the advanced table. However, the Datagrid control is much more powerful. Users can import hundreds of rows of data, download the control values, and more. A user can interact with the table (e.g., adding/removing rows), if appropriate, and entered data can be controlled using several control types. The DataGrid’s form-side validation allows users to see where there are errors in their dataset. A next error button allows the user to cycle through these errors, as well as a full-screen mode to view more of the table at once.
Form Design
...
The following properties are available for display/data entry with this control in the Form designer:
...
Hidden?: If checked, the system will hide the display of this control from the submitter.
Disable Ability to Add / Delete Rows: If checked, the Add Row button will be hidden from the submitter to prevent rows from being added to the table. This can help lock down the table in situations where the table's data is prepopulated or defaulted with data.Require at Least One Row: If checked, the submitter will be required to provide at least one row of data in the table
Enable Unique ID: Selecting this option will prevent users from entering duplicate values within the specified column of the table or datagrid. If a duplicate value is entered, an error message will be displayed, and the form cannot be submitted until the issue is resolved.
Require at Least One Row: If checked, the submitter will be required to provide at least one row of data in the table.
Conditionally Display Control?: If the control will be allowed to display conditionally, during the submission process, check the Conditionally Display Control checkbox. When checked, the Display Formula text field will be enabled for configuration. See the Conditional Display section of the Advanced Form Design Guide for details on this feature.
...
The following section provides several different formula examples and samples.
...
Scenario 1: Display the Sum of Numeric Values from a Repeating Section
In this scenario, a number control is used on a repeating section to collect the values to be summed and a calculated control is used to display the total sum on a different form section. The basic formula would be:
...
`REPEATING_SECTION_TAG` is the section tag for the repeating section on which the referenced control lives. This is required if the referenced control is not in the same section as the calculated control
`NUM_CONTROL_TAG` is the numeric control on the repeating section to be used in the calculation.
NUM() is a function that casts the entered value as a numeric. Ensures the addition operator is used for addition rather than calculation
SUM() is the function for summing up all values in the provided list. In this case, it sums up the numeric results from the discharge volume control on the discharges section.
...
Scenario 2: Display the Volume of a Cube in an Advanced Table Control
In this scenario, an advanced table control is being used to collect information on a rectangular room’s dimensions to calculate the volume of the room. The basic formula would be:
...
`LENGTH `, `WIDTH`, and `HEIGHT` are the tags for the numeric controls within the advanced table control.
* is the multiplication operator for multiplying the numeric control values
+ is being used here to concatenate a series of strings for display.
`UNITS` is the tag for the single select control for units on the advanced table control.
.description is used at the end of the tag due to a selection list being referenced.
...
Scenario 3: Display Text Conditionally Based on the Answer to a Previous Selection
In this scenario, the calculated control displays a certain text string if a certain answer is given to a single select and displays a different string if a different answer is given. The basic formula would be:
...
Note: The ternary operator is explained in more detail in the Calculation Formulas section of this guide.
...
Scenario 4: Add a $100 Fee If Start Date Within 30 Days of End Date
In this scenario, two date controls are used to collect the start date and end dates. If the start date is within 30 days of the end date, a $100 fee will be assessed. The basic formula would be:
...
`StartDate_Tag` is the tag value for the start date field.
`EndDate_Tag ` is the tag value for the end date field.
iff(condition, ifTrue, ifFalse) is the function that returns one of two values, depending on whether the Boolean condition evaluates to true or false. The Boolean expression compares the number of dates between start and end dates and if less than or equal to 30, returns True. Otherwise, return False. If True, 5 is returned. If False, 0 is returned.
datediff(startDate, endDate, datePart) is a function that returns the count (as an integer) of the specified datePart boundaries crossed between the specified startDate and endDate. “days” is the datePart , endDate, datePart) is a function that returns the count (as an integer) of the specified datePart boundaries crossed between the specified startDate and endDate. “days” is the datePart value.
...
Scenario 5: Single Select to Pre-determined Value Lookup
This scenario demonstrates how to display a pre-determined value based on the user's selection within a single-select dropdown, using the select
function. The formula compares the selected contaminant's description against a list of defined cases, returning the corresponding value if a match is found.
Example:
We have a single-select dropdown listing contaminants and want to display a pre-determined "RBSL" (Risk-Based Screening Level) value based on the selected contaminant.
Code Block |
---|
select(`OTHER_CONT`.description,{case: "EtBE", value: 47}, {case: "tAME", value: 128})
|
Explanation:
This formula is used within the property (like Value) of the control that should display the RBSL value.
OTHER_CONT.description
references the "description" field of the record in theOTHER_CONT
table/dataset containing the selected contaminant name.The
case
statements define possible matches between the selected description and pre-determined values. You'll need to add additional cases for each contaminant with its corresponding RBSL value.
Message Control
...
The Message control is an advanced read-only control that can be used to display the messages to the user. The types of messages can be presented, 1) Informational; 2) Warning; and 3) Error. Errors prevent the user from proceeding with submitting the form, while warnings and informational messages do not. A formula is used to determine whether the message control will be displayed.
...
Informational: If a user selects a particular permit type value from a dropdown, the user can be informed that their fees will be manually calculated by internal staff, at a later date.
Warning: If a user answers a question stating that they have received enforcement from other state agencies, a warning can be presented to the user notifying them that they will be required to mail the agency documentation of the enforcement.
Error: If the user selects "Yes" to a Yes/No question, a description field can be required or it can be communicated to the user that they are using the incorrect form and submission can be prevented. Another example would be, if two dates are available as a date range, it can be validated that the start date is before the end date in the range.
...
Below is a description of each attribute available for the Message control.
...
All controls can inherit data from controls of the same type. Some controls can be inherited from other types as well. See below for a listing of compatible control types for data inheritance.
Recipient Control Type | Compatible Source Control Type(s) |
Short Text | All Formatted controls (Date, Email, Number, Time, URL, Phone) Calculated Hidden Paragraph Single Select Short Text |
Paragraph | All Formatted controls (Date, Email, Number, Time, URL, Phone) Calculated Short Text Hidden Paragraph Single Select |
Hidden | All Formatted controls (Date, Email, Number, Time, URL, Phone) Calculated Short Text Hidden Paragraph Single Select Paragraph |
Single Select | Short Text Hidden Single Select |
Formatted Controls | Formatted Control of like-type Short Text (dependent on the format of data) Hidden (dependent on the format of data) |
...
`TRG_YES_NO` is the tag of the triggering control.
.description is used at the end of the tag due to a selection list being referenced.
==”Yes” indicates that the formula results in true only when the selection choice is “Yes”.
Scenario 2: Evaluate against a numerical value input
...
Open a Single or Multi-Select control edit dialog (in edit mode).
In the Datasource Type field select “Typed In”. Once selected, an Options field will be displayed.
Type in the list of values to be presented in the control in the Options field. Each item in the list will be separated by a carriage return.
...
Dynamic
The Dynamic data source allows the user to select a data-driven list, which is stored in the database. This could be in support of allowing the user to select from a list of items such as Counties, Company Names, Site IDs/Names, or NAICS codes on a Short Text, Single Select, or Multi-Select control. This dynamic data source is stored in the LOOKUP and LOOKUP_VALUE tables in the database. This list can be updated regularly (e.g., nightly or weekly), if appropriate. See the Dynamic Data Source Configuration section below for more details on how to populate the supporting data tables.
...
Open a Single-Select, Multi-Select, or Short Text control edit dialog (in edit mode).
In the Auto-Complete Data Source field select the desired dynamic list.
In the Number of Matched Displayed field, specify (as a whole number) the maximum number of suggestions/matches to be displayed in the dropdown list when valid text is entered.
If the Only Allow Lookup Values? field is checked, the submitter can only select/enter values found in the available list. If unchecked, values not in the list can be entered.
...
Open the Single or Multi-Select control edit dialog (in edit mode).
In the Datasource Datasource Type field select “Dynamic”. Once selected, a Dynamic Data Source field will be displayed.
Select the list to be presented in the control from the Dynamic Data Source field. This list will be driven by the lookup lists defined in the LOOKUP table.
...
Dynamic Data Source Configuration
...
Open a Single or Multi-Select control edit dialog (in edit mode).
In the Datasource Datasource Type field select “Repeating Section” or “Advanced Table”. Once selected, the Unique Key Field and Selection Display Value Formula attributes will be displayed for configuration.
Enter the Tag for the control on the Repeating Section or Advanced Table that is considered unique, and can be used for linking the value (e.g., Key, ID, Number, etc.) in the Unique Key Field. Any value used as the Unique Key Field must be required on the form entry. This field will represent the primary unique identifier that will be saved with any linked selection.
Note: Referenced attributes/controls can be of type Short Text, Single Selection, or any Formatted Controls. Backticks are not needed in this field.In the Selection Display Value Formula field, enter the formula that will be used to determine the text that will be displayed to the user for each value in this Single or Multi-Selection control. A great deal of flexibility has been provided with this formula which supports very simple and very complex derivations. See the Calculation Formulas section of this document for more details on acceptable formula formats. Use Tags (i.e., wrapped in `backticks`) to reference form attributes. Referenced form attributes/controls must reside in the same Repeating Section or Advanced Table that is referenced in the Unique Key Field. These referenced form attributes can be supplemented with literal text, as appropriate.
...
Note: Referenced attributes/controls can be of type Short Text, Single Selection, or any Formatted control.
Note: The Selection Display Formula can include the same “unique key” as was selected in the Unique Key Field, or other attributes within the same data source can be displayed, for example, `KeyControl`.
...
Scenarios
Scenario 1: Link a Single Select List to a Repeating Section List
...