DevExpress Reporting中文教程 - 如何在macOS等系统中生成导出报表文档

news2024/11/16 16:18:20

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

在本文中,我们将讨论如何在.NET MAUI项目中合并DevExpress Reports和Blazor Report Viewer(报表查看器)。

在开始之前,提醒一下因为新的DevExpress.Drawing图形渲染引擎,我们的.NET Reporting工具不再依赖GDI+,这种与GDI+的分离允许您在新的平台上部署由DevExpress Reports驱动的应用程序,包括 .NET MAUI,在这个新的/新兴的平台上有以下功能:

  • 在运行时创建报表文档
  • 将报表导出为可用格式
  • 在单独的类库项目的Visual Studio报表设计器中创建报表
  • 使用DevExpress Blazor报表查看器在.NET MAUI Blazor应用程序中显示报表的打印预览

接下来,让我们深入研究并将DevExpress Reports集成到.NET MAUI项目中。

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

使用Visual Studio报表设计器

DevExpress Visual Studio Report Designer(报表设计器)分析项目引用和依赖关系,并根据收集的数据启动单独的后台进程。在测试期间,.NET MAUI与其他应用程序类型相比存在项目结构差异。由于这个问题,Visual Studio的DevExpress报表设计器无法立即集成到.NET MAUI项目中。

要在 .NET MAUI应用程序中创建和编辑报表,建议您在单独的类库中创建和存储报表,然后在.NET MAUI项目中引用该库。添加一个新的报表:

1. 按CTRL+SHIFT+A或在Visual Studio菜单中点击Project | Add New Item。

DevExpress Reporting产品图集

2. 选择DevExpress Report项目,指定一个报表名称,然后点击Add。

DevExpress Reporting产品图集

3. 在Report Wizard(报表向导)中选择报表类型然后点击Finish,如果要从头创建报表请选择Blank。

DevExpress Reporting产品图集

完成后,Visual Studio报表设计器将出现在屏幕上:

DevExpress Reporting产品图集

添加Blazor Report Viewer

如果您的应用需要在.NET MAUI中显示报表预览(在打印输出或导出操作之前),可以使用DevExpress Blazor报表查看器。为了整合Blazor报表查看器,首先需要创建一个.NET MAUI Blazor混合应用程序,引用所需的包,并将WebAssembly (Native)组件的报表查看器添加到Razor页面。

DevExpress Reporting产品图集

要从.NET MAUI Blazor应用程序中导出和共享报表,您需要自定义DevExpress报表查看器的导出过程。要定制导出过程,实现IExportProcessor接口(授予您访问包含文档数据的字节数组的权限)。完成后使用.NET MAUI的内置IShare接口,该接口包含一个API,用于向设备共享功能发送数据(如文本或web链接)。

下面的代码片段共享一个文件:

public class SharedReportExportProcessor : IExportProcessor {
public async Task ProcessExportResult(ExportResultItem exportResultItem, bool isPrintOperation) {
var fileName = Path.Combine(FileSystem.CacheDirectory, exportResultItem.FileName);
using (var file = File.Create(fileName)) {
file.Write(exportResultItem.Bytes);
}

await Share.Default.RequestAsync(new ShareFileRequest
{
Title = "Share a Report",
File = new ShareFile(fileName)
});
}
}

如果以这种方式实现,当您选择所需的导出格式时,共享窗口将打开并提示用户选择要共享的应用程序。

注册字体

请注意,安装在开发机器上的字体集与移动设备上的字体集不同。如果在系统中找不到报表中使用的字体,则文本装饰可能会恢复到默认的Open Sans字体。

要在部署的应用程序中维护报表的外观,首先需要调用MauiProgram类中的ConfigureFonts方法。

下一步是使用DXFontRepository类注册报告中使用的字体,DevExpress.Drawing程序集使用此字体字典在文档呈现期间解析字体,在ConfigureFonts方法调用之后使用以下代码片段:

