Tree Design Interface - OnSort Method

Executed when the Sort method is invoked on the parent list

Member of Tree Design Interface (PRIM_TREE.ITreeDesign)


Name Type Data Type Description
Result *Result Enumeration Result of comparing the two values - Less, Equal or Greater
TreeItem *Input PRIM_TREE.TreeItem Reference to the list item for the current design instance
CompareTo *Input PRIM_TREE.TreeItem Reference to the list item to be compared to
Key *Input PRIM_VAR Type of sort required


The OnItemSort method is executed whenever the item is referred to in the sort running on the containing Tree.
Sorting is entirely user defined and it is therefore necessary to supply the Key (the 'value' that is being sorted) and the Order to the sort routine. This information is then used in the OnSort method.


Redefine the method in the design reusable part.
This example supports 3 different sorts: EMPNO, SURNAME and GIVENAME. These Key values are entirely arbitrary, but for simplicity they match with specific field names. The sorting here is only ever Ascending.
In each case, the local variable value is compared to the equivalent variable value, in this case published as a property of the design instance, to determine whether each value is less then, equal to, or greater than the other.
The OnSort method may be called many times for each item as the sort process evaluates each of the items.
Mthroutine Name(OnSort) Options(*Redefine)
   Case (#Key)
   When (= EMPNO)
      #Result := #Empno.Compare( (#CompareTo.Design *As #EmployeePart).Empno )
   When (= GIVENAME)
      #Result := #Givename.Compare( (#CompareTo.Design *As #EmployeePart).Givename )
   When (= SURNAME)
      #Result := #Surname.Compare( (#CompareTo.Design *As #EmployeePart).Surname )

See also

All Component Classes

Technical Reference

LANSA Version 15, April 2020