整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

FastReport 全系.NET控件升级v2024

FastReport 全系.NET控件升级v2024,已覆盖支持全新.NET 8 框架 ~

astReport 作为一款国际知名的报表开发控件,其跨平台的多语言脚本引擎FastScript,桌面OLAP FastCube,被世界各地的开发者所认可。

此次FastReport旗下.NET全系更新至v2024新版,在此版本中,上线了许多开发者关注的功能,例如:自定义线条样式、更改“图片”对象的形状、设置热键、支持 ODBC 连接器等等,这些功能大大简化了报告模板的开发, 一起来看看吧↓↓↓

FastReport .Net官方最新版免费下载试用,历史版本下载,在线文档和帮助文件下载-慧都网

改进了 Table 对象的使用

与报表设计者的合作变得更加容易和方便。有用于处理“Table”对象的新功能。

1. 快速添加列和行。如果您指向表格左侧的行边界或顶部的列边界,则会出现条件显示,显示将添加新行或新列的位置。还有一个按钮,单击该按钮将向表中添加新行或新列。

该表必须处于活动状态(选定)。否则,新的控件将不会出现。

2. 更改行高和列宽。现在,您可以通过使用鼠标拖动列或行边框来相应地更改列宽或行高。

3. 下拉菜单“插入”。当您右键单击上下文菜单中的单元格时,您将看到一个下拉列表,允许您在单元格旁边插入新列或行。

4.热键。使用热键 Ctrl+C 和 Ctrl+V 复制单元格文本并将文本粘贴到单元格中。

合并文本对象

现在,有一种将文本对象与相同文本合并的机制。为此,“Text”对象中添加了一个新的 MergeMode 属性,该属性允许您配置合并模式。新属性的工作方式与合并模式下的重复属性非常相似,但存在重要区别:

重复项仅适用于位于“数据”区域中的一个对象。例如,Data1 带区有一个名为 Text1 的文本对象,并且“Duplicates”属性设置为“Merge”。构建报表时,在 Data1 的第一次迭代中,当 Text1 中显示第一条记录时,将显示文本“10”。在 Data1 的第二次迭代和第二条记录的输出中,相同的文本将在 Text1 中输出。结果,Text1 的两个实例将被连接,并且文本“10”将仅显示一次。

MergeMode 与重复项不同,可以合并不同文本对象的实例,并且可以垂直和水平执行此操作。例如,在构建报表时,文本“10”将显示在位于右侧旁边的 Text1 和 Text2 中。在本例中,Text1 的 MergeMode 属性等于 Horizontal。在这种情况下,文本对象将被连接并且文本“10”将被显示一次。

自定义线条样式

对于 LineObject、ShapeObject、PolyLineObject 和 PolygonObject 对象,添加了一个新属性 - DashPattern,它允许您创建线条样式。以前,这些对象的线条样式是使用 Border.LineStyle 属性设置的。只有六种样式可用:Solid、Dash、Dot、DashDot、DashDotDot 和 Double。使用新属性,您可以指定一组值,这些值将依次指定笔画和空格的长度。

例如,对于值 5、4、3 和 2,我们设置一个模式,其中将显示长度为 5 的笔划、长度为 4 的空白、长度为 3 的笔划和长度为 2 的空白。然后,这些值将从 5 开始循环重复。这里的测量单位是 Border.Width。

如果 DashPattern 集合中至少有一个值,则这一新机制将起作用。并且 Border.LineStyle 属性将被忽略。如果 DashPattern 集合为空,Border.LineStyle 属性机制仍然有效。

下面,您可以看到一些示例:

更改 Picture 对象的形状

现在可以更改“图片”对象的形状。PictureObject 现在有一个新的 Shape 属性,允许您指定以下形状:矩形(默认)、圆角矩形、椭圆形、三角形和菱形。

设置热键组合

