How to: Pass a Dashboard Parameter to a Calculated Field's Expression in Code

The following example demonstrates how to create a new dashboard parameter and pass it to a calculated field's expression.

In this example, the dashboard connects to the Northwind database and selects data from the 'SalesPerson' table. A new calculated field evaluated at a summary level returns 'true' or 'false' depending on whether on not the average discount exceeds the selected parameter value.

´╗┐using DevExpress.XtraEditors;
using DevExpress.DashboardCommon;
using DevExpress.DataAccess.ConnectionParameters;

namespace Dashboard_ParametersAndCalculatedFileds {
    public partial class Form1 : XtraForm {
        public Form1() {

            Dashboard dashboard = new Dashboard();
            DashboardSqlDataSource dataSource = (DashboardSqlDataSource)dashboard.DataSources[0];
            GridDashboardItem grid = (GridDashboardItem)dashboard.Items[0];

            // Creates a new dashboard parameter.
            StaticListLookUpSettings settings = new StaticListLookUpSettings();
            settings.Values = new string[] { "0.01", "0.05", "0.1" };
            DashboardParameter discountValue = new DashboardParameter("discountValue", 
                typeof(double), 0.05, "Select discount:", true, settings);

            // Creates a new calculated field and passes the created dashboard parameter 
            // to a calculated field expression.
            CalculatedField isGreater = new CalculatedField();
            isGreater.DataMember = "SalesPerson";
            isGreater.Name = "IsGreater";
            isGreater.Expression = "ToStr(Iif(Avg([Discount]) >= [Parameters.discountValue], 'TRUE', 'FALSE'))";

            grid.Columns.Add(new GridMeasureColumn(new Measure("IsGreater")));
            dashboardViewer1.Dashboard = dashboard;

See Also