Everything Else
The New ‘Delete Record’ Confirmation Dialog

Unless the collection designer has created sequences that suppress dialogs, deleting records in Helix brings up the Delete Record confirmation dialog. This technote documents the macOS version of that dialog, which first appeared in 6.2b9 (5775).

There are many variations possible when deleting records in Helix. Records can be deleted from entry views and list views, both of which may or may not contain subforms. When subforms are present, the collection designer has the ability to control which sets of record data (the host form and various nested subforms) are to be deleted from the view.

Notes & Improvements

When rewriting this dialog for macOS, we took time to factor in many improvements:

  1. The fact that deleting data is permanent and can not be undone is promoted to the first line of the dialog.
  2. The emphasis on the relation the data is to be deleted from is de-emphasized. The typical end user has no knowledge of the relational structure of the collection, so this information is meaningless to them. However, there are some users for which this information is relevant, so it is shown in the secondary message of the dialog.
  3. When a view with a subform is going to delete more than 63 records, the dialog now reports the actual number instead of “many records.” The non-counting was an attempt to suppress duplicate reporting of the same record, e.g: the subform is in the same relation and the same record is present on the host as well as the subform. (That was not actually working correctly anyway.) In all cases, the number reported now is the total number of records to be deleted from that subform. Whether the same record appears on more than one host/subform is not considered in these counts, so it is possible that a single record can be included in multiple subform counts.
  4. On a view with an empty subform, the Classic dialog states that zero records will be deleted from that relation. The macOS dialog does not report on relations that will not be affected by the delete action.
  5. If no records are to be deleted the dialog informs the user straightforwardly. (This is possible on an empty list or on a list set to not delete the host view and the designated subforms contain no records.) In this situation, the buttons change to Cancel and Continue. The presence of the Cancel button is required to be able to terminate a sequence, should the user need to do so. Outside of a sequence, the button simply reads OK.
  6. Keyboard oriented users can use Command-D to trigger the Delete button.
  7. Keyboard oriented users can use Command-C, Escape, or Return/Enter to trigger the Cancel button. (The default button results in no potential loss of data.)
New macOS Dialogs

The Delete Records dialog appears in various forms, depending on the construction of the view and the data being deleted. Here are some representative samples:

Entry View: One Record to Delete

When deleting on an entry view, the button reads “Delete” and the message states that 1 record will be deleted from the relation the view is in.

This version appears when deleting from an entry view, or when an entry view contains subforms that are set to not delete their data, or when the total number of records to be deleted is one.


Deleting from One Relation

When more than one record will be deleted, the button reads “Delete All” and the message states the number of records to be deleted from the relation the data is in.

This version appears when deleting from a list, or when an entry view is set to not delete the host view.


Deleting from Multiple Relations

When records from more than one relation will be deleted, the message expands to show the number of records to be deleted from each relation that will be affected. Each subform on the template is represented by its own line, so a single relation may appear more than once, depending on the collection design.

This version appears when deleting from a list or entry view with one or more subforms, where two or more templates are set to delete data.


No Records to Delete

When no records will be deleted, the dialog states this fact in unambiguous terms. The button reads OK (or Continue when the delete occurs within a sequence) and becomes the default button.

This version appears when deleting from a list with no records or when an entry view is set to not delete the host view and all subforms contain no records.

Design Mode Control

When working on a view with one or more subforms in Design Mode, Classic Helix inserted checkboxes in the delete dialog, giving the collection designer control over which data sets could be deleted from the view. This interface was always awkward, as it required that you actually delete data in order to set the properties of the view.

Helix RADE no longer uses the checkbox interface for designating which subforms are to be deleted, so the dialog now has a consistent appearance in all modes.

RADE now incorporates the option for designating which data sets are to be deleted directly into the subform linking setup. These settings are found in the View Inspector, and are available via AppleScript.