在FastReport软件中重新加载表格数据的操作步骤
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在FastReport软件中重新加载表格数据的操作步骤相关的知识,希望对你有一定的参考价值。
参考技术A 方法/步骤1、首先打开FastReport软件,在数据目录中右键点击,新建一个数据源;根据向导提示填写完数据库的连接信息。
2、物理数据源新建完成之后如下图所示,有一个之前选择数据表的目录,然后可以通过这些数据表来在page页面里面绑定数据和布局
3、可以在page的startpage事件中自定义数据的连接与过滤条件,这些数据库连接(strConnection)与过滤条件(strSql)可以是从外部作为参数传入进来的。
绑定之后一定要记得调用Init()方法,不然表格就没有数据加载!
4、如果在同一个report里面有多个地方使用这个表格(或者是循环使用,比如在for循环里面,只是过滤条件不一样),都是按上面的GetReportDataSource方法来获取表格并初始化,表格里面的数据其实是每次循环使用过滤条件得到结果的并集,就是每次操作的结果都会加入到表格中,那么结果可能就不是我们想要的了!
5、这时我们在获取数据表,并自定义绑定数据连接和过滤条件后,进行初始化之前就需要设置表格的ForceLoadData属性为true;如下图所示:
6、通过官方的帮助文档可以知道设置了这个属性,在每次初始化时都会清空之前的数据,重新加载数据。如果调用次数多也会影响加载速度,所以默认值是false
如何在FastReport报表中动态添加数据集
在取报表格式之前,应该先把数据集对象放好,这样才能保证在报表控件在取格式文件后,安置报表对象时,可以拿到数据对象,如果操作顺序搞反了,则报表对象就无法拿到数据对象,在预览数据时,就会产生“没有数据集”的错误了!!var
tmpDataSet: T数据集;
DataSource: TDataSource;
frxDBDataSet: TfrxDBDataset;
begin
tmpDataSet:=T数据集.Create(Self);
DataSource:=TDataSource.Create(Self);
frxDBDataSet:=TfrxDBDataset.Create(Self);
DataSource.DataSet:=tmpDataSet;
frxDBDataSet.DataSource:=DataSource;
//frxDBDataSet.DataSet:=tmpDataSet; //这条语句与上一条都可用,我也不知道区别在哪
frxDBDataSet.UserName:='数据项名称'; //好用在于可以用中文名
frxReport1.DataSets.Add(frxDBDataSet);
-------------注意:在把报表格式LoadFromFile或LoadFromStream之前,必须完成上面这几条语句的程序!!!!
这个代码的话有时候好用,有时候会不适用,如果你测试下来不行的话建议你用finereport来做,不用写代码,出错的几率要小很多。 参考技术A 根据报表对象的名字属性(name)用FindObject()来找到进行操作。 在DFW里检索Fastreport和FindObject,FastReort的DEMO有例子,有很多例子。 要是要动态添加memo等,用FindObject()找到该Memo。比如一般用Memo来打印各种内容、爱改什么就改什么,很容易根据你的描述,然后你爱赋值就赋值
以上是关于在FastReport软件中重新加载表格数据的操作步骤的主要内容,如果未能解决你的问题,请参考以下文章