Product
Support
Everything Else
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:

  • Lookup [] For [] = [] in []: retrieves the contents of a field or calculation in a record that has already been stored. If the target relation contains more than one record with the same target key value, the tile finds only one of these records. The presence or absence of an index on the linking value can determine which record is located, so the assumption that this tile will find the “first” of multiple records with the same linking value may not be valid. (See 10.11.1 of THR)
  • Lookup [] Summary in []: returns the results of a summary calculation performed in another relation. (Summary calculations can be identified by an [S] in the abacus’s content property.) (See 10.11.2 of THR)
  • Use [] From []: retrieves a value from the record currently displayed on a data entry form. Typically this is used to ‘pull’ a value from the entry form to another relation in order to do calculations using that value. (See 10.11.3 of THR)
Positional Tiles, Defined

The three positional tiles in Helix are:

  • Previous []: finds the value of a field or abacus that is present in the record previous to the current record. Although the ordering of the records depends on the index selected on the form that includes the tile, Helix considers all records in the relation when finding the previous record. This means that the previous record is not necessarily a record that can be displayed on the form. In other words, the previous record may not meet the conditions in the query attached to the form. (See 10.12.1 of THR)
  • Form Previous []: finds the previous value of a field or abacus from the previous record. Helix bases its search on the set of records that meet the criteria of the form’s query. The index selected for the form, if any, determines the ordering of the records. (See 10.12.2 of THR)
  • Previous [] For []: finds the value of a field or abacus from the record previous to the current record that meets the specification in the right black hole. Although the ordering of the records depends on the index selected on the form that includes the tile, Helix considers all records in the relation that meet the criteria in the right black hole when finding the previous record. (See 10.12.3 of THR)
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.