报表组件DevExpress Reporting中文教程 - 如何直接在浏览器中生成报表?

news2024/11/16 9:56:41

DevExpress Reports组件被设计为一个跨平台的报表解决方案,您可以创建一次报表,然后将文档显示、打印和导出到任何受支持的.NET平台中,用户体验扩展到部署应用程序的所有托管环境/操作系统。

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

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

由于我们过渡到一个基于Skia的绘画引擎(DevExpress.Drawing图形库),能够修改原生的Blazor Report Viewer(报表查看器)实现,使其现在支持Blazor WebAssembly (WASM)托管模型。Report Viewer(报表查看器)允许您显示、打印和导出简单报表,并将报表绑定到JSON和Object数据源。

报表组件DevExpress Reporting中文教程 - 如何直接在浏览器中生成报表?

此外,我们的跨平台绘图引擎允许您在 .NET MAUI Blazor应用程序中使用DevExpress Report和Blazor Report Viewer组件。

WebAssembly的主要优点

支持Blazor WebAssembly托管模型的主要好处是,您现在可以在浏览器中预览、打印和导出报表,而无需ASP. NET Core后端。

Blazor WebAssembly托管模型允许您直接在浏览器中执行客户端C#代码,这意味着应用程序、它的依赖项和.NET运行时被下载到浏览器中。您的应用程序也可以离线运行——一旦所有必要的资源下载完毕。

Blazor Report Viewer(报表查看器)是一个使用C#实现的.NET组件,因此您不需要处理JavaScript代码来定制组件操作。此外Blazor Report Viewer(报表查看器)确保了UI的一致性,并支持所有的DevExpress Blazor主题。

提前(AOT)编译

在v23.1和未来的版本中,DevExpress Reports for Blazor WebAssembly都具有内置的提前(AOT)编译支持。AOT编译会在C#代码被浏览器执行之前将其“预编译”成机器码,这项技术在Blazor WASM中特别有用,因为它允许C#代码直接由浏览器的WebAssembly引擎执行,并显著提高了运行时性能。

下面的图表说明了启用AOT和未启用AOT时的性能差异,在Invoice Demo报表中测量了性能(以秒为单位)。

报表组件DevExpress Reporting中文教程 - 如何直接在浏览器中生成报表?

请注意,AOT编译的应用程序大小很大,因此应用程序在首次请求后需要更长的时间才能下载到客户端。

为Blazor WebAssembly创建一个报表应用程序

在本节中,我们将描述如何将Blazor Report Viewer(报表查看器)集成到Blazor WebAssembly应用程序中,并显示一个简单的表格报表。

创建项目

您可以使用DevExpress Visual Studio模板、Microsoft Visual Studio模板或CLI (command-line interface)创建报表应用程序。

添加NuGet包

创建应用程序的诸多策略都需要以下NuGet包:

  • DevExpress.Drawing.Skia
  • SkiaSharp.Views.Blazor
  • SkiaSharp.NativeAssets.WebAssembly
  • SkiaSharp.HarfBuzz
  • HarfBuzzSharp.NativeAssets.WebAssembly
  • DevExpress.Blazor
  • DevExpress.Blazor.Reporting.Viewer

注意:不要忘记在您的机器上设置DevExpress NuGet提要,以获得对所需NuGet包的访问权。

注册字体

在应用程序可以在浏览器中运行之前,注册字体来确保Skia绘图引擎可以使用它们来绘制报表内容。

DXFontRepository类允许您注册所需的字体如下:

public async static Task LoadFonts(HttpClient httpClient, List<string> fontNames) {
foreach (var fontName in fontNames) {
var fontBytes = await httpClient.GetByteArrayAsync($"fonts/{fontName}");
DXFontRepository.Instance.AddFont(fontBytes);
}
}

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

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

相关文章

ios 代码上下文截屏之后导致的图片异常问题

业务场景&#xff0c;之前是直接将当前的collectionview截长屏操作&#xff0c;第一次截图会出现黑色部分原因是视图未完全布局&#xff0c;原因是第一次使用了Masonry约束然后再截图的时候进行了frame赋值&#xff0c;可以查看下Masonry约束和frame的冲突&#xff0c;全部修改…

