本文档阐述了把图表自动桥接 (链接) 到透视网格的功能,列出了在链接之后自动指定的选项,并且说明了人工定制的事件处理程序。
本文档由下列小节组成。
功能概述
在应用程序中,XtraCharts 和 PivotGridControl 都能很好地相互适于配对。 而在这两个控件中,每个控件都提供了一组特殊的相关选项,在控件之间也共享某些公共属性。 这允许轻松把这两个控件部署为一个包 (或者一个 透视图表),只需要把透视网格指定为图表的数据源,很少需要或根本不需要人工调整两者,来达到最可行的结果。
对于 ASP.Net 和 XtraReports,把 WebChartControl 桥接到 ASPxPivotGrid 和 XRChart with XRPivotGrid 的类似功能也是可行的。
在把 PivotGridControl 对象实例指派到 ChartControl.DataSource 属性 (或把 ASPxPivotGrid 指派到 WebChartControl 的ASPxDataWebControlBase.DataSourceID 属性) 之后,图表自动取回透视网格的数据。可以使用在下列小节中列出的选项,来改变输入数据的布局: 数据源选项。
另外,在把透视网格的实例指定为图表的数据源之后,下列两个属性 自动 调整此桥接: ChartControl.AutoBindingSettingsEnabled 和 ChartControl.AutoLayoutSettingsEnabled。 如果需要,那么每个受这些自动选项影响的设置,都可以在对应的事件处理程序中进行调整。 在下面的小节中进行了详细说明: 自动设置特写。
数据源选项
PivotGridDataSourceOptions 对象 —— 由 ChartControl.PivotGridDataSourceOptions (WebChartControl.PivotGridDataSourceOptions) 属性返回 —— 包含了那些确定被桥接图表和透视网格的公共行为的设置。 此属性被链接到关联透视网格的 PivotGridControl.OptionsChartDataSource 属性,并且为关联控件同步更改选项。
在下面列出了这些设置。
-
输入数据的格式:
-
透视总计的处置:
- PivotGridDataSourceOptions.RetrieveColumnCustomTotals;
- PivotGridDataSourceOptions.RetrieveColumnGrandTotals;
- PivotGridDataSourceOptions.RetrieveColumnTotals;
- PivotGridDataSourceOptions.RetrieveRowCustomTotals;
-
系列和点的数目的限制:
-
其他选项:
- PivotGridDataSourceOptions.SelectionOnly
此选项仅对 Windows 窗体 ChartControl 可用,并且指定是否在图表中只呈现被选中的单元格;- PivotGridDataSourceOptions.UpdateDelay
此选项仅对 Windows 窗体 ChartControl 可用,并且指定在选中透视网格项、和在图表中反映更新这二者之间的延迟时间间隔;- PivotGridDataSourceOptions.SinglePageOnly
此选项仅对 ASP.Net WebChartControl 可用,并确定是显示所有透视网格数据,还是只显示当前页面的数据。
自动设置
自动绑定设置
ChartControl.AutoBindingSettingsEnabled (WebChartControl.AutoBindingSettingsEnabled) 属性自动调整下列选项。
- ChartControl.SeriesDataMember;
- 系列模板 的 SeriesBase.ArgumentDataMember、SeriesBase.ValueDataMembers、SeriesBase.ArgumentScaleType 和 SeriesBase.ValueScaleType 属性;
- 透视网格的 PivotGridOptionsChartDataSourceBase.FieldValuesProvideMode 属性。
注意 |
---|
要修改这些设置,则接管在应用这些设置之后发生的 ChartControl.CustomizeAutoBindingSettings 事件。 |
自动布局设置
ChartControl.AutoLayoutSettingsEnabled (WebChartControl.AutoLayoutSettingsEnabled) 属性为主要的图象类型自动调整图表的不同布局。
-
如果参数的刻度类型是 日期时间,那么 X 轴的 AxisBase.DateTimeMeasureUnit 和 AxisBase.DateTimeGridAlignment 属性被设置为数据点的最小度量单位。
类似于这些设置,DateTimeOptions.Format 和 DateTimeOptions.FormatString 属性也被设置。
此外,如果参数有不同的日期时间度量单位 (例如年度和月份),那么 刻度分隔线 (其 ScaleBreakOptions.Style 属性被设置为 Straight,并且 ScaleBreakOptions.SizeInPixels 属性被设置为 -1) 就被插入到 X 轴的 范围 中。 这样会隐藏数据点之间占用的空白区 (例如在下一个点出现之前,月份刻度中的一个年度点有 11 个空白月份,并且刻度分隔线将隐藏此间隔)。
注意 在应用这些设置之后,ChartControl.BoundDataChanged 事件被触发。
X 轴 标签 的文本受度量单位设置 (例如年、月或日) 的影响,并且隐藏过量的标签。
AxisLabel.Staggered 属性被启用,如果 轴刻度类型 是 Qualitative 或 DateTime (除去 年度 之外),并且标签方向与轴方向平行 (例如,AxisLabel.Angle 为 0 时图象不被旋转,为 90 时则图象被旋转)。
注意 在设置 X 轴的 AxisLabel.Staggered 属性之后,ChartControl.CustomizeXAxisLabels 事件被触发。
-
对于简单图象,仅当图表只有一个 自动创建的系列 时,或者所有自动创建系列的点的数目都相等时,以及一个或多个系列包含来源于另一个系列的所有 (非空) 点 (只有此系列出现在图例中) 时,图例 才可视。
对于自动创建系列的 SeriesBase.LegendPointOptions 属性,PointOptions.PointView 属性被设置为 Argument。 如果图例可视,那么每个自动创建系列的 SeriesBase.PointOptions 的 PointOptions.PointView 属性就被设置为 Values 或 ArgumentAndValues。 对于 饼和圆环 系列, PieSeriesLabel.Position 属性被设置为 TwoColumns。 并且,每个自动创建系列都伴有 标题,标题的 Title.Text 属性被设置为系列的名称。
注意 在应用这些设置之后,ChartControl.BoundDataChanged 事件被触发。
另外,SimpleDiagram.LayoutDirection 属性值被设置为 Horizontal,并且 SimpleDiagram.Dimension 属性被自动计算为最合适的值。
注意 在应用上述设置之前,ChartControl.CustomizeSimpleDiagramLayout 事件被触发。
对于这两种图象类型的 系列标签,SeriesLabelBase.ResolveOverlappingMode 属性被设置为 Default (如果可能),或者被设置为 HideOverlapped (对于当前图象的大小而言,标签数目过多)。
注意 |
---|
在更新此属性之前,ChartControl.CustomizeResolveOverlappingMode 事件被触发。 |
最后,图表图例的 Legend.MaxHorizontalPercentage 和 Legend.MaxVerticalPercentage 属性被自动设置为最合适的值。
注意 |
---|
在更新上述属性之前,ChartControl.CustomizeLegend 事件被触发。 |