Skip to main content

FormattingRule Class

A Formatting Rule object.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v24.1.dll

NuGet Package: DevExpress.Reporting.Core

Declaration

public class FormattingRule :
    DataContainerComponent,
    IDisplayNamePropertyContainer,
    ICloneable

Remarks

FormattingRule objects represent formatting rules in reports, and define logical conditions for changing appearance settings of specific report elements. The XtraReport.FormattingRuleSheet property provides access to a report’s collection of formatting rules. Each control, band or a report itself has a XRControl.FormattingRules property containing rules applied to this element.

See the Conditionally Changing a Control’s Appearance document to learn more.

Note

Formatting rules are only available in the legacy binding mode (when the UserDesignerOptions.DataBindingMode is set to DataBindingMode.Bindings). See Shaping Data using Expression Bindings to learn about the recommended approach to shaping report data.

Example

This example demonstrates how to conditionally change a control’s appearance at runtime. For this, it is necessary to create an instance of the FormattingRule class, specify its FormattingRule.Condition and FormattingRule.Formatting properties and add this object to a report’s sheet of formatting rules (XtraReport.FormattingRuleSheet) and to the collection of formatting rules of a control or a band, to which it should be applied (XRControl.FormattingRules). Note that the same task can be also solved at design time, as described in the Conditionally Changing a Control’s Appearance topic.

using System.Drawing;
using System.Drawing.Printing;
using DevExpress.XtraReports.UI;
// ...

private void XtraReport1_BeforePrint(object sender, CancelEventArgs e) {
    // Create a new rule and add it to a report.
    FormattingRule rule = new FormattingRule();
    this.FormattingRuleSheet.Add(rule);

    // Specify the rule's properties.
    rule.DataSource = this.DataSource;
    rule.DataMember = this.DataMember;
    rule.Condition = "[UnitPrice] >= 30";
    rule.Formatting.BackColor = Color.WhiteSmoke;
    rule.Formatting.ForeColor = Color.IndianRed;
    rule.Formatting.Font = new Font("Arial", 10, FontStyle.Bold);

    // Apply this rule to the detail band.
    this.Detail.FormattingRules.Add(rule);
}

Inheritance

Object
MarshalByRefObject
Component
DevExpress.XtraReports.UI.DataContainerComponent
FormattingRule
See Also