报表开发工具DevExpress Reporting v23.2 - 增强PDF导出、多平台打印等

news2024/10/6 4:04:27

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

DevExpress Reporting控件日前正式发布了v23.2,新版本增强了PDF导出、macOS、Linux平台打印功能等,欢迎下载最新版产品体验!

DevExpress Reporting v23.2正式版下载(Q技术交流:532598169)

Reporting for ASP.NET Core
增强Visual Studio项目模板

新版本在项目模板中添加了对Docker的支持,您可以选择各种基于Linux操作系统的Docker映像:

  • Debian
  • Alpine
  • Ubuntu
  • openSUSE
  • Amazon Linux

一个Dockerfile会自动创建并添加到项目中,该文件包含所有必要的设置。

项目模板允许您指定用于缓存报表生成的文档存储类型,选项包括:

  • 文件存储
  • 数据库
  • 外部缓存服务,实现分布式应用程序的缓存机制
  • Azure存储
  • 内存中的存储

注意:当您在基于macOS和Unix的操作系统上使用.NET CLI 模板生成样例应用程序时,这些新选项也可用。

Reporting for All Platforms(所有平台)
增强的标签(可访问)PDF导出

您现在可以生成具有改进相关元素逻辑结构的可访问PDF,这个新选项允许屏幕阅读器识别文档的语义树,并改进PDF文档导航。

DevExpress Reporting v23.2新版产品图集

新版本添加了一个新的AccessibleRole属性,使用该属性为屏幕阅读器定义导出的PDF文档(与PDF/UA和PDF/A-1a、2a或3a规范兼容)中的报表元素结构,支持的元素包括:

  • 标题
  • 表格
  • 表标题行
  • 表标题单元格

您可以为以下报表控件指定角色:

  • XRLabel
  • XRTable
  • XRTableRow
Drill-Through报表

您现在可以为所有支持的平台创建drill-through报表,drill-through功能允许您单击报表元素并在相同的打印预览窗口中导航到详细报表。

DevExpress Reporting v23.2新版产品图集

要创建drill-through报表,请使用报表控件的Action属性(例如,XRLabel)。该属性允许您指定NavigateToReport操作(指定详细报告实例或URL以设置主-详细关系),并获取详细报告参数绑定的集合,以便将数据从主报表传递到详细报表。

支持Linux和macOS打印

DevExpress Reports现在支持通过Common UNIX Printing System (CUPS)打印文档,该库与macOS集成。对于基于UNIX的系统,您需要单独安装libcups2包。

要在通过CUPS访问的打印机上打印报告,请利用PrintToolBase类。

最终用户报表设计器 - 本地化属性描述

在v23.2中,您可以转换报表设计器属性网格中显示的属性描述。根据需要使用本地化服务或新的本地化API和UI本地化客户端实用程序。

DevExpress Reporting v23.2新版产品图集

有条件的水印

您现在可以根据特定条件在报表页面上显示文本和图片水印。

DevExpress Reporting v23.2新版产品图集

XtraReport类包含一个Watermarks集合属性,将XtraReport.WatermarkId属性绑定到表达式,以便将水印应用于特定的报表页面。使用下面的表达式为报告的奇数页和偶数页添加不同的水印:

Iif([Arguments.PageIndex]=0,'Watermark_0',Iif([Arguments.PageIndex]%2=0,'Watermark_1','Watermark_2'))

DevExpress Reporting v23.2新版产品图集

加入聚合

您现在可以使用新的Join()聚合函数根据特定条件将所有值连接起来,该函数将值连接成由指定分隔符分隔的单个字符串(如果未指定分隔符,则该函数使用逗号)。

DevExpress Reporting v23.2新版产品图集

带有Join()函数的表达式使用以下语法:

[Collection][Condition].Join(Expression)
[Collection][Condition].Join(Expression, Separator)

