我们很高兴为您带来期待已久的更新,我们在更新中特别注重用户体验和软件代码质量。在这个版本中,我们努力倾听用户的要求。从 2023.3 版开始,我们增加了以下内容:新的对象-RFID 标签、对 WebP 图像的支持、异步报告查看、右键菜单中的工具栏等。这些更改适用于以下产品:
- FastReport WPF
新功能
新的 RFIDLabel 对象
新版本包含一个新对象--RFID 标签。它可以识别货物,与条形码非常相似,但与条形码不同的是,它使用无线电信号。这样就可以在短时间内扫描大量物品。
标签包含 4 个数据库:用于存储访问和销毁密码的保留库、电子产品代码库、标签标识符库和用户数据库。在 FastReport .NET 产品系列中,RFID 标签被表示为一个报告对象。标签可通过双击访问的用户友好型编辑器进行定制。

某些 Zebra 打印机可以创建 RFID 标签,因此,除了标签对象本身,我们还将其导出到 ZPL。为了正确导出,RFID 标签必须是页面上的单个副本。
支持 WebP 图像
现在有一个插件支持 WebP 格式的图片。现在,您可以使用报表设计器中的编辑器和代码将它们上传到 PictureObject 中。FastReport.Skia 无需插件即可支持 WebP 图像,但在上传时会转换为 PNG 格式。
有关格式和插件使用说明的详细信息,请参阅本文。
在设计器窗口中预览和异步查看报告
现在,在应用程序中使用设计器时,可以在设计器窗口中启动报告预览。以前,预览总是在单独的窗口中启动。为此,请在代码中添加以下一行:
Config.DesignerSettings.EmbeddedPreview = true;
这样看起来就像这样了:

在某些情况下,这种模式可能更方便。
我们还为报告准备和查看引入了异步方法:Report.PrepareAsync() 和 Report.ShowAsync()。它们可用于处理大型报告。在这种情况下,您可以在准备报告的同时使用预览窗口。这样,用户就不会觉得应用程序被冻结或反应迟钝。
右键菜单中的工具栏
右键单击对象时的上下文菜单得到了改进。顶部出现了一个工具栏,其中包含编辑、剪切、复制、粘贴等常用项目。
以前的菜单是这样的:

新菜单更加紧凑,更符合人体工程学:

导出到 S3
我们增加了将已编写和导出的报告上传到简单存储服务(简称 S3)的功能。新的导出功能位于准备报告保存菜单的 "存储 "选项卡中。
首次导出时,您需要在授权窗口中输入注册数据。

您可以在 S3 账户设置中获取必要的密钥。您可以在服务文档中找到更多详细信息。
授权成功后,您将看到一个导出窗口。

在这里您可以选择要保存的数据桶、类型和文件名。如果您选择的文件类型不是 "就绪报告",则相应导出的设置将可用。
自定义条形码字体设置的功能
字体 "属性现在可用于 "条形码 "对象。它允许您设置显示条形码文本时使用的字体参数。默认字体为 Arial,与之前版本中使用的字体相同。现在您可以选择不同的字体,更改其大小、样式等。因此,您可以创建这样的条形码:

不过,您应该注意字体设置。并非所有扫描仪都能读取此类条形码。
导出到 Excel 2007 时的 "将一般格式转换为文本 "选项
Excel 2007 有多种数据格式,其中有两种非常相似:一般格式和文本格式。
常规格式是默认格式。在大多数情况下,这种格式的数字显示与输入的一样。但如果单元格宽度不足以显示整个数字,则会舍入。
文本格式总是按输入的数据显示。
FastReport .NET 也有多种格式,例如通用格式、数字格式、日期格式等。导出时会选择适当的格式,数字格式会转换为数字格式,而日期格式仍为日期。
FastReport .NET 中的一般格式也是默认使用的。它显示的数据与输入的数据完全一致。一般格式为 System.String。反过来,FastReport .NET 中没有单独的文本格式。
Excel 2007 导出有一个新选项,允许您将 FastReport .NET 的常规格式转换为 Excel 文本格式(常规格式默认导出为常规格式)。