using (StreamReader rd = new StreamReader(Assets.Open("Arial.ttf"))) {
using (var ms = new MemoryStream()) {
rd.BaseStream.CopyTo(ms);
DXFontRepository.Instance.AddFont(ms);
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于threejs的3d学校示例

源码下载地址在文章末尾! 效果演示 总览 漫游模式 切换黑夜 视频播放 源码下载地址 https://download.csdn.net/download/qq_43185384/88415886

优盘无法格式化?分享简单解决方法!

“我的优盘插入了一个带病毒的电脑中,现在优盘也中毒了,想把它格式化。但是操作的时候却显示优盘无法格式化,这种情况应该怎么办呢?” 优盘,又称USB闪存驱动器。由于其体积小且方便携带,受到广大电脑用户的…

Vega Prime入门教程14.04:CDB测试

本文首发于:Vega Prime入门教程14.04:CDB测试 打开失败 打开vpcdb_yemen_urban.acf 会报错 点击确定后会显示默认界面 这个白天蓝海应该是默认场景。 开启服务 打开LP,点击菜单栏或者工具栏 显示管理界面 切换至rtp界面 点击Start RTP按…

跨境电商需要使用ERP吗?| 跨境电商卖家应如何选择ERP?

复杂多变的市场环境将中国跨境电商行业带到了新的发展阶段。受益于国家对于跨境电商的持续鼓励政策,许多跨境电商企业已经初具规模。积累了较强的产品、供应链能力及一定的独立站运营经验。” 随着跨境电商企业规模升级,平台提供的卖家后台系统往往无法…

ROS为机器人装配激光雷达

移动机器人在环境中获取障碍物的具体位置、房间的内部轮廓等信息都是非常必要的,这些信息是机器人创建地图、进行导航的基础数据,除上面所讲的Kinect,还可以使用激光雷达作为这种场景应用下的传感器。 激光雷达可用于测量机器人和其他物体之间…

希亦CG声波清洗机:眼镜党福利,家庭必备清洗机

对于眼镜党来说最大的烦恼就是每天的佩戴和清洗,清洗是至关重要的,错误的清洗很容易引起镜片损坏,个人一直使用眼镜布清洗,除了费时费力之外清洁度也无法保证。希亦CG声波清洗机正是为了解决这一难题应运而生,可以彻底…

OrcaTerm AI

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

论Oracle兼容性,我们需要做什么

作者介绍:王海峰,数据库系统架构师,YashanDB SQL开发负责人,10年以上数据库内核技术开发经验。 Oracle兼容性是目前国产数据库的关键任务之一,其直接影响到商业迁移的成本和竞争力。 我们经常发现,部分国产…

蓝桥杯 题库 简单 每日十题 day13

01 乘积尾零 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将 所填结果输出即可。如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 …

【SpringCloud】微服务技术栈入门8 - 黑马旅游微服务项目实战笔记

目录 黑马旅游案例分页查询自动补全安装依赖自定义分词器Completion Suggester 聚合数据聚合的分类Bucket 聚合Metrix 聚合RestClient 实现聚合suggest 查询结果 数据同步同步策略mq 同步 eses 搭设集群 黑马旅游案例 分页查询 前端页面以及对应请求接口已经设置完备&#xff…

制造业单项冠军(国家级、广东省、深圳市)奖励政策及申报对比

制造业单项冠军的头衔含金量极高,是某一细分领域的“领头雁”。下面深科信对“制造业单项冠军”(国家级、广东省级、深圳市级)的认定标准、奖励政策进行梳理 。 2023年9月25日,工信部办公厅正式发布《关于开展2023年制造业单项冠军…

c++视觉处理---Scharr滤波器

Scharr滤波器: cv::Scharr cv::Scharr 是OpenCV库中用于应用Scharr滤波器的函数。Scharr滤波器通常用于图像处理中的边缘检测和特征提取。这是 cv::Scharr 函数的基本用法: cv::Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType);src: 输入…

C语言为什么for不执行?

C语言为什么for不执行? 一个表达式为初始化 第二个表达式为判断 第三个表达式为调整 如图所示,这是一种最常见,同样的,在这个循环当中同样的也能使用到continue和break关键字最近很多小伙伴找我,说想要一些C语言学习资…

1014蓝桥算法双周赛,学习算法技巧,助力蓝桥杯

家人们,我来免费给大家送福利了!!! 【1014蓝桥算法双周赛 】 背景 蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心举办的全国性IT学科赛事。参赛高校超过1200余所,累计参赛人数超过40万人。该…

Java对接微信公众号事件监听回调

1. 公众号开启并配置 2. Java代码实现 1. 验证加密工具类 package cn.com.baidu.wxopen.util.wx;import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays;/*** 验证工具类* 2023年10月12日09:47:04* CBC*/ public cla…

mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感

mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感? MySQL 8.0 对于表名的大小写敏感性的默认设置并没有变更。在 UNIX-like 系统中,表名是大小写敏感的,而在 Windows 中,它们是大小写不敏感的。这与文件系统的行为有关。…

【ROS】使用vscode浏览navigation2源码时,提示:没有那个文件或目录

1、问题描述 使用vscode浏览navigation2源码时,头文件下面有波浪线,并提示:没有那个文件或目录。比如没有:geometry_msgs/msg/polygon.h 错误信息: 无法打开源文件 “geometry_msgs/msg/polygon.h” (dependency of “nav2_controller/controller_server.hpp”)C/C++(16…

40 道 Nginx 精选

什么是Nginx? Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用ngin…

ubuntu20.04安装genymotion3.5.1

下载和安装genymotion https://www.genymotion.com/download/ wget https://dl.genymotion.com/releases/genymotion-3.5.1/genymotion-3.5.1-linux_x64.bin chmod x genymotion-3.5.1-linux_x64.bin sudo ./genymotion-3.5.1-linux_x64.bin默认位置为:/opt/genym…

PerformanceRunner国产化性能测试工具

国产化性能测试工具PerformanceRunner(简称PR)通过模拟海量用户并发测试整个系统的承受能力,实现压力测试、性能测试、配置测试、峰值测试等。大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 泽众PR性能测试工具是国内…