Back to Devexpress

PivotItemFormatRule Class

dashboard-devexpress-dot-dashboardcommon-dfffe342.md

latest10.2 KB
Original Source

PivotItemFormatRule Class

A format rule used to apply conditional formatting to the Pivot dashboard item.

Namespace : DevExpress.DashboardCommon

Assembly : DevExpress.Dashboard.v25.2.Core.dll

NuGet Package : DevExpress.Dashboard.Core

Declaration

csharp
public class PivotItemFormatRule :
    CellsItemFormatRule,
    IFormatRuleIntersectionLevel,
    IFormatRuleLevel
vb
Public Class PivotItemFormatRule
    Inherits CellsItemFormatRule
    Implements IFormatRuleIntersectionLevel,
               IFormatRuleLevel

Remarks

The Pivot dashboard item allows you to apply conditional formatting to data cells or field value cells. The PivotDashboardItem.FormatRules property provides access to a collection of the PivotItemFormatRule objects that are used to define formatting settings.

To add a new format rule, create the PivotItemFormatRule object and specify the following settings.

Finally, add the created format rule to the GridDashboardItem.FormatRules collection. You can use the DashboardItemFormatRule.Enabled property to specify whether the current format rule is enabled.

Example

The following example demonstrates how to apply conditional formatting to Pivot cells at different detail levels.

csharp
using DevExpress.XtraEditors;
using DevExpress.DashboardCommon;

namespace Pivot_ConditionalFormatting {
    public partial class Form1 : XtraForm {
        public Form1() {
            InitializeComponent();
            Dashboard dashboard = new Dashboard();
            dashboard.LoadFromXml(@"..\..\Data\Dashboard.xml");
            PivotDashboardItem pivot = (PivotDashboardItem)dashboard.Items["pivotDashboardItem1"];

            PivotItemFormatRule firstLevelRule = new PivotItemFormatRule(pivot.Values[0]);
            FormatConditionValue greaterThanCondition = new FormatConditionValue();
            greaterThanCondition.Condition = DashboardFormatCondition.Greater;
            greaterThanCondition.Value1 = 30000;
            greaterThanCondition.StyleSettings =
                new AppearanceSettings(FormatConditionAppearanceType.Green);
            firstLevelRule.Condition = greaterThanCondition;
            firstLevelRule.IntersectionLevelMode = FormatConditionIntersectionLevelMode.FirstLevel;

            PivotItemFormatRule lastLevelRule = new PivotItemFormatRule(pivot.Values[0]);
            FormatConditionRangeGradient rangeCondition =
                new FormatConditionRangeGradient(FormatConditionRangeGradientPredefinedType.WhiteGreen);
            lastLevelRule.Condition = rangeCondition;
            lastLevelRule.IntersectionLevelMode = FormatConditionIntersectionLevelMode.LastLevel;

            PivotItemFormatRule grandTotalRule = new PivotItemFormatRule(pivot.Values[0]);
            FormatConditionRangeSet rangeTotalCondition = 
                new FormatConditionRangeSet(FormatConditionRangeSetPredefinedType.ColorsPaleRedGreenBlue);
            grandTotalRule.Condition = rangeTotalCondition;
            grandTotalRule.IntersectionLevelMode = FormatConditionIntersectionLevelMode.SpecificLevel;
            grandTotalRule.Level.Row = pivot.Rows[0];

            PivotItemFormatRule topCategoryRule = new PivotItemFormatRule(pivot.Values[0]);
            FormatConditionTopBottom topCondition = new FormatConditionTopBottom();
            topCondition.TopBottom = DashboardFormatConditionTopBottomType.Top;
            topCondition.RankType = DashboardFormatConditionValueType.Number;
            topCondition.Rank = 3;
            topCondition.StyleSettings = new IconSettings(FormatConditionIconType.RatingFullGrayStar);
            topCategoryRule.Condition = topCondition;
            topCategoryRule.IntersectionLevelMode = FormatConditionIntersectionLevelMode.SpecificLevel;
            topCategoryRule.Level.Row = pivot.Rows[0];
            topCategoryRule.DataItemApplyTo = pivot.Rows[0];

            pivot.FormatRules.AddRange(firstLevelRule, lastLevelRule, grandTotalRule, topCategoryRule);
            dashboardViewer1.Dashboard = dashboard;
        }
    }
}
vb
Imports DevExpress.XtraEditors
Imports DevExpress.DashboardCommon

Namespace Pivot_ConditionalFormatting
    Partial Public Class Form1
        Inherits XtraForm

        Public Sub New()
            InitializeComponent()
            Dim dashboard As New Dashboard()
            dashboard.LoadFromXml("..\..\Data\Dashboard.xml")
            Dim pivot As PivotDashboardItem = CType(dashboard.Items("pivotDashboardItem1"), PivotDashboardItem)

            Dim firstLevelRule As New PivotItemFormatRule(pivot.Values(0))
            Dim greaterThanCondition As New FormatConditionValue()
            greaterThanCondition.Condition = DashboardFormatCondition.Greater
            greaterThanCondition.Value1 = 30000
            greaterThanCondition.StyleSettings = New AppearanceSettings(FormatConditionAppearanceType.Green)
            firstLevelRule.Condition = greaterThanCondition
            firstLevelRule.IntersectionLevelMode = FormatConditionIntersectionLevelMode.FirstLevel

            Dim lastLevelRule As New PivotItemFormatRule(pivot.Values(0))
            Dim rangeCondition As New FormatConditionRangeGradient(FormatConditionRangeGradientPredefinedType.WhiteGreen)
            lastLevelRule.Condition = rangeCondition
            lastLevelRule.IntersectionLevelMode = FormatConditionIntersectionLevelMode.LastLevel

            Dim grandTotalRule As New PivotItemFormatRule(pivot.Values(0))
            Dim rangeTotalCondition As New FormatConditionRangeSet(FormatConditionRangeSetPredefinedType.ColorsPaleRedGreenBlue)
            grandTotalRule.Condition = rangeTotalCondition
            grandTotalRule.IntersectionLevelMode = FormatConditionIntersectionLevelMode.SpecificLevel
            grandTotalRule.Level.Row = pivot.Rows(0)

            Dim topCategoryRule As New PivotItemFormatRule(pivot.Values(0))
            Dim topCondition As New FormatConditionTopBottom()
            topCondition.TopBottom = DashboardFormatConditionTopBottomType.Top
            topCondition.RankType = DashboardFormatConditionValueType.Number
            topCondition.Rank = 3
            topCondition.StyleSettings = New IconSettings(FormatConditionIconType.RatingFullGrayStar)
            topCategoryRule.Condition = topCondition
            topCategoryRule.IntersectionLevelMode = FormatConditionIntersectionLevelMode.SpecificLevel
            topCategoryRule.Level.Row = pivot.Rows(0)
            topCategoryRule.DataItemApplyTo = pivot.Rows(0)

            pivot.FormatRules.AddRange(firstLevelRule, lastLevelRule, grandTotalRule, topCategoryRule)
            dashboardViewer1.Dashboard = dashboard
        End Sub
    End Class
End Namespace

Inheritance

Object DashboardItemFormatRule CellsItemFormatRule PivotItemFormatRule

See Also

PivotItemFormatRule Members

DevExpress.DashboardCommon Namespace