在以前的 FastReport .NET 版本中创建的报告在新版本中将以相同的方式导出,因为该选项默认是禁用的。
支持部分报告编译
FastReport.Core、FastReport.Core.Skia 和 FastReport.CoreWin 现在启用了报告的部分编译,以便在报告中未更改报告脚本且不存在不支持部分编译的对象的情况下加快报告的编制速度。您可以使用以下命令启用该功能:
FastReport.Utils.Config.CompilerSettings.ReflectionEmitCompiler = true;
启用 Reflection.Emit Compiler 不会导致任何性能下降。如果新报告中无法使用新编译器,它将直接使用标准程序,而不会对报告造成损害。
新的 WebReport 功能
改进 WASM
以前,您只能使用我们的 FastReport.Blazor.Wasm 库查看在浏览器中打开的报告。本次更新增加了对导出的支持。现在,用户可以将生成的报告导出为各种格式,就像在普通 WebReport 中一样。

此外,Reflection.Emit 编译加速了在 WebAssembly 中无脚本报告的加载和准备。
工具栏个性化
现在,您可以创建按钮、下拉菜单和输入框等元素,并将它们添加到工具栏中。这些元素可以有各种选项,包括图像、标题和样式。您还可以使用 JavaScript 和 C# 实现逻辑。
向工具栏添加自定义元素的示例:
var button = new ToolbarButton()
{
Title = "MyCustomButton",
OnClickAction = new ElementClickAction()
{
OnClickAction = async (webreport) =>
{
webreport.LocalizationFile = "MyLocalizationFile";
}
},
};
var select = new ToolbarSelect()
{
Title = "MyCustomSelect",
Items = new List<ToolbarSelectItem>
{
new ToolbarSelectItem()
{
Title = "MySelectItem",
OnClickAction = new ElementScript()
{
Script = "console.log('My item is working')"
}
}
}
};
var input = new ToolbarInput()
{
InputType = "number",
OnChangeAction = new ElementChangeAction()
{
OnChangeAction = async (webreport, inputValue) =>
{
webreport.Report.Prepare();
webReport.Toolbar.Height = int.Parse(inputValue);
}
}
};
webReport.Toolbar.InsertToolbarElement(button);
webReport.Toolbar.InsertToolbarElement(select);
webReport.Toolbar.InsertToolbarElement(input);
因此,更改后这些自定义元素将出现在工具栏中:

FastReport .NET 系列产品的完整更新日志
[引擎]
+ 添加了新的 RFIDLabel 对象;
+ 为 GS1-128 条形码添加了 GS1 自动格式化功能;
+ 在转换 RDL 模板时,增加了在其他表格的单元格中加载表格的功能;
+ 添加了 Config.CompilerSettings.ReflectionEmitCompiler 属性,启用该属性后,如果脚本未更改,则可加快报告准备速度(仅在 .NET Core/.NET 中有效);
+ 添加了使用新的 "Font "属性配置条形码字体的功能;
* 改进了与私有字体集合的协同工作;
* 取消了演示版-5 页的限制;文本随机替换为 "演示版";
- 修复了在计算等于此参数的参数表达式时出现的无限循环;
- 修复了通过移动扫描仪读取 DataMatrix 条形码的问题;
- 修复了一个错误,即在手动传输过程中,删除线显示不正确;
- 修复了翻译 RichObject 对象的移位计算问题;
- 修复了将空 Variant 转换为其他类型的问题;
- 修复了删除一列后列数据仍保留在报告中的问题;
- 修复了 VisibleExpression 属性对矩阵和表格行列的影响;
- 修复了从 font_hash 字典中删除不再存在的字体的问题;
- 修复了 RichObject 中未排序的制表符停止符的错误;
- 修复了一个导致异常的 GSUB 表解析错误;
- 修复了使用 "曲线文本 "选项导出到 PDF 时丢失流停止符,导致 System.StackOverflowException 异常的问题;
- 修复了转换 RDL 模板时加载对象边框的错误;
- 删除了 GS1-128 条形码中的前三个字符;
- 修复了 Code93 扩展条形码的编码表;
- 修复 DataMatrix 条形码中的文本编码;
- 修复了因缺少空格而在断字时出现的文本渲染错误;
- 修复了启用 ConvertRichText 选项时从右向左的文本转换;
- 修复了 HtmlTextRenderer 中的换行问题;
- 修复了当页面列打印在带状列上时的错误;
- 修复了在 RichObject 中使用填充时文本段落和某些段落之间的空行高亮显示为白色的问题;
- 修复了在使用 ConvertRichText = true 时,在 RichObject 中选择白色文本部分的问题;
- 修复了在 ConnectionStringExpression 返回空值时忽略 ConnectionString 的问题;
- 修复了 RichObject 中翻译文本对象的缩进;
- 修复了翻译 RichObject 时对象的定位问题;
- 修复了从 JasperReports 导入表格的问题;
- 清除 TableObject 时出现 System.NullReferenceException 的问题;
- 修复了 ConvertRichText = true 时 RichObject 中的水平图像对齐问题;
- 修复了当 TextObject 制表符停止符为负值时的 System.NotImplementedException 异常;
- 修复了表达式包含函数时的空转换;
- 当 JSON 数据源主机的字符集为空时,修复了 System.ArgumentException 异常;
- 修复了翻译 RichObject 时 TableObject 的定位问题;
[设计器]
+ 增加了从 Excel 连接的第一行获取列名的功能;
+ 为 "条形码 "对象添加了类别;
+ 为设计器窗口中的报告预览添加了 Config.DesignerSettings.EmbeddedPreview 属性;
+ 在 "对象 "面板中为对话框控件添加了 "其他 "类别;
+ 增加了在联机设计器中显示翻译对象的功能;
+ 添加了数据连接向导形式的过程选择页面;
+ 在上下文菜单中添加了工具栏;
+ 在 SberbankQr 编辑器的 "付款金额 "字段中增加了使用表达式的功能;
+ 增加了对 SQL 查询参数的解析;
+ 在请求参数名称匹配时添加警告;
+ 在 CSV 连接中通过 CsvFile 属性更改文件时,增加了对文件是否存在的检查;
* 查询生成器 "界面中的更改;
* 更新了 "数据连接向导"。改进了界面,修复了错误,提高了速度;
* 更改了设计器中带有坐标/尺寸的工具提示;
- 修复了通过 URL 连接 CSV 的问题;
- 修复了从云端打开文件时 "另存为... "操作中的一个错误;
- 修复了 .NET 6.0 中的 "地图 "对象(空多边形标签);
- 修复了从设计器配置文件中读取值的错误;
- 修复了在 "代码 "选项卡上双击右键后创建新报告页面时出现的错误;
- 修复了关闭预览窗口后数值参数值为空的错误;
- 修复了一个错误,即在授权过程中设计器没有响应;
- 修复了仪表对象编辑器中的错误;
- 修复了合并包含参数连接的字典时出现的 System.NullReferenceException 异常;
- 修复了使用 ConvertRichText = true 属性时 RichObject 中的文本高亮问题;
- 修复了当文本对象中有多个表达式时格式顺序的错误;
- 修复了 "插件 "选项卡上设计器设置窗口中的缩放错误;
- 修复了 Visual Studio 中数据源选择窗体的错误缩放;
- 修复了在预览页面中添加无限宽页面时显示不完整的问题;
- 修复了加载受密码保护的报告时出现的错误;
- 修复了某些控件的缩放问题;
- 修复了在连接编辑过程中为未选定的表格选择字段时出现的错误;
- 修复了一个错误,即在连接编辑过程中,所有表格都被选中,但实际上只有部分表格被选中;
- 修复了在 FRX 页面上使用不正确的 XML 报告时出现的 System.IO.FileFormatException 异常;
- 当缩放比例超过 100%时,修复了 MSChartObject 中字体设置的错误工作;
- 修复了通过 URI 连接 CSV 数据库时的错误;
- 修复了在启用了 CanBreak 属性的 DataBand 上使用 MSChartObject 和 SparklineObject 运行报告时出现的错误;
- 修复了在设计器中显示 SVG 的问题;
- 修复了 "报告树 "窗口中字体大小的错误;
- 修复了 "关于 "窗口在改变缩放比例时的行为;
- 修复了在缺少标题时忽略 MSChartObject 渲染的问题;
[导出]
+ 添加导出至 S3;
+ 在导出图像时添加导出页面边框;
+ 在 HTML 导出形式中添加了 "使用分页符 "选项;
+ 在导出到 Word 2007 时,增加了启用或禁用为每页添加书签的选项;
+ 当行数接近 Excel 2007 工作表允许的最大行数时,增加了创建新工作表的功能;
+ 在 Excel 2007 导出中添加了 "将一般格式转换为文本 "选项;
+ 扩展字体名称;
+ 改进了 PDF 导出的字体打包子系统;
* 加快了向 PDF 导出的速度;
* 优化了将交互式表格导出为 PDF 的过程;
- 修复了使用 Skia 导出时忽略 LineHeight 的错误;
- 修复了多线程导出 PDF 和私人字体集合的问题;
- 修复了加载繁体中文字体的问题;
- 在导出到 PDF 时,修复了从右到左的字体字距;
- 修复了一个错误,即在导出 RTF 时启用 ConvertRichText 属性后,小于 10 的字体显示不正确;
- 修复了在导出 PDF 时出现的字体分隔错误;
- 修复了在高分辨率显示器上以 "曲线文本 "模式导出 PDF 时的一个错误;
- 修复了在 PDF 导出时为某些对象绘制暗框的错误;
- 修复了导出在 FastReport.Utils.FRPrivateFontCollection 中注册的字体族的问题;
- 修复了在导出为 RTF 时显示 HTML <strike>、<sub> 和 <sup> 标记的问题;
- 修复了一个 Bug,该 Bug 在为 Skia 导出带图片的报告时会出错;
- 修复了将页脚对象导出为 RTF 和 DOCX 的问题;
- 在导出到 Excel 2007 后,单字节空格不会从字符串中消失;
- 在导出为 CSV 时增加了额外的文本分隔符;
- 修复了导出为 CSV 时额外分隔符的错误;
- 修复了多线程导出到 PDF 时字体受损的错误;
- 修复了在导出 HTML 时无法处理连字符的错误;
- 修复了在导出到 PDF 时 RichObject 中超链接的错误操作;
- 修复了 RTF 导出中的行高乘数;
- 修复了在 Google Drive 中重复保存报告的问题;
- 修复了在 OneDrive 中保存报告的 API 调用;
- 修复了导出为 PDF 时显示 SVG 的问题;
- 修复了导出树中的错误;
- 修复了将带有 HTML 标记的文本导出到 Word 2007 的问题;
[Web报告]
+ 在 WebReport 中添加了报告阴影;
+ 增加了向 Wasm 导出报告的支持;
* 更改了单页报告的工具栏行为;
* 更改了在 WebReport 中从浏览器打印报告的行为。现在打印页面会自动关闭;
- 修复了 WebReport 中点击事件不起作用的错误;
- 修复了网络报告中导出到 Word 2007 的错误;
- 修复了一个错误,即某些报告对象(例如 RichObject)可能无法在网页设计器中显示;
- 修复了一个错误,在使用设置的情况下,单页报告无法导出;
- 修复了一个错误,当参数发生变化时,报告不会更新;
[.NET核心]
- 修复了启用 InvariantGlobalization 选项时的一个错误;
[演示]
* 更改了 "按总计排序组 "模板中的脚本,以便在使用 "组页脚 "带的 "可扩大 "和 "可缩小 "属性时,能正确执行报告和显示总计;
[附加功能]
+ 在使用 PDFSimpleExport 导出时,增加了导出页面边框的功能;
+ 添加了使用 MySqlConnection 插件连接 MariaDB 的功能;
+ 在连接 SQLite 的文件过滤器中添加了 .db 格式;
+ 添加了支持 WebP 格式图像的插件;
* RPTImportPlugin 已更新至 .NET Framework 4.7.2;
- 修复了一个错误,该错误导致在连接 ClickHouse 和 MongoDB 时出现 System.IO.FileLoadException 异常;
- 修复了数据源选择表单无法在前台打开的问题。
渝公网安备50010702505508