DBKit v2.1b1 is now available. You can access it from the Examples at Databases > DBKit > Current Beta. The description will always indicate the beta version number.
DBKit 2.1 Beta 1 Release Notes
New
- DBKit.PopupMenu and DBKit.RadioGroup: new AutoPopulateWhere and AutoPopulateOrderBy properties let you filter and sort the values an auto-populated control loads from its AutoPopulateTableName.
- TableRelationships: the parent column named in a relationship is now honored as written, so relationships can match on a unique column other than the parent table’s primary key, such as a business key (for example,
invoiceline.model = inventory.model).
Changed
- DBKit.PopupMenu and DBKit.RadioGroup: the Error event now receives the exception (
Error(error As RuntimeException) As String). The string the handler returns is the message displayed to the user; returning an empty string, or not implementing the event, displays nothing. - Values that are not in the list no longer raise an exception from DBKit.PopupMenu or DBKit.RadioGroup. The control is left with no selection and the condition is reported through the Error event.
- The ValueNotFoundMessage property has been removed from DBKit.PopupMenu and DBKit.RadioGroup.
- Auto-population now replaces a control’s existing items (including design-time items) with the values from the database. If the query fails, the existing items are left in place.
Bug Fixes
- AutoPopulate with ColumnValue storage produced one item per source row, duplicates included, instead of one item per distinct value. It now loads each value once.
- AutoPopulate no longer adds an empty item for blank or NULL values in ColumnValue storage; a record with a blank value simply shows no selection.
- DBKit.Table: fixed a NilObjectException that occurred when a related table appears after its parent table on a layout and the parent selected its first row before the related table had opened. The related rows now load as expected.
- A layout containing a table for a different table without a TableRelationship defined for it now raises a DBKit exception explaining that no table relationship is defined between the two tables, instead of a NilObjectException.