如何在FastReport报表中动态添加数据集

 我来答
刀建设殳静
2019-06-18 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:986万
展开全部
我用的一直都是FineReport,它比较方便,不过既然楼主问的是fastreport,这里我就不谈FineReport了。要创建fastreport的主从报表,需要建立两个数据集。一个是主表的数据集,另外一个是一个明细表的数据集;根据下面的截图来创建fastreport报表。首先,运行报表设计器,创建一个空白报表。为了添加一个明细的数据集,需要调用
"Configure
Bands"
窗口。点击
"Configure
Bands"
按钮便可实现调用,如图所示,也可以通过"Report|Configure
Bands..."
菜单项来调用"Configure
Bands"窗口。配置窗口中展示了数据集结构:选择"Data"
数据集,如图所示,单击鼠标右键以显示上下文菜单,并选择”data“band,接下来,嵌套数据便被添加到所选择的数据集中。按“close”按钮关闭窗口。你会发现报表模版便成下面的样子;将band与相应的数据源连接,并将数据列置于bands上。我们将使用两个数据源:分类和产品。运行报表通过这种方法,你可以创建一个带有无线嵌套数据的主从报表类型。
洛蝶纳昭
2019-09-28 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:883万
展开全部
在取报表格式之前,应该先把数据集对象放好,这样才能保证在报表控件在取格式文件后,安置报表对象时,可以拿到数据对象,如果操作顺序搞反了,则报表对象就无法拿到数据对象,在预览数据时,就会产生“没有数据集”的错误了!!
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来做,不用写代码,出错的几率要小很多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式