In this lesson, you will learn how to create reports in the integrated reporting system. This system is based on the DevExpress Reporting library for WinForms and ASP.NET. This lesson will guide you through creating a report that shows a list of Contact objects with their names and email addresses. Report will be available to end-users in both WinForms and ASP.NET applications.

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

Adding XAF Modules 添加 XAF 模块

  • Add the platform-independent Reports V2 module to your project. To do this, double-click the Module.cs (Module.vb) file in the MySolution.Module project. This will invoke the Module Designer. In the Toolbox, navigate to the DX.19.2: XAF Modules group. Drag the ReportsModuleV2 item from this group to the Designer's Required Modules section.

  • 将独立于平台的报表 V2 模块添加到项目中。为此,双击 MySolution.module 项目中的Module.cs(Module.vb)文件。这将调用模块设计器。在工具箱中,导航到 DX.19.2:XAF 模块组。将报表模块V2项从该组拖动到"设计器的必需模块"部分。

  • Add a WinForms-specific Reports V2 module to your WinForms module project. Double-click the WinModule.cs (WinModule.vb) file in the MySolution.Module.Win project. This will invoke the Module Designer. In the Toolbox, navigate to the DX.19.2: XAF Modules group. Drag the ReportsWindowsFormsModuleV2 item from this group to the Designer's Required Modules section.

  • 将特定于 WinForms 的报告 V2 模块添加到 WinForms 模块项目中。双击 MySolution.module.win 项目中的WinModule.cs(WinModule.vb)文件。这将调用模块设计器。在工具箱中,导航到 DX.19.2:XAF 模块组。将"报告窗口窗体模块V2"项目从该组拖动到"设计器所需的模块"部分。

  • Add the ASP.NET-specific Reports V2 module to your ASP.NET application project. Invoke the Module Designer by double-clicking the WebModule.cs (WebModule.vb) file in the MySolution.Module.Web project. In the Toolbox, navigate to the DX.19.2: XAF Modules group. Drag the ReportsAspNetModuleV2 item from this group to the Designer's Required Modules section.

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

  • Rebuild your solution.
  • 重建解决方案。

If you are using eXpress Persistent Objects as your ORM, proceed to the next section (Design-Time Reporting) section. Otherwise, if you use Entity Framework Code First, execute the following steps.

如果使用 eXpress 持久对象作为 ORM,请继续下一节(设计时间报告)部分。否则,如果使用实体框架代码,请先执行以下步骤。

  • Register the ReportDataV2 type in the DbContext as shown in the Set a Many-to-Many Relationship (EF) lesson.
  • 在 DbContext 中注册 ReportDataV2 类型,如"设置多对多关系 (EF)"一课所示。
  • Double-click the MySolution.Win\WinApplication.cs file to invoke the Application Designer. In the Modules pane, focus the ReportsModuleV2 component. In the Properties window, set the ReportsModuleV2.ReportDataType property to DevExpress.Persistent.BaseImpl.EF.ReportDataV2.
  • 双击 MySolution.Win_Win应用程序.cs 文件以调用应用程序设计器。在"模块"窗格中,聚焦报表模块V2组件。在"属性"窗口中,将"报表模块V2.报表数据类型"属性设置为 DevExpress.持久.BaseImpl.EF.ReportDataV2。
  • Repeat the previous step for the MySolution.Web\WebApplication.cs file.
  • 对 MySolution.Web_Web 应用程序.cs 文件重复上一步。

Design-Time Reporting

设计-时间报告

  • Right-click the MySolution.Module project and select Add | New Folder. Set the name of the new folder to "Reports". Right-click the Reports folder and select Add | New Item.

  • 右键单击 MySolution.模块项目并选择"添加 |新文件夹。将新文件夹的名称设置为"报告"。右键单击"报告"文件夹并选择"添加 |新项目。

    Note 注意
    You can place reports in any folder (including the root project folder), although it is recommended that you organize your project files.

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

  • Select the DevExpress v19.2 Report, name it "ContactsReport" and click Add.

  • 选择 DevExpress v19.2 报告,将其命名为"联系人报告",然后单击"添加"。

  • This invokes the Report Wizard. Select Blank and click Finish.

  • 这将调用报表向导。选择"空白"并单击"完成"。

    Note 注意
    Do not use report types other than Blank. Other report types will not allow you to select an XAF-specific data source. You will be able to proceed with the Report Wizard later, after the data source is selected in the Report Designer.
    不要使用空白以外的报表类型。其他报表类型将不允许您选择特定于 XAF 的数据源。在报表设计器中选择数据源后,稍后将可以继续使用报表向导。
  • After clicking Finish, the Report Designer is invoked. In the Toolbox, navigate to the DX.19.2: XAF Data Sources for Reports group. Drag the CollectionDataSource item from this group to the Report Designer window.

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

  • In the Report Explorer window, select the collectionDataSource1 item. In the Properties window, assign the "MySolution.Module.BusinessObjects.Contact" value to the ObjectTypeName property. Note the changes in the Field List window - the fields of the Contact class are now available if you expand the collectionDataSource1 node.

  • 在"报表资源管理器"窗口中,选择集合数据来源 1 项。在"属性"窗口中,将"MySolution.module.业务对象.联系人"值分配给 ObjectTypeName 属性。请注意"字段列表"窗口中的更改 - 如果展开集合数据来源 1 节点,联系人类的字段现在可用。

  • Click the Report Designer's Smart Tag and select Design in Report Wizard... in the invoked menu.

  • 单击报表设计器的智能标记并选择"在报表向导中设计"...在调用的菜单中。

  • This invokes the Report Wizard. In the first step, you should select the Table Report and click Next. Since the data source is already specified, you will skip some wizard screens and the second step will allow you to choose the report data.

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

  • Select the fields that to be used within your report. Check the collectionDataSource1 data member on the left and the following data fields on the right:

  • 选择要在报表中使用的字段。检查左侧的收集DataSource1数据成员和右侧的以下数据字段:

    • FirstName
    • LastName
    • Email
    • 名字名
    • 姓氏
    • 电子邮件
  • Click Next when finished.

  • 完成后单击"下一步"。

  • Select the fields by which to group the report rows. Since grouping is not required in this example, click Next to continue.

  • 选择要对报表行进行分组的字段。由于本示例中不需要分组,请单击"下一步"以继续。

  • In the next step, you can customize the report page. Stay these settings unchanged and click Next.

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

  • Choose a report color scheme, for example, Azure, and click Next.

  • 选择报表配色方案(例如 Azure),然后单击"下一步"。

  • In the final step, you can set the report's title. This text will be displayed at the top of your report. Set the title to "Contacts" and click Finish.

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

  • The report structure you created will be displayed in the Report Designer. Customize and save the report.

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

    Note 注意
    At design time, the Preview tab of the Report Designer is empty. The CollectionDataSource and ViewDataSource components do not connect to a database directly and require an IObjectSpace instance (that can be created at runtime only) to load data. Thus, it cannot load data at design time.
    在设计时,报表设计器的"预览"选项卡为空。收集数据源和 ViewDataSource 组件不直接连接到数据库,并且需要 IObjectSpace 实例(只能在运行时创建)来加载数据。因此,它不能在设计时加载数据。
  • Now register the report within your XAF application using the PredefinedReportsUpdater class. To do this, in the Solution Explorer, right-click the MySolution.Module | Module.cs (Module.vb) file and select to edit its source code. The code snippet below demonstrates the required changes.

  • 现在使用预定义报告更新器类在 XAF 应用程序中注册报表。为此,请在解决方案资源管理器中右键单击 MySolution.模块 |Module.cs (module.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 };
    }
    //...
    }
    }
  • Run the WinForms or ASP.NET application, navigate to Reports and open the Contacts Report.

  • 运行 WinForms 或ASP.NET应用程序,导航到"报告"并打开联系人报告。

Note 注意
  • Predefined reports are not editable at runtime, but you can edit a copy of a report (see Modify an Existing Report).
  • Report data can be sorted and filtered according to a parameter defined by the end-user.
  • 预定义的报表在运行时不可编辑,但您可以编辑报表的副本(请参阅修改现有报表)。
  • 报表数据可以根据最终用户定义的参数进行排序和筛选。

Create a Report in Visual Studio 在Visual Studio中创建报表的更多相关文章

  1. Android Studio:layout-sw600dp文件夹中创建activity_main.xml

    1.右键res文件夹,新建Android resource directory文件夹 2.在resource type中选择layout  3.将Directory name命名为layout-sw6 ...

  2. CREATE TABLE AS - 从一条查询的结果中创建一个新表

    SYNOPSIS CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ (column_name [, ...] ...

  3. Create A .NET Core Development Environment Using Visual Studio Code

    https://www.c-sharpcorner.com/article/create-a-net-core-development-environment-using-visual-studio- ...

  4. Co-Debugging JNI with Android Studio and Visual Studio

    Tutorials > Android > Integration with other tools > Co-Debugging JNI with Android Studio a ...

  5. 【转】【UML】使用Visual Studio 2010 Team System中的架构师工具(设计与建模)

    Lab 1: 应用程序建模 实验目标 这个实验的目的是展示如何在Visual Studio 2010旗舰版中进行应用程序建模.团队中的架构师会通过建模确定应用程序是否满足客户的需求. 你可以创建不同级 ...

  6. [Visual Studio] 开启Visual Studio 2012通过右键菜单创建单元测试(Unit Test)

    Visual Studio 2012可以说是迄今为止微软VS开发工具中用户体验最好的产品,无论是速度还是体验以及功能,都非常出色,但是,使用了一段时间后发现有一个之前版本VS都有的功能却在Visual ...

  7. Visual Studio中创建混合移动应用程序解决方案Xamarin Portable Razor

    在Visual Studio中创建混合移动应用程序的一个解决方案是使用Xamarin Portable Razor工具,这是ASP.NET MVC API针对移动设备的一个轻量级实现.Xamarin编 ...

  8. 在 Visual Studio 等编辑器/IDE中自动切换输入法,不需要手动的有没有?

    使用Visual Studio写代码,经常遇到的一个问题就是切换中文输入法麻烦,输入完注释//,要切换到中文,输入完引号,要输入中文,然后还需要切换回来,有没有? 有时候中文输入法忽然失效有没有?明明 ...

  9. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]

    写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...

随机推荐

  1. Android组合Windows环境下Frida的安装步骤

    Frida是什么     我觉得官网已经说得很清楚了.简单的说就是一款动态代码检测工具,可用于各种系统,这里的主要用途是动态检测Android代码,配合Windows系统环境使用.     Frida ...

  2. 第八次作业-非确定的自动机NFA确定化为DFA

    NFA 确定化为 DFA 子集法: f(q,a)={q1,q2,…,qn},状态集的子集 将{q1,q2,…,qn}看做一个状态A,去记录NFA读入输入符号之后可能达到的所有状态的集合. 步骤: 1. ...

  3. 使用modelarts部署bert命名实体识别模型

    模型部署介绍 当我们通过深度学习完成模型训练后,有时希望能将模型落地于生产,能开发API接口被终端调用,这就涉及了模型的部署工作.Modelarts支持对tensorflow,mxnet,pytorc ...

  4. RestTemplate常用的get和post带参数请求

    在RestTemplate提供的方法中,有一个参数就是目标URL,参数是跟在后面的一个数量可变参数,但是在这里就有个问题,这个方法怎么知道我传的参数值是对应在目标接口的哪个参数的呢: public & ...

  5. 17-Python执行JS代码--PyExecJS、PyV8、Js2Py

    一.Python执行JS代码--PyExecJS.PyV8.Js2Py 1.1.PyExecJS PyExecJS的优点是您不需要照顾JavaScript环境.特别是,它可以在Windows环境中运行 ...

  6. 用workspace管理工程,并解决多静态库依赖

    from:http://www.cnblogs.com/perryxiong/p/3759818.html   最近我在项目中遇到一些工程之间的管理问题. 模型: 其中 库A 是一个公共的基础静态库, ...

  7. 纯css实现下雪特效

    //------------------ css ------------------- /*Keyframes*/ @keyframes snow { 0% { background-positio ...

  8. python实现十大核心算法(桶排没实例)

    # author:sevenduke # 2019-06-11 # 一.交换排序 # 排序算法的温故:冒泡排序 def dubblesort(arr): for i in range(0, len(a ...

  9. ansible批量管理常见的配置方法

    第7章 ansible的管理 7.1 ansible概念的介绍 ansible-playbook –syntax            检查语法 ansible-playbook -C         ...

  10. Python爬虫爬取异步加载的数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:努力努力再努力 爬取qq音乐歌手数据接口数据 https://y.qq ...