
如何在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来做,不用写代码,出错的几率要小很多。
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来做,不用写代码,出错的几率要小很多。

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询