现在可以根据您的判断自定义热键组合。您可以配置“打开文件”、“保存文件”、“准备报告”等操作的命令。为此,设计器设置中的“界面”选项卡中添加了一个新按钮。

按下它会打开一个用于设置热键组合的窗口。

这是一个包含操作及其分配的键盘快捷键的表格。您可以通过双击所需的行来更改组合。您还可以使用向上和向下键浏览表格,并通过按 Enter 键进行更改。您还可以将所有组合恢复为其默认值。

.NET 8 支持

添加了 对 FastReport .NET、FastReport.Core、FastReport.Core.Skia 和 FastReport.WPF 的.NET 8 支持。该平台提高了应用程序性能并为您的项目添加了许多新功能。

FastReport.Web 拒绝支持 .NET Standard 2.0

为了涵盖越来越多的不断添加到 .NET 世界的技术,我们决定放弃 Web 集成库 FastReport.Web (WebReport Core/Skia) 中旧的 .NET Standard 2.0 兼容层。此产品支持的 TargetFramework 最低版本现在为 .NET Core 3.1 及更高版本(包括 .NET 5、6、7 和 8)。FastReport.Core 和 FastReport.Core.Skia 仍将支持 .NET Standard 2.0,无需更改。

添加了对 FastReport.Core 的 ODBC 连接器支持

长期以来,我们的用户一直要求我们为我们的跨平台产品添加通过 ODBC 协议连接到数据库的功能。此功能以前仅存在于 FastReport .NET 和 FastReport WPF 中。通过此更新,它也可在 FastReport.Core 和 FastReport.Core.Skia 中使用。要使用它,请将 FastReport.Data.Odbc 插件添加到您的项目中并使用以下代码注册它:

FastReport.Utils.RegisteredObjects.AddConnection(typeof(OdbcDataConnection));

WebReport 中的变化

通过电子邮件导出到 WebReport

现在,WebReport具有通过电子邮件发送报告的功能。要启用此功能,您需要在注册FastReport服务时配置SMTP服务器参数。只需添加代码:

services.AddFastReport(options=> options.EmailExportOptions=new FastReport.Web.EmailExportOptions
{
Address="SomeAddress@example.com",
EnableSSL=true,
Host="Host",
MessageTemplate="Message template here",
Name="John",
Password="password",
Port=25,
Username="Username"
});

之后,激活选项 WebReport.Toolbar.Exports.ShowEmailExport,用户将能够通过电子邮件发送报告:

当您单击“通过邮件发送”按钮时,系统将要求用户通过方便的模式窗口配置消息:

在 Blazor WebAssembly 中打印

WebReport 现在允许您在 Blazor WebAssembly 中打印报告。该功能默认是启用的,但如果您需要禁用它,只需使用以下代码:


webReport.Toolbar.ShowPrint=false;


现在可以直接从 Blazor WebAssembly 打印您的报告:

完整变更列表

[引擎]
+ 添加文本对象的合并;
+ 添加了改变 PictureObject 形状的功能;
+ 添加了创建自定义线条样式的能力;
* 现在可以无阻塞地使用字体;


- 修复了当 TextRenderer=HTMLParagraph 时文本超出 TextObject 边界的问题;
- 修复了从 PrivateFontCollection 创建字体的问题;
- 修复了 RichObject 中不正确的文本颜色;
- 修复了 RichObject 和图像之间的中断;
- 修复了如果指定了DetailedControl 属性,当DateTimePicker 对象失去焦点时的错误;
- 修复了条形码中的错误(在 HiDPI 上显示、导出为 PDF);
- 修复了 HTMLTextRenderer 中的缩进;
- 修复了不正确的 RichObject 中断;

[设计器]
+ 在设计器设置中添加“显示进度窗口”属性;
+ 添加了配置热键组合的功能;
*更新了链接检查;现在可以正确处理带有空格的链接;
- 修复了缩放小尺寸 RoundRectangle 时出现多余线条的问题;
- 修复了 Barcode 93 Extended 中的斜杠编码;
- 修复了合并词典时删除链接的问题;
- 修复了匈牙利本地化中日期或时间格式选择的错误;

