从Delphi应用程序创建发票,可视化报告生成器FastReport VCL轻松搞定

报表生成器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表创建可计算字段,以简化报表模板的进一步工作。双击该对象,然后看到一个带有表字段的窗口。最初它是空的,但是您可以通过选择添加字段来从上下文菜单中加载它们:

可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票

价格和说明字段将从零件表中获取。在上下文菜单中选择“新建字段”,然后添加“价格”字段:

可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票

以相同的方式添加产品描述(“描述”字段):

可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票

现在,一旦我们创建了数据源并配置了表之间的关系,就让我们在表单中添加几个按钮: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();

现在,可以运行该应用程序,单击“设计报告”按钮,然后继续创建报告。现在该讨论我们将要创建的报告。为了使文档易于理解并避免客户提出问题,您需要在文档中填写所有必要的信息。但是同时,不应该使文档过载。让我们尝试保持这种微妙的平衡。因此,我们认为发票应包含以下信息:

可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票

此图突出显示了文档的重要区域。

  1. 有关卖方的信息。任何正式文件都应包含有关卖方的信息:姓名,地址,电话,电子邮件,其他信息(可选);
  2. 有关买方联系人的信息–必须指出实际负责付款的人;
  3. 订单和发票标识符,发票开具和到期日。这些标识符将有助于在数据库中查找发票或订单,以防客户以后有任何疑问。
  4. 有关订单内容的信息。您的客户必须了解他所支付的费用。必须指定货物的名称和数量,以及每单位的成本;
  5. 总量。总金额不仅对于付款是必要的,而且对于理解计算也是必要的;
  6. 付款详情。由于这是付款发票,因此应包含收款人详细信息;
  7. 国外付款的银行详细信息。即使在这种情况下,客户不是来自国外,也可以将这些数据保留为统一的格式。
  8. 解释性信息。如有疑问,提供联系方式很重要。还应该警告延迟付款的后果。这将使客户不耽误它。

我们将在已经启动的报表设计器中创建这样的文档。首先,选择报告数据集。

可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票

我们在此报告中不需要“零件”表,因此无需选择它。让我们继续创建模板。我们的报告中有两个数据带:MasterData和DetailData。在第一个数据段中,我们输出有关客户端的信息:

  • 名称-Customer.Company
  • 地址-Customer.Addr1
  • 电话-客户电话

以及客户的发票编号– Orders.OrderNo、发票日期-系统变量[日期]、到期付款–当前日期[日期] +天数。

该范围链接到“订单”表。订单的内容信息将显示在下级数据带中:产品名称,数量,项目价格,指定数量的价格,某些国家/地区的价格中未包含的增值税(示例所示),增值税总额。增值税金额,净额,发票总额将显示在页脚中。付款细节也将显示在此处。

可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票

在页面页脚中添加一些说明性信息,以避免客户提出一些问题:

可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票

将报告保存在本地存储中,然后关闭报告设计器。如果在按钮代码中使用了ShowReport(),则使用第二个按钮选择生成的报告并获得“打印”对话框或预览窗口。

可视化报告生成器FastReport VCL功能指南:从Delphi应用程序创建发票

因此,我们创建了付款发票,并在半小时内将其显示给用户。现在,从报告预览窗口中,我们可以将其发送以打印或导出为一种流行的电子文档格式:PDF,DOCX,XLSX,RTF等。

如果您有任何疑问或需求,请随时加入FastReport技术交流群(783996712),我们很高兴为您提供查询和咨询。