提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:杨鹏连|2020-12-22 13:11:29.063|阅读 465 次
概述:今天,我们很高兴地宣布在Beta测试中发布了Lazarus的客户端-服务器组件。它们可以用于创建和自定义用于远程报告生成和导出的服务器,而程序和Web浏览器可以充当客户端。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
FastReport VCL是用于Delphi,C ++ Builder,RAD Studio和Lazarus的报告和文档创建VCL库。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。
近日,FastReport VCL更新至v6.9,在新版本中,在PDF导出中增加了对以下对象的交互式表单支持:文本,复选框和图片。能够通过InteractiveFormsFontSubset属性将所需的字形仅包含在交互式形式中。同时修复了多个Bug问题。欢迎下载体验。(点击下方按钮下载)
直到最近,可以说用Lazarus编写的应用程序通过Web生成报告的任务还是很有创造力的。今天,我们很高兴地宣布在Beta测试中发布了Lazarus的客户端-服务器组件。它们可以用于创建和自定义用于远程报告生成和导出的服务器,而程序和Web浏览器可以充当客户端。
VCL FastReport中的客户端-服务器组件在很早以前就已实现,但是在此之前,它们尚未适应Lazarus,仅在Rad Studio Delphi和C ++ Builder中运行。
这篇文章不仅对从未使用过它们的人有用,而且对于想要将其FR服务器迁移到Linux的人也很有用,因为它诚实地描述了所有优点和缺点。我们还发现了Lazarus本身的问题,并找到了解决之道。
现在,让我们继续讨论该问题的技术方面。
用于在Lazarus中进行报告的客户端服务器组件
Lazarus中的客户端服务器组件可在以下两种操作系统下使用:Windows和Linux(仅GTK2)。它们在“ fr6CS_lazarus.lpk ”程序包中实现,其依赖项指定了导出程序包,因此必须在安装之前安装“ Source / ExportPack ”文件夹中的导出程序包。
安装客户端/服务器组件包之后,将有一个名为“ FastReport 6.0 Client / Server”的新选项卡,您将在其中找到4个组件:
1. TfrxReportServer 是一个服务器组件,一个报表服务器和一个二合一HTTP服务器。它最重要的字段是ConfigFileName,其中必须指定带有设置的xml文件的路径。
您可以在此文件中指定许多设置,这些只是其中最重要的:
您可以在此处详细了解所有设置。
2. TfrxServerConnection是一个客户端组件,其中包含用于远程连接到TfrxReportServer的信息,例如:主机,端口,错误尝试次数,超时等。
3. TfrxReportClient,一个客户端组件,类似于TfrxReport,执行服务器,并显示在客户机上的报告请求。它使用此TfrxServerConnection组件来获取有关服务器的信息。它可以从服务器接收构建的报告,并在内部(在客户端计算机上)显示或导出该报告。
4. TfrxHTTPClient是一个客户端组件,旨在通过HTTP协议接收任意文件。例如,它可以请求已经从服务器导出的报告。
我们还提供3个演示应用程序:
1台服务器-立即与报告和数据库一起使用;
2个客户-简单且“高级”。
作为“高级”客户端,您可以通过按“开始”按钮来执行承载多线程测试:
我们还想提醒您,客户端可以是普通的浏览器,并且可以为Web客户端配置自己的喜好,而演示服务器已经为Web客户端配置了。
“瓶颈” GTK2
Lazarus是跨平台的开源IDE。但是不幸的是,这桶“蜂蜜”中也有“一勺焦油”。我们将从最不愉快的地方开始,即Linux服务器。
GTK2具有一个非常不愉快的属性:单线程。
这意味着即使2个程序将在一个无穷循环中在其BitMap上绘制图形,GTK2也会将所有内容缩小到1个流。因此,总的来说,这两个程序所绘制的数字少于一个程序所绘制的数字,因为部分时间将花费在同步上。
但是在这种情况下,同步是在没有我们参与的情况下进行的。
现在以一个程序在多个流中绘制图形的情况为例(每个流都有其自己的本地BitMap)。在这种情况下,您将必须在代码中创建一个锁定系统,因为我们记得该库的单个线程。但是这些不应该是普通的关键部分,而应该是GTK2级别的全局关键部分。当其中一个线程进入此关键功能时,即使基本形式也将挂起,直到它退出。
带图片的多线程只能通过找到一个独立于GTK2的相似绘图组件(例如,带有图片的示例)来组织,在我们的情况下,另一个组件不合适。
因此,某些服务器操作被限制为1个流。
尤其是由于此功能,最好不要使用对话,因为只要一位客户回答对话,其他客户的报告构建就会暂停。
可能会出现问题:“为什么您甚至需要单线程服务器?” 并且您会部分正确,因为这类似于道路上的“瓶颈”问题,在该道路上,总道路通行能力等于最狭窄地方的道路通行能力。
但是您只会部分地正确。仅将3个大型操作缩小为一种流程:上载报告,构建和导出。接收和传输是并行进行的,并且由于已构建报告的缓存系统,在某些情况下,您无需再次构建它们。
而且,再加上功能强大的服务器,将使此问题不那么明显。这仅对于Linux(GTK2)也是一个问题,因为Windows中不存在此问题,并且随着Lazarus中GTK3的发布(该版本已经支持多线程),它将完全消失。
其余的问题比这个问题小很多倍,甚至很小。
还剩下什么
一小部分功能是在移植过程中删除的,即CGI和授权系统。我们能否尽快实施它们取决于客户对它们的实际要求。
导出到Lazarus的HTML仍然很不完善,可以并且应该使用Web客户端,因为它很方便,但是报表不能完美显示。
但是,您可以设置系统,以使Web客户端接收的报告不是以HTML格式导出,而是以PDF格式导出。毕竟,大多数现代浏览器都可以完美显示PDF文件。我们已经很好地实现了这种导出格式,您可以自己查看。
更正了Lazarus消息队列2.0.10中的错误
对于那些想要在Linux中使用我们的新组件的人来说,值得一提的是:在阻止消息队列时,我们遇到了一个错误,无法绕过它。我们能够联系Lazarus的程序员,他们已经解决了这个问题,在下一版的Lazarus中,所有功能都可以稳定运行。目前,在2.0.10及更高版本中,此错误必须在本地修复。不需要花费很多精力或时间,您要做的就是将3行添加到Lazarus文件之一并重建它:
1.打开拉扎勒斯所在的文件夹(在Ubuntu,例如 “/usr/share/lazarus/2.0.10”)
2.打开文件 〜/ LCL /接口/ GTK2 / gtk2msgqueue.pp 在它。
3.查找过程: 过程TGtkMessageQueue.Lock;
4.在此过程中,找到以下行: g_main_context_acquire(FMainContext);
此代码无视g_main_context_acquire函数可能失败的事实。
因此,将其替换为:
repeat until g_main_context_acquire(FMainContext);也就是说,我们将循环调用g_main_context_acquire直到它返回True(成功完成)。
我们邀请您试用我们用于Lazarus的新组件,但我们想提醒您,这是一个beta版本,它将根据您的需要进行改进。如有任何错误,请务必写信给我们以寻求支持。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
在工业自动化和数据通讯的领域,提到“OPC Server”这个术语时,很多人可能会感到困惑,甚至不清楚它到底是什么。其实,OPC Server在现代制造业和智能工厂中有着非常重要的作用,它是实现设备与系统之间数据交换的核心组成部分。为了帮助大家更好地理解OPC Server,今天我们将从最基础的概念开始,详细解释它是什么、如何工作以及它的应用。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