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

如何将报表与Lazarus中FastReport的数据连接?

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

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最新版

Fastreport.NET在线购买价更低,专享85折起!赶紧加入购物清单吧!

在上一篇有关使用图表的图表中,我们已经熟悉商业图形和条形码。现在是时候使任务复杂化并使用不同的数据源了。大多数报告通常基于数据库中的数据。为了访问此数据,Lazarus提供了FastReport使用的强大机制。 

数据访问组件

这指的是“数据访问”选项卡中的组件,这些组件可以用作报表的数据源。任何TDataSet后继组件都可以用于此目的。

除了访问项目中定义的数据外,FastReport还允许您在运行时创建新组件。我们公司创建数据访问组件的原理与Lazarus环境中使用的原理非常相似-我们在表单上强加了一个组件,并在对象检查器中配置了它的属性。在选择数据库格式时,运行时连接的功能受到更多限制,因此在撰写本文时,只能在运行时创建DBF和SqLite3。

这是指DataAccess选项卡中的组件,这些组件使用FastReportn选项卡中的TfrxDBDataSet连接器组件将表或其他数据源连接到波段。该组件充当数据源和FastReport核心之间的中介。该组件负责浏览记录和访问字段。这样,您就可以避免将FastReport核心与任何数据访问库绑定在一起。

FastReport可以与BDE和任何其他库同时使用,也可以从与数据库无关的源(例如数组或文件)中完全检索数据。

TfrxDataSet组件旨在与数据源一起使用,并且应注意其多功能性。它可以使用从TDataSet继承的所有连接。这就是BDE,CVS和绝大多数其他库!要与其他数据源(数组,文件等)一起使用,请使用TfrxUserDataSet组件。

要将TfrxDBDataSet组件链接到数据源,必须配置以下选项之一:

  • DataSet属性,直接链接到表或查询。
  • DataSource属性,该属性连接到TDataSource组件。

两种连接方法都是等效的,只是第一种方法没有TDataSource组件。

为了使组件及其相关数据在报告中可用,您需要明确指定在报告中使用哪些数据源。在FastReport设计器中,选择菜单项“ Report / Data ...”,然后在出现的窗口中选中所需源旁边的框。

数据源选择窗口

FastReport设计器中的组件说明

TfrxDBFTable组件旨在组织对.dbf数据库表的访问,并具有以下属性:

  • FilePath指定数据库文件夹的路径。
  • TableName分配数据库的名称。通过选择数据库,您还将更改路径。
  • FieldAliases允许您指定自定义字段名称。
  • Filter包含一个用于过滤记录的表达式。
  • 已过滤确定是否应用过滤器。
  • IndexFieldNames存储构成索引的字段的名称。
  • IndexName定义二级索引的名称。
  • MasterFields包括与主数据集关联的字段。
  • 母版与母版数据集相同。
  • UserName设置数据集的别名(用户名)。

组件的属性分配与Lazarus中的TDbf属性相同。要将组件连接到数据库表,只需填写TableName属性。通过设置Active:= True打开表。

FieldAliases属性编辑器允许您选择在访问表时将可用的字段,并为每个字段和整个表设置自定义名称。

别名编辑器

MasterFields属性编辑器用于在两个表之间创建主从关系。要在从属表中链接两个具有主从关系的表,请在Master属性中指定主表,然后调用MasterFields属性编辑器。如果表具有要使用的二级索引,请首先配置IndexName属性。

Редакторсвязей主从细节

该编辑器使您可以直观地链接数据集的主字段和明细字段。当集通过主/从关系链接时,详细集的内容在您浏览主集时被过滤,因此它仅包含与当前主集记录相关的记录。

要链接集字段,请从左侧列表(详细集)中选择该字段,然后从右侧列表(主集)中选择该字段,然后单击“添加”按钮。这会将字段映射移到较低的列表。要清除底部列表,请使用“清除”按钮。重要的是要注意,要链接的字段必须是同一类型并且是关键。

但是在Lazarus本身中,这些属性不适用于TDbf组件的选择(主从分类和筛选),并且由于我们使用了此组件,因此它对我们也不起作用。

