当前位置: 首页 > news >正文

全新更新!Fastreport.NET 2025.1版本发布,提升报告开发体验

在.NET 2025.1版本中,我们带来了巨大的期待功能,进一步简化了报告模板的开发过程。新功能包括通过添加链接报告页面、异步报告准备、HTML段落旋转、代码文本编辑器中的文本搜索、WebReport图像导出等,大幅提升用户体验。

FastReport .NET 是适用于.NET Core 3,ASP.NET,MVC和Windows窗体的全功能报告库。使用FastReport .NET,您可以创建独立于应用程序的.NET报告。

添加带有链接的报告页面

在以前的版本中,可以将另一份报告的页面添加到一份报告中。此选项可在 “文件->打开页面...”中找到。 默认情况下,页面的副本会添加到报告中。

添加带有链接的报告页面

您现在可以启用“添加为链接”选项,该选项会将页面的链接添加到报告,而不是页面的副本。这意味着当您更改原始报告中的页面时,更改将反映在以链接形式添加该页面的所有报告中。反之亦然,如果在具有指向该页面的链接的报告中更改了页面,则原始报告中也会更改该页面。

异步报告准备

添加了report.PrepareAsync()方法,除了现有的同步report.Prepare()方法外,还支持异步报告准备。此方法还支持CancellationToken,允许用户在需要时取消报告准备过程,从而改善非阻塞环境中大型报告的控制和性能。此功能将来可能会进一步增强,新方法可提供额外的异步访问。

IfNull 函数

object IfNull(object expression, object defaultValue)
有一个新的函数允许 System.NullReferenceException在评估表达式时避免这种情况。该函数有两个参数:第一个是要评估的表达式,第二个是默认值。如果表达式可以评估,则函数返回其结果。如果不能,则返回默认值。

使用 TextRenderType.HtmlParagraph 旋转文本

添加了使用 TextRenderType.HtmlParagraph 旋转文本的支持。以前,文本旋转仅适用于其他文本渲染器类型。您可以在下面看到文本旋转的示例。

将 .NET 产品更新至版本 2025.1

此外,现在可以正确将此类文本导出为 PDF。

FastReport WPF 和 FastReport Mono 代码编辑器中的文本搜索

现在您不仅可以在 FastReport .NET 代码编辑器中搜索文本,还可以在 FastReport WPF 和 FastReport Mono 编辑器中搜索文本。

在FastReport WPF代码中搜索文本的示例:

将 .NET 产品更新至版本 2025.1

在 FastReport Mono 代码编辑器中:

将 .NET 产品更新至版本 2025.1

Blazor WASM WebReport 的本地化支持

在 FastReport Blazor WebAssembly 中引入了对 WebReport 接口的本地化支持。以前,本地化是通过基于文件的方法进行管理的,这与 WASM 环境不兼容。新方法webReport.SetLocalization(Stream)允许从 Stream 加载本地化,使其与 Blazor WASM 应用程序兼容。

图像导出至WebReport

添加了将报告导出到图像的功能。要将其显示在导出列表中,请添加以下代码:

WebReport.Toolbar.Exports.ShowImageExport = true;

将 .NET 产品更新至版本 2025.1

添加了将报告导出到图像的功能。要将其显示在导出列表中如果需要,您必须启用 WebReport 选项来配置导出到图像 WebReport.Toolbar.Exports.EnableSettings。启用后,您可以单击“齿轮”并在出现的模式窗口中更改设置。,请添加以下代码:

WebReport.Toolbar.Exports.ShowImageExport = true;

将 .NET 产品更新至版本 2025.1

完整变更列表

[Engine]
+ 为 RichObject 添加了 PicturesInParagraph 属性;
+ 添加了异步报告准备方法 PrepareAsync();
+ 添加了将字符串转换为兼容 dbtype 的功能;
+ 添加了打印比例;
+ 在 ToWords 函数中添加了将单词转换为十进制的功能;
+ 添加了西班牙语的区域标识符 22538(西班牙语 - 拉丁美洲)和 3082(西班牙语 - 西班牙(现代排序));
+ 添加了新的 IfNull 函数用于处理表达式。如果表达式不为空,则返回计算表达式的结果,否则返回指定的默认值;
+ 实现了 RichObject 中图片水平位置的计算;
+ 添加了以虚拟主机样式发送请求的功能;
+ 添加了对 TextRenderType = HtmlParagraph 的文本旋转的支持;
+ 添加了为 Totals 的“PrintOn”属性使用标题带的功能;
* 升级了 FastReport.Data.OracleODPCore 中的 Oracle.ManagedDataAccess.Core;
* 将 GetConnection、OpenConnection 和 Dispose 方法标记为虚拟;
* 为 Hyperlink.Value 属性的传入值添加了空值检查;
* 静态验证方法 TryParse 已被引入到 QRCodes 类中;
- 修复了文本中断问题;
- 修复了 PageStart 事件后页面可见性变化的问题;
- 修复了转换为参数类型的问题;
- 修复了检查报告脚本中是否包含停用词(如果变量名称中包含停用词)的问题;
- 修复了启用 GrowToBottom 时文本对象底部边框的可见性问题;
- 修复了分组 DataBand 具有 GrowToBottom 选项时边框加倍的问题;
- 删除了 SVGPictureObject 中子 clipPath 标签的渲染;
- 修复了 FinishReport 事件中的一个错误;
- 删除了将 SubreportObject 添加到 ContainerObject 的无效功能;
- 修复了更改请求的 CommandType(如果已在 GetAdapter 中设置)的问题;

