Dialog overview
Dialogs allow you to show information in a modal window that temporarily covers the main form. They're like a form within a form, eliminating the need for separate forms or navigation to show messages or data from other datasets.
Dialogs are best explained with an example. Here we see a customer management form for the Customers dataset. This form starts with a searchable list of all customers. We’ll click on the “Edit Customer” button for Abbey Evetts.
This takes us to the customer details screen. We can see the four sales for this customer, each of which is a record in the linked Device Sales dataset. We can create a new sale by clicking on the “New” Button, or delete an existing sale by clicking on a sale’s X icon. Instead, however, we’ll click on one of the existing sales.
This opens a dialog that allows us to see details about that sale and even edit its details if we have the correct permissions.
Form dialog items
To add a dialog to your form, choose “Dialog” option in your form’s “Add” menu.
Just like the Form itself, each Dialog has a dataset. Here we’ll choose “Device Sales” and click “Create”.
We’re now editing our new “Customer Sales” dialog. It’s similar to editing a Form Page, and you can add form widgets and set Dialog Display Actions.
These new Dialogs are used in various ways described below.
Showing linked records in a dialog
Linked record dialogs are launched from Single Field widgets that show fields for linked records. First we'll choose “Single Field” from the “Add Widget” menu.
Next we’ll choose a linked dataset, in this situation “Device Sales”.
Then we’ll choose the “Value Label” field we want to use to identify linked records. In this example we’ll choose a calculated field called “Date and Value”.
Because we’ve chosen a dataset that links to this form’s dataset, we can see the “Linked Records” panel in the Single Field widget’s edit dialog. The form configuration and user interface are slightly different whether the field is on the “Many” or the “One” side of a “One-to-Many” dataset linking relationship.
Dialogs for “One” side of dataset linking
In this example we’re seeing the “One” side of a “One-to-Many” dataset linking relationship.
- Value Label Field: This is the field we’ve already chosen for how we want to identify each linked records.
-
Create New Linked Records in a Dialog: A dropdown selection enables users to specify a dialog for creating new linked records. If left unselected, record creation will be disabled for that widget.
-
Edit Linked Records in a Dialog: A separate dropdown allows for configuring dialogs that enable editing existing linked records. If left unselected, record editing will be disabled for that widget.
-
Allow Linking to Existing Records: A checkbox setting that, when enabled, permits selecting existing records to link to. When disabled, new records must be created directly in the form.
-
Allow Removing Links: This allows you to control whether users can remove linked records, independent of users’ underlying permissions. This allows you to prevent accidental removals while still allowing users to edit records in dialogs.
-
Delete Linked Record When Last Link is Removed: When checked, linked records will be automatically deleted if they are no longer associated with any primary records.
Dialogs for “Many” side of dataset linking
The “Many” side of the “One to Many” dataset linking relationship is similar, except there isn’t a checkbox for “Allow Removing Links” or “Delete Linked Record When Last Link is Removed”.
Using the form on the “Many” side of the “One to Many” dataset linking relationship, however, is quite a bit different. When a dialog item is selected in the “Create New Linked Records in a Dialog” dropdown, form users can click “New” to create a linked record in a dialog when no linked record is selected in the form. When a dialog object is selected in the “Create New Linked Records in a Dialog” dropdown, form users can click “New” to create a linked record in a dialog when no linked record is selected in the form.
When a dialog object is selected in the “Edit Linked Records in a Dialog”, form users can click View to open a dialog with the existing linked record if one is selected in the dropdown.
When "Allow Linking to Existing Records" is unchecked, the dropdown doesn't open and users can only create new records via the New button - also matching the behavior available on the "one" side of relationships.
Dialog Data Persistence and Permissions
To maintain data integrity, the software handles record saving differently based on configuration. Edits to existing linked records are saved immediately when clicking the dialog's "Save" button.
New linked records follow one of two behaviors depending on the "Delete Linked Record When Last Link is Removed" setting. When this checkbox is not checked, the record is created immediately when clicking the dialog's "Save" button, and calculated field values are retrieved from the server. However, when this checkbox is checked, the record is only created locally and saved to the server when the primary form is saved. During this interim period, calculated value label fields display "[New Record to be Created]" as a placeholder until the actual value can be retrieved from the server.
Permissions remain enforced throughout the process, ensuring users only see and modify records they have access to.
Showing dialogs from actions
You can also display dialogs via actions, allowing you to show confirmations, warnings, or information to your form users. For more information about actions, see the Form Variables, Logic, and Actions article.
When configuring a Show Dialog action, you select which dialog to display from a dropdown of all available form dialogs, and you set the dialog’s title. By default dialogs launched from actions only have a single Close button.
If you choose to have your dialog use “Cancel & Continue” buttons, however, you’re able to also fire actions when the dialog's Continue button is clicked. The Continue button can be customized with a different label and color choice between Blue Standard or Red Warning to match the dialog's purpose. The Continue button supports full conditional logic and can trigger multiple actions including field updates, record saves, and validation checks.
Dialog Continue buttons also have explicit control over when dialogs close. A dedicated "Close Dialog" action is added by default to new dialogs and can be placed within conditional logic, allowing dialogs to stay open if validation fails or close only after successful operations.
Dialog actions can reference both dialog fields and underlying form page fields, which appear in the same dropdown organized into "Dialog Record Fields" and "Page Record Fields" sections.
Note that nested dialogs are not supported - "Show Dialog" is not available within dialog Continue Actions.