Watch a 5 minute viewlet movie  that illustrates much of the standard feature set.

The movie was made using an earlier version or our features demo, and has a legacy look. Of course, an UltraTree app can have any look you desire (Windows 7/Vista/XP/legacy).

The movie was recorded for an 800 x 600 monitor. Download size is about 600K.

UltraTree Feature List

Features marked with
are Premium features. These features are included with the Premium Edition.  Each of these Premium features can be added to the Standard Edition at extra cost. See the "Buy" page for current pricing.
  • Multichild Support
    • Multiple related data sources per tree level
    • Each data source may optionally have a header row
  • Multicolumn Data Presentation
    • Mixed formatting in any tree section (data source, header, footer)
    • Mixed formatting in the same column (format by column by data source)
    • Indented (tree) listbox column can be in any column position
    • Optional icon in data columns
    • icon-only columns (flags, tags, etc.)
    • Icons, colors, tooltips, data, all can be applied at cell level (normal and conditional)
  • Paging Support
    • Root section only
      • Provides high performance browsing of large root tables
    • With paging active, explode is applied to current page only
    • Configurable page size (1 to 9999 rows)
    • Supports incremental locator
      • Current page begins with located record
    • File Relationship
    • Minimum, maximum range of values
    • Single Value
    • Current Value
  • Views at all levels
    • Trees consist of multiple related views
    • All ViewManager methods are available, in addiiton to ultratree-specific methods
    • Embed into ViewManager methods
    • Filter views separately by tree level
    • Multiple prioritized, overridable filters by tree level
    • Separate SQL Filters
    • Custom JOINs
    • Inner JOINs
  • Filters at all levels
    • Regular Filters
    • SQL Filters (replace or extend)
    • Named Filters (SetFilter method)
  • Internal Headers and Footers
    • Available at all tree levels, every data source
    • Headers
      • One header section allowed per data section
      • Header row inserted before each block of sibling records (related to common parent)
    • Footers
      • Unlimited number of footers per data section  
      • Footer rows inserted at the end of data block
      • Each footer formatted separately
      • Can be used for totals or any other computed values or even constant data
  • Dynamic Data Ordering (DDO)
    • Uses fast queue sorting
    • Sort key fields can be runtime computed values or any value in the view
    • Up to 16 prioritized sort fields per sort key
    • Basic sort
      • Eliminates need for sort fields in Relational Integrity linking keys
      • Source rows are read in arbitrary order, but entered into the display queue in sorted order
      • Load time equivalent to unsorted data
      • No impact on loading performance
    • Column sort
      • Root section only
      • Column header mouse click
      • Forward/reverse alternate sorting
    • Virtual Trees
      • Convert flat file to tree using "break" sort keys similar to report breaks
      • Break headers automatically generated and inserted into list
      • Break headers automatically indented based on key order
      • Data rows automatically indented beneath break header
      • Unlimited break levels
      • Break totaling not presently supported
  • Totaling (conditionally filtered) by data source:
    • Multiple totals per data source (no limit on number of totals)
    • Totals related rows,such as all items in one order
    • Extremely flexible totaling types include
      • Count of related rows
      • Sum of data table column of related rows
      • Minimum column value
      • Maximum column value
      • Average column value
      • Custom calculation - totally general, i.e.: sum of product of columns A and B when column C is greater than D, etc.
  • Alerts
    • 18 default alerted keyboard functions with customizable keystrokes; can add custom functions and alerted keys
  • Resets
    • Field resets
      • Allows, for example, refresh on changes to various components of a multicomponent file relationship key, by using entry fields
    • Event resets
      • Automatic reset on (multiple) parent listbox NewSelection events
      • Automatic refresh on Accepted events of (multiple) linked arbitrary controls
      • UltraTree-defined refresh events which your code can post wherever convenient
  • Automatic Folder Icons
    • Optional automatic generation of open/closed folder icons in the tree column
    • Configurable icons for Expanded, Contracted, Leaf states
  • Update/View/Select Support
    • One set of controls for all levels
    • automatic enable / disable of controls plus dynamic override capability (to support user auth for example)
    • Automatic RI linking of inserted records
    • Popup to select inserted record type (optional)
    • Arguments and return values supported on form procedure calls
    • Conditional form procedures (supports such things as different transaction forms on a table)
    • Insert field priming (optional)
    • Automatic selection of inserted record (optional)
    • Auto refresh of displayed rows affected by update
  • Popup Support
    • Right-click row popup
      • Global to tree - auto enable / disable of items depending on selected row
      • Optional overide popups by section
    • Insert popup (see update support)
    • All popups fully configurable using PopupClass methods
  • Cell Tooltips (normal and conditional)
  • Multirooted trees
  • Collapsible tree header
  • Recursive (Self-Related) Table Support
    • Levels may increase dynamically to system limit 
      • 1:Many recursive (parent, child, grandchild, etc)
      • Many:Many recursive (Exploding Bills of Material with the same elements related to multiple parents, also Where Used trees)
    • Recursive views may occur anywhere in a tree
    • Recurring headers if desired
    • Recursive Relation Manager Included
      • Supports both recursive relationship types
      • Relational Integrity support for cascaded deletes (anywhere recursive table is used in an application)
      • Template included to prevent Many:Many infinite database loop
  • Tagging & Reporting
    • Uses tag icon column and a queue of tags
    • Tag/Untag using direct mouse click or separate controls
    • Auto-advance of row selection after tagging
    • Tag/Untag single row, entire subtree, or entire tree
    • Send tagged rows to reports
    • Tagged rows need not be present in tree when reported
  • Row/Column Rearrangement & Column Hiding
    • Rearrange rows at runtime using up/down buttons
    • Renumber rows at runtime
    • Rearrange columns at runtime
    • Hide and reveal columns at runtime
    • Column arrangement saved and restored for next session
  • Stylesheet
    • Define named styles ala word processing
    • Lets you apply complete styles to cells by name reference instead of number
    • Mix fonts, font sizes, and font styles in one tree
    • Also supporets style colors
    • Allows easy localization of fonts to end user environment
    • Supports runtime end-user configuration of fonts if desired (User style configuration is saved to an INI file)
    • Named styles may optionally be shared among procedures and/or applications by name using special INI files) -  Easy way for your end user to customize a whole suite of applications
  • Drag and Drop
    • Drag entire branches from one parent to another
    • Move branches to previous or next parent using buttons
    • Handles all file updates automatically
    • Performs all necessary validity checking
    • Fuzzy drop targeting allows dropping anywhere under a valid target for maximum end user friendliness
    • When used with the Recursive Views optional feature, allows moving branches up and down in the hierarchy

To Top of Chart