[预览]
-修复了当页面高度或宽度无限大时页面边框尺寸不正确的问题;

[导出]
+ 实现将每个图像保存在单独的线程中;
+ 添加了导出到 Excel 2007、Word 2007 和 RTF 时事件处理程序的缺失链接;
+ 添加了导出到 ZPL 时缩放条形码的新属性;
+ 添加了在 Excel 2007 中将报表划分为工作表的组选择;
+ 添加了导出到 Excel 2007 时禁用工作表分组的功能;
+ 添加了导出到 SVG 时使用换行模式进行纹理填充;
* 导出到云存储时,收到授权码后窗口自动关闭;


- 更正了私人字体集合;
- 修复了解析 GSUB 表示的错误;
- 修复了将 DashDot、DashDotDot 和 Double 对象边框样式错误导出到 PDF 的问题;
- 修复了 HTML 导出过程中仪表中的数字显示模糊的错误;
- 修复了 S3 导出中 ContentMD5 标头的计算;
- 修复了导出到 ZPL 时文本位置不正确的问题;
- 修复了 GaugeObject 到 PowerPoint 2007 的错误导出;


- 修正了在 Word 2007 中填写分层导出时 RadialGauge 的错误导出;
- 修复了错误导出 RadialGauge 并填充非分层 HTML 的问题;
- 修复了导出到 SVG 时纹理填充的“Clamp”传输模式下的显示;
- 修复了在 Excel 2007 导出中使用 HTML 标签时文本大小的变化;
- 修复了导出到 Excel 2007 时带有选项卡的 HTML 标签的错误行为;
- 修复导出PDF时水印质量降低的问题;
- 修复了在 Word 2007 中导出到表格时缩进不正确的错误;
- 修复了导出到 Word 2007 时复选框中的图像定位;

[WebReport]
- FastReport.Web 中删除了对 .NET Standard 2.0 的支持;
- 修复了 Blazor 应用程序中导出时的错误;
- 修复了在 WebReport 中使用 PrintHtml 打印时忽略边距的问题;

[.NET Core]
- 修复了导出为PDF时文本宽度计算错误的bug;

[演示]
- 修复了最小化演示新建后显示导航菜单的错误;

[Extras]
+ 在 MySqlDataConnection 中添加了到 CLR 类型的 Variant 转换;
+ 添加了FastReport.Data.Odbc插件;
+ 为 FastReport.Data 连接器插件添加了对 FastReport.WPF 的支持;
* 更改了有关请求中重复名称的消息的行为;
- 修复了请求中参数的自动创建

tml页面:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>分页测试</title>

<style type="text/css">

<!--

.A4 {

page-break-before: auto;

page-break-after: always;

}

-->

</style>

</head>

<body onload="window.print();">

<div class="A4">第一页</div>

<div class="A4">第二页</div>

</body>

</html>

网页分页打印的核心思想:

css属性:page-break-after的使用

window.print();的使用

页面设置:

1、去掉"页眉页脚"的勾选项

2、去掉"背景"的勾选项

3、其他设置:打印机的选择、打印页码范围、打印方向、彩色打印/黑白打印、纸张尺寸、边距……

近听说了一个概念,叫做“知识的诅咒”,大概的意思是,人们总会高估自己的表达、和别人对于自己所表达的东西的理解程度。也就是说,我们大家对于自己所熟知的一些事物,本能地会认为与自己有交流的人也会熟知,但是呢,对方可能只是在一脸懵x地看着你在那里胡言乱语。

一个2岁的娃,真的能理解3?

这也大概能理解为什么很多人一给娃教作业就发飙,你其实只是一厢情愿地认为娃的这些作业都很简单。同时,也是大多数家长会在初二左右自动退出学生作业辅导活动的原因。

