Each example is a ZIP file containing an executable application and its data files. UNZIP to a folder of your choosing. (We recommend you put each application in a separate folder) The applications are completely self-contained. No DLLs are required.
These applications were compiled with various versions of Clarion and UltraTree for execution on XP, Vista, Windows 7, and Windows 10.
UltraTree School Demo
This application is the School example from the Clarion example set. We have spruced up the UI a bit with Clarion 7/8 specific UI enhancements, and added a couple of UltraTree procedures (a course tree and a teacher tree). This provides a representative contrast between what is possible with UltraTree vs the RelationTree procedures in the example.
The example illustrates such UltraTree features as:
- Columnar Data Presentation with mixed column data
- Many:Many relationship support
- Use of colors and icons
- Dynamic Data Ordering
- Totaling (Count, Min, Max, Average)
- Use of named cell styles
New! (January 2017) UltraTree Features Demo
This newly updated application contains a group of procedures that illustrate many UltraTree features. The example emphasizes showing how to use various types of ranging for rapid display of only the desired information. (Paging, file relationship, min-max range, single value) The database used in most of the procedures models a typical invoicing structure of Customer, Order, Order Item. It is not intended to illustrate any artisitic visual effects. We leave that to our customers. Specifically new to this version of the demo is use of data breaks and totaling by break as the data is retrieved.
In addiiton to ranging of various types, plus the tagging and reporting feature, it uses many styling features listed for the School demo, such as colors, fonts, icons, etc..
Bill of Material
A very popular UltraTree feature (Recursive Views) supports self-related tables. One example of use of such tables is the Bill of Material (BOM).
What is a Bill of Material?
The basic idea of a Bill of Material is that assemblies are composed of sub-assemblies, which are composed of sub-assemblies, ..., eventially terminating in indivisible parts. Because a given sub-assembly (or part) can be contained in many assemblies, and a given assembly can contain many sub-assemblies (and/or parts), the relationship between assemblies and sub-assemblies is Many to Many. A Many:Many relationship between table A and table B is represented in a Clarion database dictionary by implementing a "structure" table S that is related Many:1 to both A and B. Thus each S table entry s denotes a related pair of records (a,b).
The BOM Many:Many relationship has the unique feature that all of the data is stored in a single table. The structure table is related Many:1 twice to the same data table. (Because of Clarion dictionary rules, an Alias of the data table must be used for at least one relationship) UltraTree is among the few tools that fully support relationships such as this. Defining a relationship between the structure table and an alias of itself results in a recurring Many:Many relationship. The UltraTree "Recursive Views" feature implements a self-relationship-aware RelationManager that supports these recurring relationships. (Our Up & Up product supports processing and reporting the structure, but requires UltraTree as a prerequisite.)
The Many:Many self-relationship (as with all Many:Many relationships) can be viewed from either perspective. The inverse of a parts explosion (BOM) is a "where used" explosion. Of course, UltraTree supports both flavors.
A Bill of Material Demo
Mike Gorman had the idea of using a Bill of Material to represent in database format some metadata that is infinitely recursive. Namely, the definition of SQL 99. (As presented in BNF) Of course, real-world databases can't be infinite. They have well-defined terminators. Mike's solution is to insert "recurse here" stopper elements in the structure table at nodes where the SQL definition becomes recursive.
Mike was kind enough to consent for us to distribute this result of his labors as a BOM demo.
This is a very unusual example, but there are thousands of everyday uses for this database structure. We think the extremely unusual nature of this demo illustrates the versatility of this feature. You probably have a dozen uses yourself, once you think about it. The UltraTree Recursive Views Feature makes anyone a BOM expert.
I consider Mike the "godfather" of UltraTree Bill of Material support.