[设计器]
+ 添加了从另一个报告以链接形式打开页面的功能;
+ 为 span 标签添加了斜体、粗体、下划线和删除线字体样式;
+ 添加了通过键盘输入的字符在 TreeView 中进行搜索的功能;
+ 在 WPF 和 Mono 的代码编辑器中添加了搜索功能;
* 添加了对下载字体重复项的检查;
* 将 CurrencyFormat、NumberFormat 和 PercentFormat 类的构造函数中的默认属性值从固定值替换为 CultureInfo.CurrentCulture 中的值;
- 修复了字体选择下拉列表中 Amiri、Cambria Math、DejaVu Math TeX Gyre 字体的错误位置;
- 修复了通过边框编辑器保存边框时导致 System.NullReferenceException 的错误;
- 修复了设计器中 SVG 图像的错误显示;
- 修复了工具提示中“代码”选项卡上一行中声明的变量的显示;
- 修复了“ExtraDesignWidth”模式下的页边距长度;
- 修复了长报告设计器中的参考线长度;
- 修复了下拉列表中未显示所选字体的错误;
- 修复了数据格式的错误应用;
- 修复了删除带有 Subreport 对象的带区时导致 System.NullReferenceException 的错误;

[预览]
+ 在 PreviewControl 中添加了 Outline.Expand 和 Outline.Width 属性;
- 修复预览空 SvgObject 时索引超出范围的问题;
- 修复点击“下一步”按钮后关闭 PreviewSearchForm 的问题;

[导出]
+ 添加了在导出到 Excel 时将所有报告页面合并为一个的功能;
+ 在 Excel 导出中添加了使用自定义格式而不是常规格式的选项;
+ 在 Word 导出中添加了删除线文本格式;
+ 为 Word 导出添加了 MemoryOptimized 选项,该选项允许使用 FileStream 而不是 MemoryStream;
+ 添加了在导出到 PDF 时使用 TextRenderType = HtmlParagraph 旋转文本的支持;
* 格式显示调整 - 格式 'D' 和 'MMMM yyyy' 显示为日期(如果可能则格式 'MM yyyy'),带有负模式 '-n' 的数字格式以标准 Excel 数字格式显示;
* 将 PictureObject 边框的导出更改为 Word 中的图像;
* 优化了导出为 PDF 时的内存消耗;
* 将表格导出的布局更改为已修复;
- 修复了 HTML 导出中 HTML 标签的渲染问题;
- 修复了负 PDF 属性值的导出问题;
- 导出到 Excel 后修复了浏览器中单元格边框的颜色;
- 修复了 Word 和 PowerPoint 中单元格的边框样式;
- 修复了将页眉和页脚中的图片导出到 Word 的问题;
- 修复了删除临时文件时的错误;
- 修复了导出为 HTML 时行高的计算问题;
- 修复了将双线样式的边框导出为 PDF 时出现错误的
问题; - 修复了 HTML 导出中的透明度错误;
- 修复了在 HTML 导出过程中 <p> 标签显示不正确的问题;
- 修复了 Word 导出时“UseHeaderAndFooter”选项的默认值;
- 修复了将表格导出到 Word 时图像的位置不正确的问题;
- 修复了导出到 Excel 时在 TableObject 之后设置的对象行高问题;
- 修复了使用替代查找将字体导出到 PDF 时出现的 NullReferenceException 问题;

[WebReport]
+ 添加了在选项卡中显示报表名称而不是参数的功能;
+ 添加了 SetLocalization 方法,用于从 Stream 中加载 WebReport 本地化;
+ 添加了在 WebReport 中将报表导出为图像格式的功能;
- 修复了从 WebReport 中的自定义应用程序样式继承“box-sizing”的问题;
- 修复了预览 WebReport 时出现的 IndexOutOfRange 异常;
- 修复了导致 WebReport.Debug 属性在启用时不显示报表中的错误信息的错误;
- 修复了单击 WebReport 中的选项卡时可能发生 NullReferenceException 异常的错误;
- 修复了在 WebReport 中重置 ExtraFilter 的问题;
- 修复了横向打印 WebReport 页面的问题;

[在线设计器]
+ 增加了一种更新表格的方法;
- 修复了在线设计器中空 SVG 对象的预览;

[.NET Core]
+ 在 FastReport Core 中添加了 MS SQL 存储过程的方法;

[常用]
+ 增加了通过代码设置参数表达式的方法;
+ 增加了签名安装时的时间戳;

[附加功能]
+ 增加了连接到 Oracle 存储过程的能力;
* 将 Firebird.Client 版本更新至 10.0.0;
* 更新了易受攻击的包 Npgsql(Postgres) 和 System.Data.SqlClient;
* 更改了在连接到 Linter 时按下“高级”按钮时显示的错误消息文本;
- 修复了 Report 对象的表单设计器中缺少菜单的错误;
- 修复了 Postgres“字符变化”类型的错误;

[演示]
- 修复演示报告 Barcode.frx。

相关文章:

全新更新!Fastreport.NET 2025.1版本发布,提升报告开发体验

在.NET 2025.1版本中&#xff0c;我们带来了巨大的期待功能&#xff0c;进一步简化了报告模板的开发过程。新功能包括通过添加链接报告页面、异步报告准备、HTML段落旋转、代码文本编辑器中的文本搜索、WebReport图像导出等&#xff0c;大幅提升用户体验。 FastReport .NET 是…...

信息学科平台系统设计与实现:Spring Boot技术手册

5系统详细实现 5.1 用户信息管理 基于保密信息学科平台系统的系统管理员可以对用户信息查询。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.2 教师信息管理 管理员可以对教师信息进行查下和删除。具体界面如图5.2所示。 图5.2 教师信息界面 5.3 学科动态管理 管理…...

conda下jupyterlab安装问题以及交互绘图问题记录

安装 1. 直接conda install jupyterlab就好&#xff0c;只要在base环境下安装就行&#xff0c;可以在任意环境下执行jupyter lab启动。 2. 打开jupyter lab后显示Could not determine jupyterlab build status without nodejs&#xff0c;可以执行conda install nodejs安装no…...

尚硅谷react教程_扩展_setState更新状态的2种写法

1.setState setState更新状态的2种写法&#xff08;1&#xff09;.setState(stateChange,[callback])----对象式的setState1.stateChange为状态改变对象&#xff08;该对象可以体现出状态的更改&#xff09;2.callback是可选的回调函数&#xff0c;它在状态更新完毕、界面也更新…...

C语言编写的自动取款机模拟程序

#include〈stdio。h> #include<string。h> #include <stdio.h> #include〈stdlib.h〉 #include〈direct.h〉 #include<io.h> #include 〈errno。h> /********************************************************…...

【常用数据结构】开发中常用的数据结构?

开发中常用的数据结构包括数组、链表、栈、队列、树、图、堆和散列表&#xff08;哈希表&#xff09;‌。这些数据结构在软件开发中有着广泛的应用&#xff0c;并且各自具有独特的特点和用途。 数组 数组是最基本的数据结构之一&#xff0c;用于在内存中连续存储多个元素。数…...

OCC 点云

OCC的基础知识可能还是要系统学习一下&#xff0c;部分导入的模型面类型是很多面都是GeomAbs_BSplineSurface&#xff0c;最终获取参数都要拟合一下&#xff0c;拟合后的生成的面对象没有大小&#xff0c;比如平面只有矢量&#xff08;大小没有思路&#xff09; 圆柱拟合面没有…...

方法重写与方法重载

1. 方法重载与方法重写的定义 方法重写&#xff08;Overriding&#xff09; 方法重写&#xff08;Overriding&#xff09;是指在子类中重新定义与父类中相同的方法。此操作允许子类提供特定的实现&#xff0c;以替代父类的实现。方法重写是实现多态性&#xff08;Polymorphis…...

Vue3实现地球上加载柱体

最终效果为上图。 实现该技术&#xff0c;需要一些技术&#xff0c;我分别罗列一下&#xff1a; canvas&#xff1a;需要使用canvas根据json来绘制地球&#xff0c;不懂的可以看这篇canvas绘制地球 threejs&#xff1a;需要会使用threejs&#xff0c;这里并没有使用shader&am…...

OpenGL入门003——使用Factory设计模式简化渲染流程

前面两节已经学会了如何使用opengl创建窗口并绘制三角形&#xff0c;我们可以看出有些步骤是固定的&#xff0c;而且都写在main.cpp&#xff0c;这一节我们将了解如何使用Factroy设计模型。将模型渲染逻辑封装在一个单独的类中&#xff0c;简化开发流程&#xff0c;且提高代码复…...

01_AI编程案例展示:借助AI轻松爬取海量网盘链接

爬虫案例展示 今天,我们将展示如何利用AI快速开发一个网络爬虫&#xff0c; 使用的工具是Python和Claude 3.5 Sonnet(国内可用豆包替代) 我们的目标是爬取panhub.fun网站上的夸克网盘链接, 即使你是编程新手,也可以轻松完成这样的任务。 案例1-批量爬取panhub网盘整合包 下…...

【机器学习导引】ch5-神经网络

Q&A 1x1 卷积层在深度学习中的作用&#xff1f; 1x1 卷积层在深度学习中具有几个重要的作用&#xff1a; 通道压缩&#xff1a;1x1卷积可以通过调整输出通道数来减少特征图的深度&#xff0c;从而降低计算成本和参数数量。这有助于在保持特征的情况下简化模型。特征融合&am…...

【Axure原型分享】颜色选择器——填充颜色

今天和大家分享颜色选择器——填充颜色的原型模板&#xff0c;点击颜色区域可以弹出颜色选择器&#xff0c;点击可以选择对应颜色&#xff0c;颜色区域会变色我们选择的颜色&#xff0c;具体效果可以观看下方视频或者打开预览地址体验。 【原型效果】 【Axure高保真原型】颜色…...

怎么安装行星减速电机才是正确的

行星减速电机由于其高效、精密的传动能力&#xff0c;广泛应用于自动化设备、机器人、机床以及其他需要精准控制的领域。正确的安装行星减速电机对于确保设备的性能与延长使用寿命至关重要。 一、前期准备 在进行行星减速电机的安装之前&#xff0c;必须做好充分的前期准备工作…...

Unity程序化生成地形

制作地形&#xff1a; 绘制方块逐个绘制方块并加噪波高度删除Gizmos和逐个绘制 1.draw quad using System.Collections; using System.Collections.Generic; using UnityEngine;[RequireComponent(typeof(MeshFilter))] public class mesh_generator : MonoBehaviour {Mesh m…...

Vxe UI vue vxe-table 表格中使用下拉表格,单元格渲染下拉表格

Vxe UI vue vxe-table 表格中使用下拉表格&#xff0c;单元格渲染下拉表格 单元格中渲染下拉表格&#xff0c;需要使用到 vxe-table-select 这个组件&#xff0c;在 vxe-table 4.7 中使用非常简单&#xff0c;只需要配置好渲染器数据源就可以。 支持单选 也可以多选 代码 …...

Android开发教程实加载中...动效

Android开发教程实加载中…动效 加载中&#xff0c;发送中&#xff0c;匹配中都可以用&#xff0c;就是后面是三个点还是两个点&#xff0c;不断在切换 一、思路&#xff1a; 隔500ms发送一次&#xff0c;改变内容 二、效果图&#xff1a; 看视频更加直观点&#xff1a; An…...

NVR设备ONVIF接入平台EasyCVR视频融合平台智慧小区视频监控系统建设方案

一、方案背景 智慧小区构成了“平安城市”建设的基石。随着社会的进步&#xff0c;社区安全问题逐渐成为公众关注的热点。诸如高空抛物、乱丢垃圾、破坏车辆、入室盗窃等不文明行为和违法行为频繁出现。目前&#xff0c;许多小区的物业管理和安全防护系统仍然较为简单和陈旧&a…...

适配器模式适用的场景

适配器模式是一种常用的设计模式&#xff0c;能够将不兼容的接口转换为客户端所需的接口。在实际开发中&#xff0c;我们常常会遇到需要统一接口、替换外部系统、兼容旧接口或适配不同数据格式的情况。本文将结合详细的代码示例&#xff0c;介绍适配器模式的适用场景。 1. 统一…...

Ambari里面添加hive组件

1.创建hive数据库 在添加hive组件之前需要做的事情&#xff0c;先在master这个虚拟机里面创建好hive 先进入虚拟机里面进入mysql 然后输入这个命令看看有没有自己创建的hive数据库 show databases;有的话会显示下面这个样子 没有的同学使用以下命令可以在MySQL中创建hive数…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...