本文档阐述了在 XtraReports 中实现附条件的格式设置。 附条件的格式设置是为报表元素 (带区 或 控件) 规定外观属性的功能,并在符合某些条件时被应用。 换句话说,此功能允许改变符合特定条件的报表元素的外观 (及可视性)。 本文档也说明了如何管理、定制和应用格式设置规则,并列出了使用条件格式来执行不同任务的示例。
下面的插图展示了一个可行的条件格式的实现 —— 如果当前价格高于 $20,就突出该显示数据行。
本文档被划分为下列小节:
创建格式设置规则
在一般情况下,格式设置规则 包含了一组格式设置属性、以及确定什么时候把格式设置应用于控件的逻辑条件。
在 XtraReports 中,格式设置规则是由 FormattingRule 类型的对象表示的。 这些对象被存储在报表的由 XtraReport.FormattingRuleSheet 属性返回的集合中。 在设计时刻,可以单击此属性的省略号按钮,来调用 Formatting Rule Sheet Editor。
使用此编辑器,可以以下列方式管理和定制格式设置规则: 新建规则 (使用 按钮)、删除选中的规则 (使用 按钮)、删除报表中的全部规则 (使用 按钮) 以及只删除未使用的规则 (使用 按钮)。 后者的意思是只删除那些在任何报表元素的集合中都无法找到的规则。
由当前格式设置规则指定的格式,是通过 FormattingRule.Formatting 属性指定的。 此属性返回的 Formatting 对象包含了一组外观选项 (例如 BackColor、ForeColor、Font 等等),并且 Formatting.Visible 属性可以用于 有条件地排除报表元素。
注意 |
---|
注意,如果没有设置 Formatting 对象的任何一个属性,那么当应用此格式设置规则时,控件的相应属性不会被改变。 |
此编辑器也允许为待应用的规则指定要满足的逻辑条件。 要指定条件,则单击规则的 FormattingRule.Condition 属性的省略号按钮,然后 Condition Editor(条件编辑器) 将出现。 “条件编辑器”允许为待应用的格式设置规则,轻松指定一个要满足的 Boolean 表达式。
注意,在 Condition Editor 中,支持许多 函数,允许轻松执行不同的 字符串、日期时间、逻辑 和 数学 数据运算。
在完成格式设置规则条件的构造之后,单击 OK 按钮。 注意,如果输入的条件不是 Boolean 型的,那么将出现下列错误,意味着应该重新编写条件。
也要注意,如果需要在构造的表达式中使用数据字段,那么应该指定规则的 FormattingRule.DataSource 和 FormattingRule.DataMember 属性。 在默认情况下,它们都被设置为 null (在 Visual Basic 中为 Nothing),表示使用报表的 XtraReportBase.DataSource 和 XtraReportBase.DataMember 属性来为表达式获得数据字段。
注意 |
---|
我们推荐您 始终 指定格式设置规则的数据源和数据成员,从而避免形成错误结果。 |
应用格式设置规则
每个控件、带区或报表本身都有一个 XRControl.FormattingRules 属性,通过此属性可以访问报表的格式设置规则集合。 在设计时刻,要管理此集合,则可以使用 Formatting Rules Editor; 可以通过单击属性的省略号按钮来调用此编辑器。 在编辑器左侧的列表中,可以看到在报表中的所有可用规则。 要为控件应用某条规则,则把此规则移动到右侧的列表中。
注意 |
---|
注意,此对话框包含了一个 Edit Rule Sheet(编辑规则表)... 按钮,可以用于调用 Formatting Rule Sheet Editor,而不需要通过 XtraReport.FormattingRuleSheet 属性来调用。 |
由于格式设置规则被存储在报表的 XtraReport.FormattingRuleSheet 集合中,因此可以把相同的规则应用于同一报表中任意数目的报表元素。 此外,这意味着,即使从控件的集合中删除某条规则,但仍然保存在报表的规则表中。 因此,如果需要,又可以把此规则指派到另一个报表元素。 并且,当从报表的规则表中删除某条规则时,将从所有指派了此规则的控件的规则表中删除它。
当报表文档被生成、并且某个控件或带区规定了它的外观时,在 XRControl.FormattingRules 集合中的所有格式设置规则都会计算其 FormattingRule.Condition 属性值,如果为 true,则把 FormattingRule.Formatting 应用于该控件或带区。 注意,由格式设置规则规定的外观有最高的优先级,因此会取代由报表元素的 外观属性 和 样式 指定的外观。
要为选中的规则指定执行的先后顺序,则在“Formatting Rules Editor”编辑器右侧的列表中重新排列它们的顺序,这可以通过使用“向上箭头”和“向下箭头”按钮来完成。 那样,就以列表中相同的顺序来应用这些规则,并且列表中最后一条规则有最高的优先级。 如果规则的 Formatting 的某个属性没有被设置 (缺省),那么就从 Condition 为 true 的前面的格式设置规则的相应属性获得该取值。 注意,可以通过 FormattingRuleCollection.Style 和 FormattingRuleCollection.Visible 属性,来获得对某个控件应用若干条格式设置规则之后、形成的外观和可视性。
示例
本文档包含了几个示例,这些示例演示了在 XtraReports 中使用条件格式功能的多种技术。 在下面列出了这些示例。
-
如何: 有条件地改变控件的外观
这个示例展示了如何根据某个逻辑条件,来改变控件的外观。 -
如何: 有条件地筛选数据
这个示例展示了如何从报表中剔除不满足某个逻辑条件的数据。 -
如何: 有条件地排除控件
这个示例展示了如何使用条件格式来排除控件。 -
如何: 限定每个页面的记录数
这个示例展示了如何使用条件格式来限制每页中的记录数。