The Dashboard Designer provides the capability to create calculated fields that allow you to apply complex expressions to data fields that are obtained from the dashboard's data source. You can use these fields in data visualizations as regular data source fields.
Note that calculated fields are not supported for the OLAP data source.
After you have created a data source, you can add a new calculated field based on the existing data source fields.
To create a calculated field, select the required data source (and the required query/data member, if applicable) in the Data Source Browser and click the Add Calculated Field button in the Ribbon's Data Source tab...
...or right-click the Field List and select Add Calculated Field in the context menu.
You can use the following elements in expressions.
After the expression has been specified, click OK. This displays a new calculated field in the data source structure.
Now you can specify the required calculated field type, change its default name, etc.
To edit a calculated field, use its context menu.
This menu contains the following items.
Specifies the type of the calculated field.
Note that the type of a newly created calculated field is detected automatically based on the type of values returned by the specified expression. If you change this type, the expression will be wrapped to a corresponding conversion function (such as ToStr, ToDecimal, ToInt, etc.).
Changes the calculated field name.
Removes the existing calculated field from the data source.
To specify the type of the calculated field, insert the required conversion function (such as ToStr, ToDecimal, ToInt, etc.) into the calculated field's expression (the CalculatedField.Expression property). For instance, the following expression contains the ToDecimal conversion function that is used to change the default field type:
ToDecimal([UnitPrice] * (1 - [Discount]))
After the calculated field has been created, add it to the IDashboardDataSource.CalculatedFields collection of the data source's calculated fields.
The following code snippet shows how to create a new calculated field based on the values of the 'UnitPrice' and 'Discount' data fields, and add it to the existing DashboardSqlDataSource.
using DevExpress.DashboardCommon; //... CalculatedField priceWithDiscount = new CalculatedField("[UnitPrice] * (1 - [Discount])"); priceWithDiscount.DataMember = "SalesPerson"; priceWithDiscount.Name = "Price with discount"; sqlDataSource.CalculatedFields.Add(priceWithDiscount);