Data Binding, Export and Printing
Powered by our shared data management engine - the ExpressDataController - ExpressQuantumGrid Suite v6 gives you unmatched data source flexibility when displaying data within the grid. Whether it is a dataset from Borland or Third-Parties, file systems, registry entries, INI files, or application object properties - all can be used as a data source for the ExpressQuantumGrid. In addition, you never need to keep unnecessary data in your objects or code, because the grid allows you to handle bound and unbound data simultaneously. You don't have to populate your data sources with tons of nested records, since the ExpressQuantumGrid you can easily handle large master-detail datasets via dynamic detail loading. And you never have to worry about choosing the 'right' data source type - with the ExpressDataController, you don't sacrifice data processing performance as a result of the data binding method you've chosen.
As you might imagine, supplying data to the grid and posting it back to the data source is only one side of the data exchange process. With the ExpressQuantumGrid Suite, we give you numerous additional data exchange options by providing WYSIWYG data printing along with data export to many popular file formats.
Data Retrieving Modes
- Bound (Data-Aware) Mode
The ExpressDataController is bound to a traditional DataSet (or descendant) via a TDataSource. If you've used the TDataSource, you will feel right at home with the ExpressQuantumGrid.
- Unbound Mode
In this mode, the ExpressDataController is passed raw data. Using Unbound mode is as easy as working with a TStringGrid. Unbound mode allows you to specify data types and values both at design time and runtime such as the possible states of a grid cell in the MineSweeper game sample we've built using the ExpressQuantumGrid.
- Provider Mode
In this mode, data is managed independently and the ExpressDataController is instructed as to how to retrieve it on demand. This allows you to code for performance and reduce any wasteful use of resources by eliminating multiple copies of data in memory. The ExpressDataController can direct any supported Developer Express control (ExpressQuantumGrid, ExpressQuantumTreeList, ExpressScheduler, ExpressPivotGrid, and ExpressVerticalGrid) to read from any source whether that be Third-Party data engines, keys in the registry, elements in an XML stream, or even filenames in a file system.
In this mode you create simple custom data sources (by overriding a few methods) that provide data for use with the ExpressDataController. This allows you to create and populate details with data on the fly. And by overriding a single method you can instruct Developer Express controls to write them back once the user has edited them. This approach is particularly useful when creating hierarchical data browsers such as file or registry browsers.
Additionally, the ExpressDataController allows Developer Express controls to go beyond the constraints of columns that contain only one data type and allows for data types to be customized at the row level.
Unbound Grid Items
All the data Views that ship with the ExpressQuantumGrid allow you to create an unlimited number of unbound grid items such as columns in (Banded) Table Views, card rows in Card Views or series values in Chart Views. These are grid items that don't have an associated field within the data source and can be manually populated. Thus, you can provide additional data visualization or management options to your end-users without having any surplus fields in your data source.
With unbound grid items, you still have all the features found in bound grid items. Sorting, grouping, filtering, and summary calculations - everything that is possible with bound columns can be accomplished with unbound columns. You can even populate unbound columns with values calculated from bound columns.
Another powerful capability available to you when using unbound grid items is the ability to edit unbound data. This can be useful when the unbound grid item's data should not reside within the grid's actual data source or cannot reside within it due to structural incompatibilities. Good examples are calculated columns/card rows and maintaining a list of records that require additional processing at a later point in time.
To create and maintain an unbound column, you need to set the column's type and provide data for the column via the View's data controller.
When it comes to performance, nothing can come even close to the ExpressQuantumGrid when you need to deal with large volumes of data. Powered by the ExpressDataController, the ExpressQuantumGrid gives you options that allow you to significantly increase its efficiency and so as a result the overall performance of your application.
- SmartRefresh Mode
Using SmartRefresh Mode dramatically improves performance since only dataset records which have been modified by the bound Developer Express control are reloaded when the internal set of records is updated. This mode cannot be enabled when Grid Mode is in effect.
- Grid Mode
When using Grid Mode, only a fixed number of dataset records is loaded into memory. Because only a limited set of records are retrieved from the dataset, automatic sorting, filtering and summary calculations are disabled in Grid Mode (must be controlled manually instead). By default, this mode is disabled and the ExpressDataController loads all records in a dataset.
In addition to viewing and editing data from a predefined data source, the ExpressQuantumGrid allows you to transfer data by utilizing its built-in data export features. You can export an entire grid to a file in one of the following formats:
- TXT, XML (with accompanying XSL), HTML, XLS.
To export an entire grid all you need is just a single code line. And the grid's export options offer you even greater control over exporting data. Key features include:
- Export only the selected records.
- Export a view together with its details (not available for XLS export).
- Expand details and group rows.
Printing via the ExpressPrinting System
The ExpressQuantumGrid allows you to render and print its contents via the ExpressPrinting System. Not only can you render the contents of the grid onto paper, you can also export to any subtype of the TGraphic class (such as TBitmap, TMetafile or TJPEGImage).
Numerous options are available both to you and your end-users when printing, including:
- Automatic detail, group and card row expansions in printed Views.
- Printing only the currently active View.
- Specifying the styles used for the printed grid separate from the styles that are used to paint the grid on-screen.
- Automatic resizing of the printed views to fit the entire page.
- Hiding/showing particular elements like headers, footers, etc.
- Numerous customization options are available to end-users directly within the print preview window.
- and so much more...