商信互联
图表模块包含列表编辑器,使您可以使用DevExpress中的XtraCharts库可视化数据。该XtraCharts库是专为WinForms和ASP.NET,并为您提供一套全面的2D和3D图表,以解决广泛的业务需求提供方便。图表模块针对XAF应用程序采用了这些控件,因此您可以轻松地可视化数据。本主题介绍“图表”模块的基础。
图表模块由三个模块项目表示。
包含XAF中的WinForms和ASP.NET图表都使用的基类和接口。
您可以将此模块添加到与平台无关的模块中。为此,调用模块设计器并将ChartModule从“工具箱”拖动到RequiredModules面板。在Designer中进行更改后,请确保重新生成解决方案。结果,ChartSettings节点将被添加到应用程序模型中的每个ListView节点。
添加对DevExpress.ExpressApp.Chart.v 19.2 .dll和DevExpress.ExpressApp.Chart.Win.v 19.2 .dll程序集的引用。
您可以将此模块添加到WinForms模块中。为此,调用模块设计器并将ChartWindowsFormsModule从“工具箱”拖动到RequiredModules面板。或者,您可以将此模块添加到WinForms应用程序项目中。为此,调用应用程序设计器并将ChartWindowsFormsModule从“工具箱”拖到“模块”面板。在Designer中进行更改后,请记住要重新构建解决方案。结果,可以选择特定于WinForms的图表列表编辑器作为“应用程序模型”中的IModelListView.EditorType值。
添加对DevExpress.ExpressApp.Chart.v 19.2 .dll和DevExpress.ExpressApp.Chart.Web.v 19.2 .dll程序集的引用。
您可以将此模块添加到ASP.NET应用程序项目中。为此,调用应用程序设计器并将ChartAspNetModule从“工具箱”拖到“模块”面板。或者,您可以将此模块添加到ASP.NET模块中。要做到这一点,调用模块设计并拖动ChartAspNetModule从工具箱到RequiredModules面板。在Designer中进行更改后,请记住要重新构建解决方案。结果,可以选择特定于ASP.NET的图表列表编辑器作为“应用程序模型”中的IModelListView.EditorType值。
使用解决方案向导创建新的XAF解决方案时,可以将模块添加到应用程序中。为此,请在“选择其他模块”步骤中选择模块。
如何:将列表视图显示为图表主题中提供了使用“图表”模块的分步指南。此处描述的图表列表编辑器在Feature Center演示的“列表编辑器”部分中进行了演示。默认情况下,Feature Center演示安装在%PUBLIC%\ Documents \ DevExpress演示19.2 \ Components \ eXpressApp Framework \ FeatureCenter中。该演示的ASP.NET版本可从http://demos.devexpress.com/XAF/FeatureCenter/在线获得。
图表模块提供了两个列表编辑- ChartListEditor的WinForms和ASPxChartListEditor为ASP.NET。这些列表编辑器基于WinForms图表控件和ASP.NET图表控件,并将列表视图显示为图表。
要将某个列表视图显示为图表,请在为WinForms或ASP.NET模块项目调用的模型编辑器中找到该列表视图的节点,然后将IModelListView.EditorType属性值更改为DevExpress.ExpressApp.Chart.Win.ChartListEditor或DevExpress .ExpressApp.Chart.Web.ASPxChartListEditor。
WinForms和ASP.NET图表控件都可以在“应用程序模型”中进行配置。调用模型编辑器,导航到所需的列表视图的ChartSettings节点,然后单击“设置”属性的省略号按钮()。这将调用图表设计器。如果在与平台无关的模块中调用“模型编辑器”,则在“图表设计器”中指定的设置将同时应用于WinForms和ASP.NET图表控件。
在WinForms应用程序中,当列表视图的ChartSettings节点的应用程序模型的ICustomizationEnabledProvider.CustomizationEnabled属性设置为true时,最终用户还可以在运行时调用设计器,并使用图表的上下文菜单将设置重置为其默认值。
运行时设置将保存为用户差异(默认情况下,Model.User.xafml文件)。
WinForms和ASP.NET图表控件都有许多设置,这些设置在“图表向导”中不可用,但是可以通过访问图表控件属性直接在代码中进行更改。此外,您可能希望通过处理控件的事件来更改图表行为。要使用代码访问图表控件实例,请实现一个View Controller,获取当前的List Editor,并处理ListEditor.ControlsCreated事件。
public class MyController : ViewController<ListView> {
protected override void OnActivated() {
base.OnActivated();
View.Editor.ControlsCreated = Editor_ControlsCreated;
}
void Editor_ControlsCreated(object sender, EventArgs e) {
ChartControl chart = View.Editor.Control as ChartControl;
if(chart != null) {
// Place your chart configuration code here.
}
}
}
Public Class MyController
Inherits ViewController(Of ListView)
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
AddHandler View.Editor.ControlsCreated, AddressOf Editor_ControlsCreated
End Sub
Private Sub Editor_ControlsCreated(ByVal sender As Object, ByVal e As EventArgs)
Dim chart As ChartControl = TryCast(View.Editor.Control, ChartControl)
If chart IsNot Nothing Then
' Place your chart configuration code here.
End If
End Sub
End Class
上面的代码用于WinForms图表控件。应将其放置在WinForms模块项目中。要访问ASP.NET图表控件,请将Controller放置在ASP.NET模块项目中,然后将图表对象转换为WebChartControl而不是ChartControl。要了解有关图表控件的更多信息,包括其属性和事件,请参阅ChartControl和WebChartControl文档。请注意,这些类驻留在DevExpress.XtraCharts.v 19.2 .UI.dll和DevExpress.XtraCharts.v 19.2 .Web.dll程序集中,因此您应该添加相应的引用来编译上面的代码。
由于图表列表编辑器实现了IExportable接口,因此可以使用ExportController.ExportAction操作导出图表,并使用PrintingController.PrintAction操作进行打印。您可以通过处理ExportController和PrintingController类的事件来自定义这些动作的行为(请参阅如何:自定义打印系统的导出选项和如何:自定义导出动作行为)。
在WinForms应用程序中打印和导出操作:
WinForms应用程序中的打印预览:
在ASP.NET应用程序中的导出操作: