DevExpress中文教程 - 如何在macOS和Linux (CTP)上创建、修改报表(下)

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。

DevExpress Reports — 跨平台报表组件,允许用户在针对任何基于.NET平台的应用程序中生成报表文档,可部署在任何支持的操作系统上。在过去的几个月里,官方技术团队一直专注于增强多个环境中的报表生成进程,同时保持与主机操作系统本身的独立性。在我们深入研究细节之前,先简单介绍一下Visual Studio Code,以及为什么选择它而不是其他可用的替代品。

获取DevExpress Reporting v23.1正式版下载(Q技术交流:909157416)

在上文中(点击这里回顾>>),我们为大家介绍了DevExpress Visual Studio Code报表设计器扩展、基于VS Code扩展的技术以及一些前期配置等。本文将继续介绍如何创建一个新的DevExpress报表,欢迎持续关注我们哦~

创建一个新的DevExpress报表

此时我们准备向示例项目中添加一个新报表,扩展增加一个新的DX Reporting: New Report命令到Visual Studio代码中,只需再次按F1来使用该命令并指定新的报表名称。

DevExpress报表中文教程指南

VS Code将自动打开新创建的报表,并以空白报表呈现DevExpress报表设计器:

DevExpress报表中文教程指南

在此阶段,我们可以向该报表添加数据源,并使用内置的报表向导对其进行设计。我们将选择右侧的数据源选项卡,然后点击"Add Data Source"按钮调用数据源向导:

DevExpress报表中文教程指南

出于本示例的目的,我们将使用之前在reporting.config.file中设置的示例 "Dummy 100 Users"JSON数据源,选择可用的数据源,点击“Finish”完成操作:

DevExpress报表中文教程指南

接下来,我们将导航到报表设计器主菜单,并在报表向导中选择Design in Report Wizard...来启动报表向导:

DevExpress报表中文教程指南

我们将按照向导提示完成报表生成过程,如果您遵循这篇文章,请确保使用“Save”快捷键保存报表模板文件(在macOS中是Command+ S)。当您这样做时,可以在屏幕上看到以下内容:

DevExpress报表中文教程指南

要查看结果,只需要按下"Preview" 按钮,您可以从内置的打印预览窗口打印和导出报表文档:

DevExpress报表中文教程指南

运行示例应用程序

在这个阶段,我们必须修改一些项目代码文件,以便在运行时将这个报表布局加载到XtraReport类中。首先我们必须移动 "newReport. repx" 文件到PredefinedReports目录中,完成后我们需要进行以下更改:

HomeController.cs -> Viewer method

将在文档查看器中打开的报表名称更改为newReport:

public IActionResult Viewer([FromServices] IWebDocumentViewerClientSideModelGenerator clientSideModelGenerator,
[FromQuery] string reportName) {

var reportToOpen = string.IsNullOrEmpty(reportName) ? "newReport" : reportName;
var model = new Models.ViewerModel {
ViewerModelToBind = clientSideModelGenerator.GetModel(reportToOpen, WebDocumentViewerController.DefaultUri)
};
return View(model);
}

ReportsFactory.cs

替换如下代码,从PredefinedReports目录加载报表模板:

public static class ReportsFactory
{
public static string ReportsPath { get; set; }
public static Dictionary<string, Func<XtraReport>> Reports = new Dictionary<string, Func<XtraReport>>()
{
["TestReport"] = () => new TestReport(),
["newReport"] = () => XtraReport.FromFile(Path.Combine(ReportsPath + "/PredefinedReports/newReport.repx"))
};

}

Startup.cs

修改类构造函数来将IWebEnvironment.ContnetRootPath变量传递到ReportsFactory类:

public Startup(IConfiguration configuration, IWebHostEnvironment environment) {
Configuration = configuration;
ReportsFactory.ReportsPath = environment.ContentRootPath;
AppDomain.CurrentDomain.SetData("DataDirectory", environment.ContentRootPath);
}

ReportDbContext.cs -> InitializeDatabase method

将JSON数据源添加到应用程序注册的数据源集合中:

...
var Dummy100UsersConnectionName = "Dummy 100 Users";
if(!JsonDataConnections.Any(x => x.Name == Dummy100UsersConnectionName)) {
var newData = new JsonDataConnectionDescription {
Name = Dummy100UsersConnectionName,
DisplayName = "Dummy 100 Users",
ConnectionString = "Uri=https://dummyjson.com/users/"
};
JsonDataConnections.Add(newData);
}
...

最后,我们需要确保在每次构建应用程序时将报表模板文件复制到应用程序输出目录中。要实现这一点,我们需要再"*. csproj"文件中添加以下内容:

<ItemGroup>
<None Remove="PredefinedReports\*.repx" />
</ItemGroup>
<ItemGroup>
<Content Include="PredefinedReports\newReport.repx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>

通过这些修改,我们可以切换到VS Code中的终端窗口并运行Docker容器:

export DX_NUGET=https://nuget.devexpress.com/Your_API_Token/api
DOCKER_BUILDKIT=1 docker build -t reporting-app --secret id=dxnuget,env=DX_NUGET .
docker run -p 8080:80 reporting-app:latest

应用程序页面可通过以下URL访问:http://localhost:8080/,点击顶部的 "Document Viewer"链接显示刚刚在Visual Studio Code中创建的报表打印预览。

DevExpress报表中文教程指南

  • 35
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DevExpress是一家领先的软件开发公司,提供了丰富的控件库和开发工具,可用于各种平台(如WinForms,ASP.NET等)。随着越来越多的开发者关注DevExpress,他们也提供了一些很好的中文教程来帮助我们更好地使用其工具。 首先,DevExpress的官方网站提供了很多帮助文档,其中也包括一些中文教程。在官方网站上,您可以访问DevExpress的学习中心,在此处,所有文档都有相应的PDF文件,以方便用户下载。 此外,除了官方文档,我们还可以在其社区博客和论坛上找到一些很好的中文教程DevExpress社区博客是一个非常好的资源,您可以在这里获得其他开发人员的建议和提示,这也是自学的一个很好的地方。 最后,还有一些博客文章和视频教程,这些都是由开发社区撰写的,对了解DevExpress控件和工具的使用非常有帮助。您可以使用搜索引擎查找“DevExpress中文教程”或在社交媒体上寻找相关信息,例如微博或知乎。 总之,DevExpress提供了很多非常好的教程和资源,可以帮助我们更好地了解框架和控件的应用。中文社区也很活跃,您可以在此找到很多导师或者同行的支持和帮助,使您更好地掌握DevExpress的开发过程。 ### 回答2: DevExpress是一家专业的软件开发工具提供商,其产品广泛应用于各类开发领域。对于初学者而言,了解DevExpress的各个组件和使用方法并不是易事。因此,对于需要学习DevExpress中文开发者,可以通过以下途径获取相关教程: 首先,可以从DevExpress官网上获取相关的中文教程。官网上提供了丰富的教程资源,包括中文文档、示例代码、帮助文档等。可以通过阅读官网上的教程,快速地掌握各个组件的使用方法和实现技巧。 其次,可以参考一些DevExpress中文学习笔记和博客。在网络上有很多DevExpress的学习笔记和博客,其中不乏一些中文内容的文章。这些文章通过实际案例的分析和讲解,可以帮助开发者更好地理解DevExpress组件的使用方法和实现技巧。 此外,还可以参加一些DevExpress的课程培训和在线教学。DevExpress官方网站上有丰富的教学资源,不仅提供了在线课程、视频教程和直播课程等多种学习方式,而且还有强大的在线论坛以及社区支持,可以快速解决使用中的问题和疑惑。 综上所述,无论是通过官网教程、学习笔记还是课程培训等多种途径,都可以快速地学习掌握DevExpress的组件使用方法,并且在实际开发中更加得心应手。 ### 回答3: DevExpress是一家专门提供软件开发工具和组件的公司,其产品包括WinForms、ASP.NET、Silverlight等多种类型的开发工具。因为其产品功能强大、易于使用、性能优越等优点,越来越多的软件开发人员开始使用DevExpress进行开发。 作为DevExpress用户,获取中文教程的方法有多种。其中,官方网站提供了大量的中文技术文档和教程,这些文档和教程可以根据开发者的需要和水平进行选择,从入门到进阶都有相应的内容。此外,DevExpress还提供了在线视频教程,让开发者能够更加直观地了解和学习其产品的使用。 同时,开发者还可以通过各种社区和论坛获取相关的中文教程和问题解答。在互联网上,有许多针对DevExpress的论坛和社区,其中许多高水平的开发者会主动分享自己的经验和技巧,让新手能够快速进入开发者圈子,提高自己的开发能力。 总之,对于想要学习和使用DevExpress的开发者来说,获取中文教程的方法不止一种。通过适当的学习和实践,开发者可以快速了解和掌握该产品的使用,从而在软件开发过程中拥有更多的灵活性和创造力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值