Data Representation
- 2 minutes to read
The ExpressQuantumGrid is capable of displaying data from several datasets. Hierarchical data structures (such as master-detail relationships) within the ExpressQuantumGrid are implemented via grid levels.
A grid level is an object representing a specific data nesting level. Each level is represented visually via the View assigned to that level. Note that level objects only implement logical data structures, so levels are invisible without assigned Views.
Master-detail data representation requires the presence of two levels (master View and detail View) that are connected to the datasets and linked by field values (see the Master-Detail topic for details). Each time a master row gets expanded, the corresponding record(s) in the detail data set is displayed. The detail View displaying those corresponding record(s) is called a “clone“ View. All “clone” Views copy their settings from one View, which is controlled by the detail hierarchy level. This View is called a “pattern“ View and represents a template for all the detail Views used in the relationship.
“Pattern” Views are not displayed at runtime, they only provide settings for creating “clone” Views. However, each “clone” View may have individual settings, differing from the “pattern” View’s settings. This may happen if the “pattern” View has its Synchronization property set to False and its settings have been changed after the “clone” View was displayed on the screen. In order to recreate “clone” Views with the new “pattern” View’s settings, call the DataController.ClearDetails. To keep all “clone” Views automatically synchronized with the “pattern” View, set the detail View’s Synchronization property to True.
A TcxGridLevel instance represents the specific grid level that owns the collection of dependant grid levels (GridLevel.Items). Each grid level from this collection also has a child levels collection. Thus, you can build unlimited tree-type data dependency structures using the ExpressQuantumGrid.
Grid levels (and thus their Views) can be located at the same data nesting or at dependant hierarchy levels. If several grid levels (Views) are located at the same hierarchy level, navigation through them is implemented via the level tabs.
In order to enable tabs at the root nesting level, use the grid’s RootLevelOptions.DetailTabsPosition property. The level’s Options.DetailTabsPosition property lets you specify the tab position of detail Views. Also, you need to set the Level.Caption property to identify the required level from amongst the other levels, otherwise its tab will be blank.