Watch a 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
-
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
-
Root section only
-
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
-
Field resets
-
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
-
Right-click row popup
- 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
-
Levels may increase dynamically to system limit
-
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