### 需要准备

最近因为疫情原因,娃娃都在家里,这学期的课本被很多好心人放在网上,家长可以自己去打印给娃。

然而,给娃打印作业的各种姿势,却是五花八门,无所不用其极,最牛最快捷的是下面这位,都不用打印出来就给做完了:

用保鲜膜写作业

还有手机上面截图的、电脑上面截图的、拍照片的、之后再去打印的,或者直接手抄的,,等等。

其实呢,截图、拍照这些方式,会把原来的文字或者图片变得更加模糊,打印之后会更加难以阅读和辨认,对娃的视力也是一种不好的影响。哪如何才能尽量地保留原来的清晰度的情况下将网页给打印出来呢。

回到今天要提的`Chrome DevTools`,我有时候会把它叫做`谷歌浏览器自带的开发工具`,或者“检查工具”,因为在一般的网页,右键菜单里面有一项叫做”检查“。

所以呢,最好是,有一台电脑,以及电脑上安装了Chrome浏览器,搜”chrome “的话,一般除了广告之外的第一个结果就是它的官网,安装很轻松简单,很快就好。

这时候,使用Chrome浏览器打开任意一张网页,右键,点击检查(或者直接按`F12`)就会在页面的下方(也有可能是右方)打开Chrome的检查工具,长这样:

Chrome DevTools初始界面

可以看到,在它的最顶部分了几个标签页,分别是Elements、Console、Sources、Network、Perfornance、Memory、Application、Security、Audits,比较常用的前面四个,Elements,主要拿来操作页面的标签;Console是一个命令行控制台,可以直接在这里输入javascript语句来执行;Sources,用来管理当前网页所加载到的一些资源,比如图片,样式表,js,字体还有其它;network用来查看这张网页加载的全部请求响应过程,可以直观地看到一张网页加载所耗费的时间。

### 使用Elements操作页面元素

接下来实锤,比如王码的官网就有一张非常神奇的网页,是五笔的一本教材,

www.wangma.net.cn/InfoMationDetail.aspx?sm=5&m=207

页面的图片放得很厚道,原图级别,用来自己打印,的确是极好。

可是,我们只是想要这些图片,而页面的头部,尾部的部分是多余的,就把它们给取掉吧。

第1步,先按`F12`开开检查工具,点击左上角的按钮,进入页面元素选择的模式,这样子就可以在页面上面点击,能快速定位到相应的源代码。一图胜千言:


选择页面最顶部的header部分,然后使用`delete`删除他们

第2步,继续找到页面的底部foot的部分、正文的标题部分,删除他们,至此,页面上面再没有其它影响主体内容的元素了,见下图:


删除页脚的元素,避免打印多余的无关内容

第3步,`Ctrl+P`或者点击浏览器右上角的三个竖点,选择打印,打开打印预览界面,稍稍耐心地等待一下“加载预览”,完成之后可以看到当前网页在一张张的纸上面是如何摆放的。在`目标打印机`位置选择`另存为PDF`,这时候,只需要通过纸张方向、页边距、缩放几个参数相互配合调整,就可以“还原”网页上的图片“当初”在纸上是如何摆放的,等达到效果之后,点击底部的保存按钮,一份无须重新排版的可以直接打印的书本就已经准备好了。过程见图片:


纸张方向、页边距、缩放几个参数相互配合调整可以组合出我们想要的结果

至此,Chrome浏览器的检查工具算是也见了面了,删除几个页面元素(页面标签)这种操作,在它的其它强大功能面前,只是冰山?一角。下一篇准备看看Console标签下如何输出`Hello World`。

### 保持好奇,不断探索

如果你足够好奇,可以自己去尝试一下,学会这一套操作之后,以后给娃整理要打印的作业,也多了一种比较方便并且不会损失清晰度的方式。

2021239320