TfrxLazSqliteQuery组件旨在使用SqLite3对数据库进行SQL查询,并具有以下属性:

  • 数据库指定数据库连接名称(默认始终为“ sqlLite”)。
  • FieldAliases允许您指定自定义字段名称。
  • 过滤器存储一个表达式以过滤记录。
  • 已过滤确定是否应用过滤器。
  • Master与Master数据集相同。
  • 参数显示查询参数列表。
  • SQL包含查询文本。
  • UserName设置数据集的别名(用户名)。
  • IgnoreDupParams-如果为true,则查询参数的名称将不会在参数编辑器中重复。

SQL属性具有其自己的编辑器,用于填充SQL查询: 

TfrxLazSqliteQuery组件中的SQL查询编辑器

Params属性也有其自己的编辑器。如果查询文本包含参数,则可用。

TfrxLazSqliteQuery组件中的参数编辑器

参数可以有两种类型:一种是从主数据集分配的,另一种是具有特定值的,其中值可以是常量,对变量的引用或对象属性。 

如果参数是从主数据集中获取的,则必须配置TfrxLazSqliteQuery.Master属性。数据集必须包含与参数名称相同的字段。无需指定参数类型和值。

TfrxLazSqliteDataBase组件用于连接到SqLite3数据库。其用途类似于TSQLite3Connection和TSqlTransaction组件,并且具有以下属性:

  • 已连接-启用True时,将激活连接。
  • DatabaseName允许您选择数据库的名称。
  • LoginPrompt定义在连接数据库时是否必须要求用户输入密码。如果LoginPrompt = False,则必须在连接字符串中指定用户名和密码。

通过数据库访问构建报告

考虑构建一个简单的报告,其中包含数据访问组件,我们将以LDemo演示数据库为例。

首先,让我们创建一个项目,通过该项目我们将进行实验。在Lazarus中创建一个新项目,并将其放在表单组件TfrxReport,TfrxDesigner,TfrxDialogControls,TfrxDBDataset,TDbf上。

带有FastReport组件的Lazarus中的表单

配置与数据库的连接。为此,请找到Dbf1的TableName属性,然后在对话框中选择数据库文件-任何具有.dbf扩展名的文件都可以使用。然后将frxDBDataset1属性DataSet设置为“ Dbf1”。

然后将按钮添加到表单,然后在OnClick中输入以下代码:

procedure TForm1.Button1Click(Sender: TObject);
begin
 frxReport1.DesignReport;
end;

记住要允许Linux项目使用线程。安装文章中对此进行了描述 。之后,编译并运行项目。创建最终用户报告设计器不需要任何其他操作。

当您单击“设计”时,设计器将打开并显示一个空报告。考虑在这种环境下构建简单的报告。顺便说一句,到目前为止,您已经知道如何将数据库从Lazarus连接到FR。

一个简单的“列表”类型报告

现在,我们将在运行时从一个已经使用FR的数据库表中输出数据。执行以下步骤来生成报告:

1.单击设计器工具栏上的“新建报告”按钮。FastReport将创建一个空报告,其中包含页面“代码”,“数据”,“ Page1”。

2.切换到“数据”页面,然后在页面上放置“ DBF表”组件:

将frxDBFTable组件添加到报告中

3.选择要连接的数据库。为此,通过从演示项目中选择customer.dbf文件,在对象检查器中设置TableName属性。

4.要将1级数据库连接到表,请双击该表,然后在打开的窗口中选择我们的表。然后将所需字段从“数据树”窗口拖放到报告表上。我们的报告将如下所示:

报告模板的列表输出

要查看生成的报告,请单击工具栏上的“预览”按钮。 

有用的数据处理选项

“数据”选项卡不仅适用于数据访问组件。使用“文本”和“绘图”对象,可以放置说明标签并绘制简单的图,如下图所示:

数据描述示例

还想要更多吗?您可以点击阅读【FastReport 报表2020最新资源盘点】,查找需要的教程资源。让人兴奋的是FastReport .NET报表正在慧都网火热销售中!低至3701元起!>>查看价格详情

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

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


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