EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

带有大型数据源的仪表(Dashboard)板性能

本主题列出了在仪表板绑定到大量对象的情况下可以用来提高性能并减少内存消耗的方法。

注意

此处列出的提示是可选的。除非您发现性能下降,否则无需使用它们。

限制仪表板设计器中加载的对象数量

如果在设计仪表板时不需要观察整个数据集,则可以使用DashboardDataProvider.TopReturnedRecordsInDesigner属性来限制已加载对象的数量。要访问DashboardDataProvider对象,请使用静态DashboardsModule.DataProvider属性。要更改此属性值,请将以下代码添加到在Module.cs(Module.vb)文件中声明的与平台无关的模块的构造函数中。

using DevExpress.ExpressApp.Dashboards;
// ...
DashboardsModule.DataProvider.TopReturnedRecordsInDesigner = 100;

在WinForms仪表板设计器中禁用自动更新

当您在WinForms仪表板设计器中执行数据感知操作时,仪表板会将查询发送到数据源,并根据返回的数据自动更新自身。根据每次更改更新仪表板可能会花费大量时间。在这种情况下,您可以禁用自动更新,并在需要时手动更新仪表板(请参阅自动和手动更新)。

使用参数过滤数据

当您筛选仪表板数据源时,标准将在服务器端应用,这将减少加载的数据量。请参阅以下主题,以了解如何应用过滤器。

WinForms:

ASP.NET:

使用DataView模式

要检索数据记录的轻量级只读列表而不是加载持久对象的集合,请继承DashboardDataProvider并重写CreateViewService方法。

using DevExpress.ExpressApp.Dashboards;
// ...
public class CustomDashboardDataProvider : DashboardDataProvider {
    protected override IObjectDataSourceCustomFillService CreateViewService(IDashboardData dashboardData) {
        if(dashboardData.Title == "Sales Overview") {
            return new DashboardViewDataSourceFillService();
        }
        return base.CreateViewService(dashboardData);
    }
}

然后,使用静态DashboardsModule.DataProvider属性注册自定义仪表板数据提供程序。要更改此属性的值,请将以下代码添加到在Module.cs(Module.vb)文件中声明的与平台无关的模块的构造函数中。

using DevExpress.ExpressApp.Dashboards;
// ...
DashboardsModule.DataProvider = new CustomDashboardDataProvider();

使用SQL数据源

创建仪表板时,可以使用SQL数据源而不是XAF对象数据源。在这种情况下,您将绕过对象空间和ORM数据层直接访问数据。在大多数情况下,这将提高性能。但是,将忽略在业务类中实现的自定义逻辑(例如,计算所得的属性)。安全系统的限制也将被忽略。

由于安全原因,已禁用将非XAF数据源的凭据保存在仪表板中的功能。您需要手动提供此类数据源的凭据(请参阅如何:使用外部数据源时为仪表板模块提供凭据)。

转载保留此链接,注明出处