可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建销售收据
报表生成器FastReport VCL是用于在软件中集成商务智能的现代解决方案。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。
近日,FastReport VCL更新至v6.7,在新版本中,添加了对最新版本IDE的支持,简化了用于付款标准的条形码的创建,新增从预览窗口直接编辑RichView的功能,同时修复了多个Bug问题。欢迎下载体验。(点击下方按钮下载)
Delphi编程语言,即Turbo Pascal,已经成为许多开发者的起点。由于简单明了的语法和以程序化风格编写的能力,它变得非常容易学习。很多人将它与Visual Basic进行比较,但在其流行的高峰期,Delphi给了更多的机会,这要归功于它的数据库工作组件和自己的数据库--Interbase。
尽管C #和.Net平台取代了Delphi和VCL,但仍有大量的拥护者。即使是用这种语言编写的旧应用程序也可以使用现代库轻松升级,例如FastReport 6 VCL报表生成器。例如,自动化会计系统需要报表。
一个自动化的销售会计系统应该允许形成付款单据,如销售收据。在本文中,将探讨如何从Delphi应用程序中创建和打印销售收据。我们将使用FastReport VCL报表生成器来创建收据本身,并使用用户应用程序来打印它。除了打印之外,还可以简单地将收据显示在报表查看窗口中,可以从该窗口中打印收据,将其保存为流行的文档格式之一,将其作为电子邮件发送或上传到云存储中。
要创建销售收据,我们需要的信息有:订单、客户、卖家和订单内容。
在本文中,将使用FastReport VCL发行版中的demo.mdb数据库。为了创建应用程序,将使用Delphi 7开发环境。
首先,让我们在表单中添加两个按钮:一个用于运行报表设计器,另一个用于显示或打印成品报表。将OpenDialog组件也添加到表单中--这将允许我们选择所需的报表文件来打开。
现在让我们继续为报表创建一个数据源--销售收据。如上所述,我们使用的是demo.mdb数据库,或者更准确的说是表。订单,客户,项目,零件和员工。我们将使用ADOConnection组件连接到数据库,并使用ADOTable组件从每个表中获取数据。Orders表与Customers、Items和Employees表相连。因此,我们需要设置这些连接。为此,为每个ADOTable添加一个DataSource组件,为了使所有这些表在报表中可用,为每个表添加frxBDDataSet组件。
因此,要使用一个表,我们应该获得三个组件:ADOTable,DataSource,frxDBDataSet。
在ADOConnection中,从FastReport VCL交付创建到demo.mdb数据库的连接。这些组件设置(针对五个表中的每个)如下所示。
订单表:
1.对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–订单;
- TableName –订单。
2.对于DataSource,设置属性:
?数据集–订单。
3.对于frxDBDataSet,设置属性:
?数据集–订单;
?用户名–订单。
客户表:
1.对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–客户;
- IndexFieldnames – CustNo;
- MasterSource –数据源1;
- MasterFields-客户编号;
- TableName –客户。
2.对于数据源,设置属性:
?数据集–客户。
3.对于frxDBDataSet,设置属性:
?数据集–客户;
?用户名–客户。
项目表:
1.对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–项目;
- IndexFieldnames – 订单号;
- MasterSource –数据源1;
- MasterFields-订单号;
- TableName –项目。
2.对于数据源,设置属性:
?数据集–项目。
3.对于frxDBDataSet,设置属性:
?数据集–项目;
?用户名–项目。
零件表:
1.对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–零件;
- TableName –零件。
2.对于数据源,设置属性:
?数据集–零件。
3.对于frxDBDataSet,设置属性:
?数据集–零件;
?用户名–零件。
员工表:
1.对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–员工;
- IndexFieldnames – EmpNo;
- MasterSource –数据源1;
- MasterFields-EmpNo;
- TableName –员工。
2.对于数据源,设置属性:
?数据集–员工。
3.对于frxDBDataSet,设置属性:
?数据集–员工;
?用户名–员工。
客户表、项目表和雇员表与DataSource1(第一个表--订单)有关系。它们通过键连接,因此对于订单表中的一条记录,将选择这些表中的相应记录。
项目表包含了订单中的项目信息。没有关于项目的具体数据--只有一个到零件表的链接。让我们从零件表中添加两个字段--价格和描述--到物品表的ADOTable中。这样,我们以后就不需要使用Parts表了。
要将可计算字段添加到Items表中,双击ADOTable对象,就会看到一个包含表字段的窗口。最初它是空的,但你可以从上下文菜单中选择添加字段......来加载它们。
价格和描述字段将从 "零件 "表中提取。在上下文菜单中选择 "新建字段... "并添加价格字段。
以同样的方式添加产品描述(描述字段)。
现在,只要我们创建了数据源并配置了表之间的关系,让我们在表单中添加几个按钮。你可能还记得,第一个按钮是启动报表设计器,第二个按钮是显示报表。不要忘记在表单中添加frxReport组件。
为每个按钮添加一个点击事件。下面是显示报表设计器的事件处理程序代码。
frxReport1.DesignReport();
要打印完成的报表,可以在表单中添加 "打开文件 "对话框,选择在设计器中创建的报表。打印报表的代码将是这样的。
OpenDialog1.Filter := 'FastReport VCL (*.fr3)|*.FR3'; OpenDialog1.Execute(); if Length(OpenDialog1.FileName)>0 then begin frxReport1.LoadFromFile(OpenDialog1.FileName); frxReport1.PrepareReport(); frxReport1.Print(); end
如果需要预览报告,可以将“打印”功能替换为“报告”显示:
frxReport1.ShowReport();
现在你可以运行该应用程序,点击设计报表按钮,然后进行报表创建。
首先,选择报表数据集。
我们在这个报表中不需要零件表,所以不需要选择它。我们继续创建模板。在我们的报表中,有两个数据带。MasterData和DetailData。在第一个数据带中,我们输出的是客户的信息。
- 名字 - Customer. Company;
- 地址 - Customer.Addr1;
- 电话--Customer.Phone.
以及客户的其他信息:
- 公司名称;
- 雇员– Employee.FirstName Employee.Last Name;
- 订单号– Orders.OrderNo;
- 销售日期– Orders.SaleDate。
该范围链接到“订单”表。订单的内容信息将显示在下级数据带中:产品名称,数量,项目价格,指定数量的价格。总计-例如总净额,税率,最终金额(含税)-将显示在页脚中。
行总小计的计算方法是将数量和物料价格相乘作为单个表项的一部分:
在这里我们可以说我们的报告已准备好显示。将其保存到本地存储,然后关闭报表设计器。使用表单上的第二个按钮,选择保存的报告并进行打印(如果您在代码中使用了打印选项),或者如果选择了报告预览选项– ShowReport(),则对其进行预览。
就是这样,你只需花费很少的精力,就可以为你的会计系统实现有用的功能。几乎不费吹灰之力,您就可以为您的会计系统实现有用的功能。现在,从报表查看窗口,你可以打印它或保存在流行的文件格式之一。PDF, DOCS, XLSX, XML, RTF和许多其他格式。
还想要更多吗?您可以点击阅读【FastReport 报表2020最新资源盘点】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入FastReport技术交流群(783996712),我们很高兴为您提供查询和咨询。