EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:保留报表后执行自定义代码

本主题描述如何自定义ReportsStorage类。假设您有一个自定义的ReportDataV2类,并添加了ModifiedBy属性,该属性应返回上次编辑报表布局的用户的名称。每次保存报表布局时,您都需要更新此属性值。为此,请自定义ReportsStorage并注册自定义实现。下面的步骤演示了如何执行此操作。

注意

移动平台不支持本主题中描述的方法。

  • 继承ReportsStorage类,并重写其ReportsStorage.SaveReport方法。

    using DevExpress.XtraReports.UI;
    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.ReportsV2;
    using DevExpress.ExpressApp.Security;
    // ...
    public class CustomReportsStorage : ReportsStorage {
        public override void SaveReport(IReportDataV2Writable reportData, XtraReport report) {
            if (reportData is MyReportDataV2) {
                ISecurityUser currentUser = SecuritySystem.CurrentUser as ISecurityUser;
                if (currentUser != null) {
                    ((MyReportDataV2)reportData).ModifiedBy = currentUser.UserName;
                }
            }
            base.SaveReport(reportData, report);
        }
    }
    
  • 编辑Module.csModule.vb)文件,并重写ModuleBase.Setup方法。在此方法中,将CustomReportsStorage的实例分配给静态ReportDataProvider.ReportsStorage属性。

    using DevExpress.ExpressApp.ReportsV2;
    // ...
    public override void Setup(XafApplication application) {
        ReportDataProvider.ReportsStorage = new CustomReportsStorage();
        base.Setup(application);
    }
    

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