FastReport中国社区FastReport联系电话 联系电话:023-68661681

报表生成器FastReport教程:如何在Delphi / Lazarus / C ++ Builder中将数据库数据转换为文档

来源:   发布时间:2021-03-18   浏览:次

FastReport .Net是适用于Windows Forms,ASP.NET,MVC和.NET Core的全功能报表解决方案。它可以在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。

在FastReport .NET 2021.1的新版本中,我们实现了对.NET 5的支持。添加了新条形码-Deutsce Post Leitcode。将RTF转换为报告对象的算法已得到显着改进。并且还添加了用于转换数字的新功能。欢迎下载体验。(点击下方按钮下载)

立即点击下载FastReport.NET v2021.1最新版

如何将大量数据转化为内容丰富的报告?

在可以创建,填充,修改和管理数据的许多DBMS中,Oracle DB,MySQL,Microsoft SQL Server,PostgreSQL,FireBird可能是最受欢迎的,但绝不是全部。

通常,他们会在很长一段时间内都充满这些数据(例如,在计时系统,货物定单中,以及“如何从中获取信息?”的问题)(可读性,视觉和人眼均可理解,以供进一步分析)推迟到以后。让我们考虑“然后”做什么-当我们拥有“完整的数据库”并且我们(或公司的管理层)想知道“实际情况是什么?让我们有效地利用我们在流程中收集的数据,从这些数据中获取信息并基于该信息做出决策!”。基本上,这就是用简单语言定义的商业智能(BI)。

创建它们(报告)的可能性很多,但是在这里我们将看一下FastReport VCL。有一个用于生成模板的设计器,一个预览图和许多其他功能可以执行不同级别的任务-我们在其他文章中已经介绍过它们,但仍然没有全部看到。

FastReport可以同时使用多个数据源(数据库),或者从所谓的用户源(不是数据库)(数组或常规文件)中检索它们。

如何在Delphi中从DB获取信息?

为了连接数据源,必须从组件面板中应用连接器(TfrxDBDataSet)。这是数据和FastReport之间的链接。

现在,我将简要介绍一下这些组件的作用:

TfrxDBDataSet是用于处理数据源的元素,它也与TDataSet兼容,但是TfrxIBODataSet用于IB对象,TfrxUserDataSet也用于其他资源-数组,文件等。

首先,使用DataSet属性连接到查询或表本身,或者数据源(它连接到TDataSource组件)。

为了使数据已经存在于报告中,您需要指定将哪些数据放入我们的报告中!这也很容易做到。

在FastReport VCL设计器中的菜单Report-> Data中选择。

FastReport VCL

选择必要的元素,然后单击“确定”! 

FastReport VCL

将此数据源连接到频段。在其属性中选择DataSet(表)。现在将表/请求字段拖放到适当的区域。单次拖动后,在基带-字段上具有自动链接的特殊性。

如果需要查看生成的报告,可以使用预览!不要忘记,您几乎可以添加任何东西,无论是QR码,地图 还是其他附件,在FastReport VCL中就足够了。

预习:

在左上角选择“文件”。

FastReport VCL

设置列表将立即出现。在其中选择“预览”。 而已!完成此操作后,您将看到完成的报告的外观。

FastReport VCL

如果您满意,则可以保存为其他格式,然后导出到云存储或PC内存以及进行打印。 选择“保存”和所需的格式。
所选的将被发送到指定位置进行保存/导出!

FastReport VCL

根据代码生成报告需要执行以下步骤:
-清除报告。

FastReport VCL
FastReport VCL
FastReport VCL

-添加数据源。

FastReport VCL
FastReport VCL

-添加“数据”页面

FastReport VCL

-添加报告页面。

FastReport VCL

-在页面上添加乐队。

FastReport VCL
FastReport VCL

-设置频段属性并将其连接到数据。

FastReport VCL

-在每个频段上添加对象。

FastReport VCL
FastReport VCL

-设置对象属性并将其连接到数据。

FastReport VCL

保存模板,然后按“预览”! 

FastReport VCL

报告准备好了!我们还可以将其保存为XML,PDF,甚至CSV或DBF,以便进行进一步分析!

我知道,如此大量的屏幕截图会使人感到沮丧。但是在撰写本文时,制作所有这些屏幕截图是最长,最耗时的任务。编写报告本身大约需要5分钟。并且如果它更快并且没有截图?
在Delphi / Lazarus的数据库中创建报告-代码!

考虑创建一个简单的“列表”类型的报告。假设我们有组件frxReport1:TfrxReport和frxDBDataSet1:TfrxDBDataSet(后者与来自DBDEMOS表Customer.db的数据连接)。我们的报告将包含一页,其中包含报告标题和主数据库。报告标题栏将包含一个带有文本“ Hello FastReport!”的对象。并且主数据将具有一个引用字段“ CustNo”的对象。

在Delphi / Lazarus / C ++ Builder中将数据库数据转换为文档

 var
 DataPage: TfrxDataPage;
 Page: TfrxReportPage;
 Band: TfrxBand;
 DataBand: TfrxMasterData;
 Memo: TfrxMemoView;
 
{ Clear the report }
frxReport1.Clear;
 
{ add data source to the available list for the report }
frxReport1.DataSets.Add(frxDBDataSet1);
 
{ add “data” page }
DataPage := TfrxDataPage.Create(frxReport1);
 
{ add page }
Page := TfrxReportPage.Create(frxReport1);
{ create unique name }
Page.CreateUniqueName;
{ set page properties by default }
Page.SetDefaults;
{ change page orientation }
Page.Orientation := poLandscape;
 
{ add report title }
Band := TfrxReportTitle.Create(Page);
Band.CreateUniqueName;
{ it’e enough for a band to set coordinate Top and hight }
{ both coordinates are in pixels }
Band.Top := 0;
Band.Height := 20;
 
{ add object on report title }
Memo := TfrxMemoView.Create(Band);
Memo.CreateUniqueName;
Memo.Text := 'Hello FastReport!';
Memo.Height := 20;
{ this object will be aligned with the band width }
Memo.Align := baWidth;
 
{ add master data }
DataBand := TfrxMasterData.Create(Page);
DataBand.CreateUniqueName;
DataBand.DataSet := frxDBDataSet1;
{ coordinate Top shouldn’t cross the previous band! }
DataBand.Top := 100;
DataBand.Height := 20;
 
{ add object on master data }
Memo := TfrxMemoView.Create(DataBand);
Memo.CreateUniqueName;
{ connect to data }
Memo.DataSet := frxDBDataSet1;
Memo.DataField := 'CustNo';
Memo.SetBounds(0, 0, 100, 20);
{ align text on the right side of the object }
Memo.HAlign := haRight;
 
{ show the report }
frxReport1.ShowReport;

因此-我们已经了解了如何将不可见但已收集的数据转换为报告-文档。您现在可以发布它们或将其传递给分析师!

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/2948.html

联系我们
  • 重庆总部 023-68661681
购买
  • sales@evget.com
合作
  • business@evget.com


在线
客服
微信
QQ 电话
023-68661681
返回
顶部