|Lookup and Positional tile behavior related to undefined fields|
|Lookup and Positional Tiles (Sections 10.11 & 10.12 of The Helix Reference respectively)||
Lookup tiles retrieve data based on matching conditions specified by the collection developer. These tiles return the first value that satisfies the specified conditions, using any index that may be available to optimize the search. As such the ‘first’ value found may or may not be from the oldest (i.e: first created) record that satisfied the condition.
Positional tiles find values depending upon the relative position of either stored records or the records displayed on a form. The Previous tiles find a value by searching through existing records (either in the relation or on a form, depending on the specific tile) in descending positional order beginning from the location of the current record.
The previous record is the record that is placed before the current record in a specific ordering, as indicated by the index specification for the form on which an abacus containing the tile has been used. However, whether the tile searches all the records in the relation or a subset of the records depends on the specific tile in use.
In any case, the records available to this search are only the ones positioned before the current record. If an index is selected for a form, Helix uses that index to determine the record ordering. If no index is selected, Helix uses the order in which records were entered.
Practically speaking, the previous record is that record which immediately precedes the current record on a list. On a non-listing form, the previous record is the record that would be found by using the Find Previous menu command.
Note: Since the Previous tiles reference the ordering of existing records and an unentered record has no place in that ordering, a Previous tile displayed on an entry form will not have a defined value for the unentered record.
|Lookup Tiles, Defined||
The three lookup tiles in Helix are:
|Positional Tiles, Defined||
The three positional tiles in Helix are:
|Lookup & Previous Tiles and Undefined Values||
The Lookup and Previous tiles always seek to return a value. If the target field’s value in the record found is undefined, Helix continues to search (even through multiple records) until it finds a defined value to return.
Therefore, two lookup or previous tiles on the same view, displaying the ‘looked up’ or ‘previous’ value of two different fields, would actually display data from two different records if one of the target fields is undefined in the first found record.
This behavior is consistent since Double Helix 3.5r13 (tested) and almost certainly extends back to the introduction of the positional tiles.