seaborn绘图(自用)

import seaborn as sns import matplotlib.pyplot as plt# set_theme设置主题 #sns.set_theme(style"whitegrid") #白色&#xff0b;刻度线&#xff0c;无坐标轴标度 #sns.set_theme(style"white") #白色无刻度线&#xff0c;无坐标轴标度 #sns.set_theme(…

DLedgerServer消息写入

下面以一个demo来理解消息DLedger消息写入和同步其他Peers的流程 /*** 创建DLedgerServer*/public DLedgerServer create(String selfId, String peers, String leaderId) {DLedgerConfig dLedgerConfig new DLedgerConfig();dLedgerConfig.setMappedFileSizeForEntryData(102…

Wt库的下载器程序

#include <stdio.h> #include <string.h> #include <stdlib.h> #include <microhttpd.h> // 设置服务器的地址和端口号 const char *proxy_host ""; const int proxy_port 8000; // 下载的文件路径 const char *filename "xiuxiu.…

电脑桌面文件不见了怎么恢复?4个方法!(详细步骤分享)

“这下可怎么办呀&#xff1f;我有些比较重要的文件保存在桌面&#xff0c;现在这些文件都莫名奇妙的丢失了&#xff0c;我应该怎么将它们恢复呢&#xff1f;快帮帮我吧&#xff01;” 在日常使用电脑时&#xff0c;很多电脑用户为了方便&#xff0c;可能会随手将一些文件直接保…

微信视频怎么录屏?超简单教程,一学就会!

“微信视频的时候怎么录屏呀&#xff1f;和朋友打微信视频&#xff0c;她每次都偷偷录我的丑照&#xff0c;我也想把她录下来&#xff0c;但是不会怎么操作&#xff0c;求求大家教教我&#xff01;” 微信作为全球最大的社交媒体平台之一&#xff0c;承载了无数珍贵的瞬间和回…

iPhone强制重启教程来了!(已解决)

强制重启是解决苹果手机系统故障问题的首选操作&#xff0c;是通过特殊组合按键来强制关机并重新启动设备的操作。可以用来应对系统崩溃、设备无响应、白苹果、死机、闪退、莫名其妙黑屏等情况。 那么大家知道该如何将iPhone手机强制重启吗&#xff1f;iphone强制重启的方法是…

福建厦门航空飞机零部件检测3D扫描测量尺寸偏差-CASAIM中科广电

航空航天是一个创新型发展国家的尖端命脉&#xff0c;代表着一个国家科学技术的先进水平。在航空航天工业的发展和组成领域中&#xff0c;对于在制造业中的航空航天产品零部件精度要求十分严苛&#xff0c;从前期的设计、中期建造、后期维修检测&#xff0c;任何一个环节、任何…

Mybatis一对多查询,分页显示问题解决方案

原文&#xff1a;Mybatis一对多查询&#xff0c;分页显示问题解决方案_mybatis一对多分页问题-CSDN博客 在我们的开发中也许是遇到最多的功能&#xff0c;一张表的分页&#xff0c;多张表一对一功能的分页相信大家写来都是得心应手&#xff0c;但是在一对多分页查询的时候大家…

【Ubuntu18.04】激光雷达与相机联合标定(Livox+HIKROBOT)(一)相机内参标定

LivoxHIKROBOT联合标定——相机内参标定 引言1 海康机器人HIKROBOT SDK二次开发并封装ROS1.1 介绍1.2 安装MVS SDK1.3 封装ROS packge 2 览沃Livox SDK二次开发并封装ROS3 相机雷达联合标定——相机内参标定3.1 环境配置3.1.1 安装依赖——PCL 安装3.1.2 安装依赖——Eigen 安装…

【表面缺陷检测】钢轨表面缺陷检测数据集介绍(2类,含xml标签文件)

一、介绍 钢轨表面缺陷检测是指通过使用各种技术手段和设备&#xff0c;对钢轨表面进行检查和测量&#xff0c;以确定是否存在裂纹、掉块、剥离、锈蚀等缺陷的过程。这些缺陷可能会对铁路运输的安全和稳定性产生影响&#xff0c;因此及时进行检测和修复非常重要。钢轨表面缺陷…

GaussDB SQL基础语法示例-BOOLEAN表达式

目录 一、前言 二、GaussDB SQL 中的BOOLEAN表达式介绍 1、概念 2、组成 3、语法示例 三、在GaussDB SQL中的基础应用 1、示例1&#xff0c;使用比较运算符 2、示例2&#xff0c;使用逻辑运算符 3、示例3&#xff0c;使用IS NOT NULL运算符 4、示例4&#xff0c;使用…

vscode安装包下载——vscode的下载速度慢问题两种解决方法

1.vscode下载&#xff1a; 1.首先我们去官网下载vccode&#xff0c;下载过程非常慢&#xff1a; 官网链接&#xff1a; https://code.visualstudio.com/ 2.解决办法1 这是因为国外镜像地址下载慢的原因&#xff0c;此时需要去国内镜像地址进行下载&#xff0c;复制下载链接&…

【Andriod】使用adb命令安装和卸载apk的通用python脚本

文章目录 1.前言2.连接设备3.从本机通过adb安装apk4.从本机通过adb卸载apk 1.前言 如不会使用adb请看之前的文章 【Andriod】adb调试安卓手机时连接真机或模拟器的3种方法&#xff0c;你知道么&#xff1f; 2.连接设备 import os # python标准库中的os模块""&qu…

互动直播UI设置 之 主播UI

目录 一、普通模式下&#xff0c;布局选项 1、布局按钮 1&#xff09;、点击布局按钮 2&#xff09;、选择哪种布局后&#xff0c;主进程通过WM_COPYDATA 发送信息 2、duilib样式布局文件 1&#xff09;、主画面 2&#xff09;、连麦者画面 3、主画面自动调整宽度 1&a…

UnrealSynth - 基于虚幻引擎的YOLO合成数据生成器

UnrealSynth虚幻合成数据生成器利用虚幻引擎的实时渲染能力搭建逼真的三维场景&#xff0c;为YOLO等AI模型的训练提供自动生成的图像和标注数据&#xff0c;官方下载地址&#xff1a;UnrealSynth虚幻合成数据生成器。 UnrealSynth生成的合成数据可用于深度学习模型的训练和验证…

18.3 NPCAP 构建中间人攻击

ARP欺骗&#xff08;ARP Spoofing&#xff09;是一种网络攻击手段&#xff0c;其目的是通过欺骗目标主机来实现网络攻击。ARP协议是一种用于获取MAC地址的协议&#xff0c;因此欺骗者可以使用ARP欺骗来迫使其目标主机将网络流量发送到攻击者控制的设备上&#xff0c;从而实现网…

error LNK2019: 无法解析的外部符号

文章目录 1 问题2 出现该问题的原因和解决方法2.1 原因&#xff1a;2.3 解决方法&#xff1a;需要查看一下项目的属性配置是否正确&#xff1a; 3 其他可能得原因&#xff0c;但是本项目中没有出现 1 问题 在测试base64代码的时候&#xff0c;VS2022提示我错误如下&#xff1a…

Julia数值计算初步

文章目录 复数系统运算符三角函数指数、对数、取整 Julia系列&#xff1a;编程初步&#x1f525;数组 Julia作为主打数值计算的编程语言&#xff0c;对一些常用的计算函数提供了非常细致的支持&#xff0c;十分人性化&#xff0c;体验之后爱不释手。 复数系统 在Juli中&…

笔记本怎么录屏?这3个方法请你收好

在现代教育、工作和演示中&#xff0c;屏幕录制成为了无可替代的工具。它使我们能够捕捉电脑屏幕上的一切&#xff0c;从PPT演示到教程制作&#xff0c;再到技术支持。因此&#xff0c;选择合适的录屏工具显得尤为重要。本文将详细介绍笔记本怎么录屏的3个方法&#xff0c;这些…