下面的表达式将按“CategoryID”字段分组的报表中的“CompanyName”字段值连接成一个以分号分隔的字符串:

[][[CategoryID] == [^.CategoryID]].Join([CompanyName], ';')
EPC QR码

新版本扩展了条形码生成支持,您现在可以创建EPC QR码,它可以生成包含SEPA信用转移相关数据的条形码。

DevExpress Reporting v23.2新版产品图集

EPC QR码还引入了对奥地利支付服务的内置支持。

DevExpress Reporting v23.2新版产品图集

带框架的QRCode

QRCodeGenerator类包含一个FrameOptions属性,使用该属性在代码周围绘制一个矩形框架。您可以从两个内置帧中进行选择,并指定以下设置:

  • Padding
  • Text
  • TextAlignment
  • TextPosition
  • TextColor
  • FrameWidth
  • FrameColor
  • CornerRadius

DevExpress Reporting v23.2新版产品图集

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

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

相关文章

05、部署 YUM 仓库及NFS 共享服务

目录 5.1 部署YUM软件仓库 5.1.1 准备网络安装源(服务器端) 1、准备软件仓库目录 2、安装并启用vsftpd服务 5.1.2 配置软件仓库位置(客户端) 5.2 使用yum工具管理软件包 5.2.1 查询软件包 1、yum list——查询软件包列表 …

JavaScript日期对象、DOM节点操作(查找、增加、克隆、删除)

目录 1. 日期对象2. DOM节点操作2.1 查找节点2.2 增加节点2.3 克隆节点2.4 删除节点 1. 日期对象 实例化日期对象: 获取当前时间: new Date()获取指定时间: new Date(2023-12-1 17:12:08) 日期对象方法: 方法作用说明getFullYear()获得年份获取四位年份getMonth…

建筑学跑路:揭秘热门转行新选择!

话说建筑学真的是我见过最关心同行的专业,每个建筑学跑路的帖子下面都有人问:你跑哪里去了? 很多人表示,我也想跑 当然不仅建筑学,园林的、城规的、土木的也会来凑热闹: 很多小伙伴分享了自己的转行经历&a…

【免费分享】全国shp数据汇总(中国湖泊、县界、公路、河流、铁路、国界线、经纬线、省会城市、省级行政区、县城驻地、线状省界)

ESRI Shapefile(shp),或简称shapefile,该文件格式已经成为了地理信息软件界的开放标准,也是重要的交换格式,能够在ESRI与其他公司的产品之间进行数据互操作。 Shapefile属于一种矢量图形格式,它…

电脑硬盘文件隐藏了怎么恢复数据?轻松上手不求人

在数字化时代,电脑硬盘中存储的数据对于个人和企业而言都至关重要。然而,有时我们可能会遇到一些意想不到的情况,比如硬盘中的文件突然消失了或者变成了隐藏状态。这种情况不仅让人感到困惑,还可能对日常工作和生活造成不小的影响…

cesium按照参数绘制不同形状的船舶

俺们公司之前有个自创的所谓前端GIS框架,是用Cesium搞的。我对该框架不熟悉,用它在地图上作画,画船舶符号,看以前的代码,感觉十分艰深晦涩,什么材质、纹理,令人头大如斗。我4年前用过一阵Cesium…

Multi-Head RAG:多头注意力的激活层作为嵌入进行文档检索

现有的RAG解决方案可能因为最相关的文档的嵌入可能在嵌入空间中相距很远,这样会导致检索过程变得复杂并且无效。为了解决这个问题,论文引入了多头RAG (MRAG),这是一种利用Transformer的多头注意层的激活而不是解码器层作为获取多方面文档的新…

mysql分析常用锁

这里写自定义目录标题 1.未提交事物,阻塞DDL,继而阻塞所有同表的后续操作,查看未提交事务的进程2.存着正在进行的线程数据。3.根据processlist表中的id杀掉未释放的线程4.查看正在使用的表5.mysql为什么state会有waiting for handler commit6.什么情况导…

处理耗时任务

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 namespace 处理耗时任务 {public partial class Form1 : Form{public Form1(){InitializeComponent();}bool IsRun false;private string path Directory.GetCurrentDirectory() "\\古诗词.txt";private…

虚拟机怎么额外搭建两个Redis节点,配置多个 Redis 实例

前提条件 在开始之前,请确保你已经具备以下条件: 一台已安装 Redis 的虚拟机。虚拟机上已安装基本的 Linux 工具(例如 FinalShell)。 步骤二:配置额外的 Redis 实例 接下来,我们将配置两个新的 Redis 实…

鸿蒙原生应用元服务开发-位置服务申请权限

申请位置权限开发指导 场景概述 应用在使用位置服务系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限。 系统提供的定位权限有: ohos.permission.LOCATION:用于获取精准位置…

机器学习python实践——由特征选择引发的关于卡方检验的一些个人思考

最近在用python进行机器学习实践,在做到特征选择这一部分时,对于SelectPercentile和SelectKBest方法有些不理解,所以去了查看了帮助文档,但是在帮助文档的例子中出现了"chi2",没接触过,看过去就更…

垃圾佬的狂欢!3元/月开Minecraft国际服务器全流程教程

大家好!我是ErikTse,一名生活在捡垃圾区的UP主,相信不少点进本文的朋友们跟我一样,在小时候都有一个当腐竹(MC服主)的梦,可惜那时还小,不懂网络更不懂技术,只有一颗爱玩的…

c++里 lamda 表达式,其实被编译器处理为匿名类,并实例化为匿名对象

该匿名对象定义了括号 () 运算符函数,所以可以像函数一样被调用。 lamda 表达式必须在函数作用域中定义。通过按值捕获或按引用捕获,可以使用所在函数中定义的变量。在类的成员函数中定义的 lamda 表达式,若捕获了 this ,则可以修…

配置OSPF认证(华为)

#交换设备 配置OSPF认证-基于华为路由器 OSPF(开放最短路径优先)是一种内部网关协议(IGP),用于在单一自治系统(AS)内决策路由。OSPF认证功能是路由器中的一项安全措施,它的主要用途…

B-splines曲线的绘制(Matlab)

虽然在这个链接三次 Bspline(B样条曲线) NURBS曲线的绘制 matlab_三次b样条曲线的绘制-CSDN博客中我们介绍了NURBS曲线,然而有时候我们通过B-spline曲线也能够解决问题。B-spline曲线作为NURBS曲线的一种特例,这里给出均匀B-spline曲线的表达式&#xff…

基于PHP的草莓种植信息管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的草莓种植管理系统 一 介绍 此草莓种植管理系统基于原生PHP开发,数据库mysql,前端采用jquery.js和kindeditor在线HTML编辑器。系统角色分为用户和管理员。 技术栈:phpmysqljquery.jsphpstudyvsco…

【Windows系统】文件操作出现“文件访问被拒绝”弹窗问题

环境 系统:win10x64 版本:1709 问题 重命名系统文件夹文件,有时会出现【文件访问被拒绝】的弹窗,导致操作失败。 如何才能避免弹窗,成功操作? 解决方法 前提:实施以下解决,首先…

Vue自定义长按指令

新建文件longpress.ts文件 // longpress.ts import { DirectiveBinding } from vue const longpress {beforeMount(el: any, binding: DirectiveBinding) {const cb binding.valueconst duration binding.arg || 800 // 长按等待时间let timer: number | null nulllet is…

这些数据可被Modbus采集,你还不知道???

为什么要用Modbus采集模块 Modbus采集模块之所以被广泛使用,是因为它提供了标准化的通信协议,确保了不同设备间的兼容性。它支持多种通信方式,易于实现,并且能够适应不同的网络环境。Modbus模块能够收集和传输各种工业数据&#x…