EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

创建预定义的静态报表

本主题介绍如何在设计时创建XtraReport并进行注册。已注册的报告将添加到应用程序的“报告列表”视图中。用户无法修改这些预定义的报告。但是,用户可以使用“复制预定义的报告操作”复制预定义的报告,然后修改副本。请按照以下步骤创建XtraReport并将其注册以与Reports V2模块一起使用。

  1. 空添加XtraReport使用您的模块项目的DevExpress诉19.2报表项目项模板(见报表向导)。选择清空报告,然后点击完成

    XtraReport_Wizard

  2. 可以在XAF兼容XtraReport类中使用的数据源组件是CollectionDataSourceViewDataSourceReports V2不支持其他数据源。这些组件在DX中可用。19.2: Visual Studio Toolbox的XAF Data Sources for Reports组。将CollectionDataSource组件从“工具箱”中拖动到创建的报表中。

    ReportsV2_DataSourcesToolbox

    注意

    您可以使用ViewDataSource组件代替CollectionDataSource。在报表的数据源V2主题中描述了这些组件之间的区别。

  3. 在“属性”窗口中,将CollectionDataSource组件的ObjectTypeName属性设置为将在报表中显示的业务类的名称。结果,业务类属性将被添加到“字段列表”窗口中。

    DataSource_Populate

  4. 将必填字段拖到报表中,或运行报表向导以自动生成所需的标记。

    Report_Designer-Smart_Tag

    要了解有关报表设计的更多信息,请参阅报表文档(请参阅报表设计器报表向导)。请注意,CollectionDataSourceViewDataSource组件不向设计器提供实际数据。它们仅提供字段列表。这就是为什么您不能在设计时预览报告的原因。

    注意
    • 在设计时,“报表设计器”的“预览”选项卡为空。的CollectionDataSourceViewDataSource组件不连接到数据库直接并且需要IObjectSpace实例(也可以在运行时被创建只)来装载数据。因此,它无法在设计时加载数据。

    • 当前,在设计时,“自定义字段”在报表设计器中不可用。
  5. 保存报告后,在XAF应用程序中注册它。实例化PredefinedReportsUpdater类,并使用PredefinedReportsUpdater.AddPredefinedReport <T>方法添加报告。然后,修改模块的ModuleBase.GetModuleUpdaters方法,并将PredefinedReportsUpdater对象添加到此方法的结果数组中(最初,该数组包含单个默认更新程序)。为此,如下所示编辑Module.csModule.vb)文件。

    using DevExpress.ExpressApp.ReportsV2;
    // ...
    public override IEnumerable<ModuleUpdater> GetModuleUpdaters(
        IObjectSpace objectSpace, Version versionFromDB) {
        ModuleUpdater updater = new DatabaseUpdate.Updater(objectSpace, versionFromDB);
        PredefinedReportsUpdater predefinedReportsUpdater = 
            new PredefinedReportsUpdater(Application, objectSpace, versionFromDB);
        predefinedReportsUpdater.AddPredefinedReport<XtraReport1>("Contacts Report", typeof(Contact));
        return new ModuleUpdater[] { updater, predefinedReportsUpdater };
    }
    
    注意

    默认情况下,每个新的PredefinedReportsUpdater实例都会删除未在该实例中注册的预定义报告。如果您在多个模块中实现报表,并且需要在单个应用程序中创建多个PredefinedReportsUpdater对象,请将每个更新程序的PredefinedReportsUpdater.UseMultipleUpdaters属性设置为true

运行应用程序(WinForms或ASP.NET)。请注意,设计的XtraReport在“报告列表”视图中可用。用户可以双击报告以在“打印预览表单”中对其进行预览。

ReportsV2_Preview

如果要跳过预览对话框,请参考“如何:在不显示预览的情况下打印报告”示例。

重点

当您使用可能会被最终用户修改的脚本创建预定义的报告时,请勿直接使用XtraReport事件。而是使用“报表设计器”中的XtraReport.Scripts和/或XRControl.Scripts属性,如“脚本概述”主题中所示。否则,您的代码将不会使用“复制预定义的报告操作”复制到用户脚本。如果使用此方法,则将对脚本中使用的程序集的引用添加到XtraReport.ScriptReferences财产。应用程序中使用的程序集将自动附加到脚本。如果在评估脚本时来自此类程序集的类导致错误,请使用完全限定的名称,或者在脚本的开头添加using(在VB中导入)指令。

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