本指南描述了有 XRChart 图表控件的报表的创建步骤,该图表控件被绑定到数据,从而使特定系列有它自己的数据源和其他设置。
本示例描述了如何构造选定类别的产品及其单价的图表,其中使用了 Northwind 示例数据库 (与 XtraReports 套件安装一起提供的nwind.mdb 文件) 中的数据。 注意,在本例中,“系列”的数据只有一个数据源,从而简化此项目。 但是因为“系列”可以被独立绑定到数据,因此如果需要,则可以为不同的系列使用不同的数据源。
要把有数据绑定系列的图表添加到报表中,则执行下列操作。
创建应用程序并添加图表
-
启动 MS Visual Studio (2005、2008 或 2010),并且新建一个或者打开一个现有的 Windows 窗体应用程序。
-
添加新空白报表 到项目中。
-
把 XRChart 控件从 DX.10.2: Report Controls 工具栏标签页中拖放到 Detail(细节) 带区。 要获得更多关于此控件的信息,请参阅 图表概述 主题。
注意 注意,在这种情况下 Chart Wizard(图表向导) 将可能被调用 (如果启用了它的 “Show wizard every time a new chart is added[每当添加新图表时都显示向导]” 选项)。 在本例中,我们不需要使用向导,因此单击 取消(Cancel) 按钮来关闭向导窗口,并开始人工定制 XRChart。
把图表绑定到数据
-
为了创建图表的数据源,选中 XRChart 控件,并调用它的 智能标记。 然后,打开 XRChart.DataSource 属性的下拉列表并单击 Add a dataset to the project(添加数据集到项目中) 链接。
-
一个允许选择绑定数据源的对话框出现。
选择 数据库(Database) 类型,单击 下一步(Next) 按钮。
-
在接下来的页面中,指定 nwind 数据库的路径。 要这样做,则单击 New Connection(新建连接) 按钮,在弹出的“添加连接”对话框中,把 Microsoft Access Database File (OLE DB) 设置为数据源,单击 Browse(浏览) 按钮并在硬盘上找到 nwind.mdb 文件(nwind.mdb 文件位于 DevExpress 演示 的安装目录)。
单击 确定 按钮 (关闭“添加连接”对话框),然后单击 下一步(Next) 按钮。
注意 如果询问您是否把数据文件复制到项目中,那么请单击 否。
在接下来的页面中单击 下一步(Next) 按钮,把所创建的连接字符串保存到配置文件中。
-
下一个页面允许你选择需要从数据库中获取哪些表。 选中 "Products" 表并单击 Finish(完成) 按钮。
在执行上述步骤之后,nwindDataSet1 对象就被指派到 XRChart.DataSource 属性、并且 productsTableAdapter 对象被指派到 XRChart.DataAdapter 属性。 意思是 XRChart 已被绑定到数据。
注意 |
---|
要确保在执行完这些步骤之后,根报表的 XtraReportBase.DataSource 属性被设置为 null (在 Visual Basic 中为 Nothing)。 如果此属性偶然被设置为相同的数据源,由于已经被指派到 XRChart 控件,因此报表的细节带区将被打印与数据源中的行数相同的次数。 |
指定系列数据源
-
为了把“系列”添加到图表并指定它的数据绑定属性,可使用 Series Collection Editor(系列集合编辑器)。 通过 属性 窗口或 XRChart 智能标记的 Series... 项都可以调用它。
通过单击 Add(添加)... 按钮并选择 Bar(条形图) 视图来创建第一个系列 (命名为"Series1"), 使用 Point(点状图) 视图类型创建第二个系列(命名为 "Series2")。 切换到该编辑器窗口右侧的 属性 标签页。
可以看到,图表正在显示数据,尽管“系列”的数据源还没有定义。 这是由 XRChart 使用的演示数据,用于使您对提供真实数据之后的图表外观有一些了解。
-
把 Series1 的 XRChart.DataSource 属性设置为 productsBindingSource、SeriesBase.ArgumentDataMember 属性设置为 ProductName、SeriesBase.ValueDataMembers 属性设置为 UnitPrice。
对 Series2 重复相同的指派。
-
注意,在此步骤之后,会有太多的数据点,并且图表看起来很混乱。 SeriesBase.DataFilters 属性被设计用于限制所显示数据点的数目,可以把筛选标准指派到该属性。 通过单击,选中图表中的 Series1,然后在 属性 窗口中选择 DataFilters 项,来调用 Data Filter Collection Editor(数据筛选集合编辑器)。
单击 Add(添加) 按钮添加一个标准。 我们只显示 Category No. 4 的数据。 要这样做,则填写 ColumnName 和 Value 参数,如下所示:
为 Series2 重复相同的操作,也就是说,选中它的 DataFilters 属性,添加一个筛选并把 ColumnName 属性设置为 "CategoryID"、把 Value 属性设置为 "4"。
定制图表
为了改善图表的外观,需要作出下列调整。
-
移除图表的图例,因为它为系列显示相同的数据。 要这样做,则把图表的 Legend.Visible 属性设置为 false。
-
Series1 的点标签是不必要的,因此把 Label.Visible 属性设置为 false。
-
定制 Series2 标记的外观。 通过 View.PointMarkerOptions.Kind 属性把默认的圆形替换为倒三角形,并把它的尺寸设置为 12。
-
旋转 X-轴标签,使之更易读。 通过鼠标单击而选中图表中的 AxisX 项,并调整其标签的属性 (通过 Label 属性)。 例如,如果 Angle(角度) 属性值被设置为 20、且 Antialiasing(平滑) 属性值被设置为 true,那么标签的外观就整洁了。
如有需要,还可以定制图表的其他许多属性,此处不再赘述。
查看运行结果
在下面的插图中显示了结果。