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


    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链接)。

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

    1. public class SharedReportExportProcessor : IExportProcessor {
    2. public async Task ProcessExportResult(ExportResultItem exportResultItem, bool isPrintOperation) {
    3. var fileName = Path.Combine(FileSystem.CacheDirectory, exportResultItem.FileName);
    4. using (var file = File.Create(fileName)) {
    5. file.Write(exportResultItem.Bytes);
    6. }
    7. await Share.Default.RequestAsync(new ShareFileRequest
    8. {
    9. Title = "Share a Report",
    10. File = new ShareFile(fileName)
    11. });
    12. }
    13. }

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

    注册字体

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

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

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

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

  • 相关阅读:
    nextTick的原理
    栈、队列应用题
    TCP 要“凉“,UDP 要崛起 !
    无缝数据转换!使用C++ 实现 Excel文件与CSV之间的相互转换
    java线程池捕获线程异常
    基于Qt实现的轻量级CAD画图软件
    Vue框架插槽(第八课)
    iOS 单元测试之常用框架 OCMock 详解
    总分420+专业140+哈工大哈尔滨工业大学803信号与系统和数字逻辑电路考研电子信息与通信工程,真题,大纲,参考书。
    初始Redis && 分布式结构的发展演变
  • 原文地址:https://blog.csdn.net/AABBbaby/article/details/133783170