In the v17.2 release, DevExpress Reporting has taken a big step to simplify the report creation process for end-users and introduced a new way for providing data to report controls and shaping data. Instead of using data bindings as in earlier versions, reports now use binding expressions by default.
Previously, end-users need to handle script events to implement any custom logic in reports, which has certain security implications and requires familiarity with programming languages. Newly introduced binding expressions cover most scenarios of using scripts and make it much simpler to evaluate summary results and conditionally format report data. You can now assign values to not only a limited number of bindable properties, but virtually to any other property of a target report control.
It’s considerably easier for end-users to internalize expressions’ criteria syntax instead of writing code in script event handlers.
With expressions mode enabled, the Properties grid contains the special Expressions tab providing properties for which you can specify custom expressions. Clicking the property’s ellipsis button invokes the Expression Editor, which has been improved to provide access to report bands and controls as well as to special property values.
A new approach brings almost no changes to traditional ways of binding report controls to data. As before, you can drag and drop the required item form the Field List, or click the control’s smart tag and select the data field from the drop-down list.
Starting with v17.2, you can invoke the Expression Editor and specify a complex binding expression involving two or more data fields (as you did for calculated fields in earlier versions).
Expressions also enable end-users to evaluate custom summary results without handling script events. Select the range for which to calculate the summary and click the Expression’s property ellipsis button. In the invoked Summary Expression Editor, a new Summary category appears where you can find summary functions whose names start with the "sum" prefix that is added to make it easy to differentiate aggregate functions from report summary ones.
With binding expressions, you are no longer required to create formatting rules and assign them to controls. You can provide conditions for the control’s individual appearance settings or for the style name (in case of multiple appearance changes).
You can specify which binding mode your reports use by setting the static UserDesignerOptions.DataBindingMode property. This property is available in the Report Designer Options dialog in Visual Studio at design time.
Currently, the following binding modes are available:
- Standard Data Bindings – the legacy binding mode available in all previous versions.
- Expressions (simplified) - the default mode used in newer report versions. With this mode, you can solve tasks that previously required you to handle the BeforePrint script event.
- Expressions (advanced) – this mode enables you to provide expressions in both the BeforePrint and PrintOnPage events.
Consider the following cases in which a report cannot be converted:
- A report contains one or more controls bound to a data source, which is not assigned as the report’s data source.
- A report contain a formatting rule, whose data source differs from the report’s data source.
Note that backward conversion of reports (from using expressions back to legacy bindings) is not available.