可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票
报表生成器FastReport VCL是用于在软件中集成商务智能的现代解决方案。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。
近日,FastReport VCL更新至v6.7,在新版本中,添加了对最新版本IDE的支持,简化了用于付款标准的条形码的创建,新增从预览窗口直接编辑RichView的功能,同时修复了多个Bug问题。欢迎下载体验。(点击下方按钮下载)
随着C和.Net平台的出现,Delphi VCL的普及程度略有下降,但是世界各地有许多Delphi开发人员。许多应用程序都是用VCL编写的,需要进行现代化。
如果想要实现商品周转的会计信息系统,则需要从该应用程序生成一些文档。这可以是报告,销售和出纳支票,发票。在本文中,将研究从创建应用程序到报表显示,打印发票的整个过程。
本教程将使用Delphi 7开发环境来创建应用程序,并使用FastReport VCL报告生成器来创建报告。该应用程序的工作归结为将必要的组件添加到表单并进行设置。
在组件面板上找到FastReport选项卡,然后将frxReport组件添加到表单中。我们还需要为报告创建数据源。例如,我们将使用FastReport VCL发行版中的demo.mdb数据库。使用下表:订单,客户,物料,零件。将ADOConnection组件从组件面板的ADO选项卡拖放到窗体上。然后添加四个ADOTable组件。
在“数据访问”选项卡中,添加四个数据源组件。在FastReport选项卡中,添加四个frxDBDataSet组件。现在我们得到了:ADOTable,DataSource,frxDBDataSet,还需要将它们配置为三个。
第一个三:
-
对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–订单;
- TableName –订单;
-
对于数据源,设置属性:
- 数据集–订单
-
对于frxDBDataSet,设置属性:
- 数据集–订单
- 用户名–订单
第二个三:
-
对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–客户;
- IndexFieldnames – CustNo;
- MasterSource –数据源1;
- MasterFields-客户编号;
- TableName –客户;
-
对于数据源,设置属性:
- 数据集–客户
-
对于frxDBDataSet,设置属性:
- 数据集–客户
- 用户名–客户
第三个三:
-
对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–项目;
- IndexFieldnames – 订单号;
- MasterSource –数据源1;
- MasterFields-订单号;
- TableName –项目;
-
对于数据源,设置属性:
- 数据集–项目
-
对于frxDBDataSet,设置属性:
- 数据集–项目
- 用户名–项目
第四个三:
-
对于ADOTable,设置属性:
- 连接– ADOConnection1;
- 名称–零件;
-
对于数据源,设置属性:
- 数据集–零件
-
对于frxDBDataSet,设置属性:
- 数据集–零件
- 用户名–零件
Customer和Items表与DataSource1(第一个表-Orders)有关系。这意味着它们通过密钥(一对多关系)链接。许多订单只能有一个客户,等等。这是必要的,以便在报表中显示特定订单的信息时,将从与此订单相关的链接表中提取数据。
让我们在ADOTable中为Items表创建可计算字段,以简化报表模板的进一步工作。双击该对象,然后看到一个带有表字段的窗口。最初它是空的,但是您可以通过选择添加字段来从上下文菜单中加载它们:
价格和说明字段将从零件表中获取。在上下文菜单中选择“新建字段”,然后添加“价格”字段:
以相同的方式添加产品描述(“描述”字段):
现在,一旦我们创建了数据源并配置了表之间的关系,就让我们在表单中添加几个按钮:Design Report和ShowReport。第一个按钮启动报表设计器,第二个按钮显示报表。为每个按钮添加一个单击事件。这是显示报表设计器的事件处理程序代码:
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
- 电话-客户电话
以及客户的发票编号– Orders.OrderNo、发票日期-系统变量[日期]、到期付款–当前日期[日期] +天数。
该范围链接到“订单”表。订单的内容信息将显示在下级数据带中:产品名称,数量,项目价格,指定数量的价格,某些国家/地区的价格中未包含的增值税(示例所示),增值税总额。增值税金额,净额,发票总额将显示在页脚中。付款细节也将显示在此处。
在页面页脚中添加一些说明性信息,以避免客户提出一些问题:
将报告保存在本地存储中,然后关闭报告设计器。如果在按钮代码中使用了ShowReport(),则使用第二个按钮选择生成的报告并获得“打印”对话框或预览窗口。
因此,我们创建了付款发票,并在半小时内将其显示给用户。现在,从报告预览窗口中,我们可以将其发送以打印或导出为一种流行的电子文档格式:PDF,DOCX,XLSX,RTF等。
还想要更多吗?您可以点击阅读【FastReport 报表2020最新资源盘点】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入FastReport技术交流群(783996712),我们很高兴为您提供查询和咨询。