EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

在Visual Studio中创建报告

在本课程中,您将学习如何在集成报告系统中创建报告。该系统基于WinForms和ASP.NET的DevExpress报告库。本课将指导您创建一个报告,该报告显示联系人对象及其名称和电子邮件地址的列表。在WinForms和ASP.NET应用程序中,最终用户都可以使用该报告。

添加XAF模块

  • 将独立于平台的Reports V2模块添加到您的项目中。为此,请在MySolution.Module项目中双击Module.csModule.vb)文件。这将调用模块设计器。在“工具箱”中,导航到DX。19.2:“ XAF模块”组。将ReportsModuleV2项目从该组拖到设计器的“必需的模块”部分。

    ReportsV2_to_Module_cs

  • 将特定于WinForms的Reports V2模块添加到WinForms模块项目中。双击MySolution.Module.Win项目中的WinModule.csWinModule.vb)文件。这将调用模块设计器。在“工具箱”中,导航到DX。19.2:“ XAF模块”组。将ReportsWindowsFormsModuleV2项目从该组拖到设计器的“必需的模块”部分。

    ReportsV2_to_WinApp_cs

  • 将特定于ASP.NET的Reports V2模块添加到ASP.NET应用程序项目中。通过双击MySolution.Module.Web项目中的WebModule.cs(WebModule.vb)文件来调用模块设计器。在“工具箱”中,导航到DX。19.2:“ XAF模块”组。将ReportsAspNetModuleV2项目从该组拖到设计器的“必需的模块”部分。

    ReportsV2_to_WebApp_cs

  • 重建您的解决方案。

如果您将eXpress持久性对象用作ORM,请继续进行下一节(“设计时报告”)。否则,如果您使用Entity Framework Code First,请执行以下步骤。

  • 如设置多对多关系(EF)课程中所示,在DbContext中注册ReportDataV2类型。
  • 双击MySolution.Win \ WinApplication.cs文件以调用“应用程序设计器”。在“模块”窗格中,聚焦“ ReportsModuleV2”组件。在“属性”窗口中,将ReportsModuleV2.ReportDataType属性设置为DevExpress.Persistent.BaseImpl.EF.ReportDataV2
  • MySolution.Web \ WebApplication.cs文件重复上一步。

设计时报告

  • 右键单击MySolution.Module项目,然后选择“添加” |“添加”。新文件夹。将新文件夹的名称设置为“ Reports”。右键单击“报告”文件夹,然后选择“添加” |“添加”。新项目

    New_Report

    注意

    您可以将报告放置在任何文件夹(包括根项目文件夹)中,尽管建议您组织项目文件。

  • 选择DevExpress v 19.2报告,将其命名为“ ContactsReport”,然后点击添加

    New_Report_Dialog

  • 这将调用报告向导。选择空白,然后单击完成

    XtraReport_Wizard

    注意

    空白之外,请勿使用其他报告类型。其他报告类型将不允许您选择特定于XAF的数据源。在“报表设计器”中选择了数据源之后,您将可以稍后继续使用“报表向导

  • 单击完成后,将调用报表设计器。在“工具箱”中,导航到DX。19.2:“ XAF报表数据源”组。将CollectionDataSource项目从该组拖到“报表设计器”窗口。

    CollectionDataSource_to_Report

  • 在“报表资源管理器”窗口中,选择collectionDataSource1项目。在“属性”窗口中,将“ MySolution.Module.BusinessObjects.Contact”值分配给ObjectTypeName属性。请注意“字段列表”窗口中的更改-如果您展开collectionDataSource1节点,Contact类的字段现在可用。

    DataSource_Populate

  • 单击报表设计器智能标记,然后在调用的菜单中选择“报表向导中的设计... ”。

    Report_Designer-Smart_Tag

  • 这将调用报告向导。在第一步中,您应该选择表格报告,然后单击下一步。由于已经指定了数据源,因此您将跳过一些向导屏幕,第二步将允许您选择报告数据。

    Report_Designer0

  • 选择要在报告中使用的字段。检查左侧的collectionDataSource1数据成员,以及右侧的以下数据字段:

    • 电子邮件

    完成后 单击“下一步”

    Report_Wizard_1

  • 选择用于对报告行进行分组的字段。由于在此示例中不需要分组,因此请单击“下一步”继续。

    Report_Wizard_2

  • 在下一步中,您可以自定义报告页面。保持这些设置不变,然后单击“下一步”

    Report_Wizard_4

  • 选择一种报告配色方案,例如Azure,然后单击Next

    Report_Wizard_ColorScheme

  • 在最后一步,您可以设置报告的标题。此文本将显示在报告的顶部。将标题设置为“联系人”,然后单击“完成”

    Report_Wizard_5

  • 您创建的报告结构将显示在“报告设计器”中。自定义并保存报告。

    报告_结构

    注意

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

  • 现在,使用PredefinedReportsUpdater类在XAF应用程序中注册报告。为此,在“解决方案资源管理器”中,右键单击MySolution.ModuleModule.csModule.vb)文件,然后选择查看代码以编辑其源代码。下面的代码段演示了所需的更改。

    using DevExpress.ExpressApp.ReportsV2;
    using MySolution.Module.Reports;
    using MySolution.Module.BusinessObjects;
    //...
    namespace MySolution.Module {
        public sealed partial class MySolutionModule : ModuleBase {
            //...
            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<ContactsReport>(
                "Contacts Report", typeof(Contact));
                return new ModuleUpdater[] { updater, predefinedReportsUpdater };
            }
            //...
        }
    }
    
  • 运行WinForms或ASP.NET应用程序,导航到“报告”并打开“联系人报告”

    ReportV2_OK

    ReportV2_Web_OK

注意
  • 预定义的报告在运行时不可编辑,但是您可以编辑报告的副本(请参阅“修改现有报告”)。
  • 可以根据最终用户定义的参数对报告数据进行排序过滤

下一课: 在运行时创建报告

相关文章

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