如何动态的给Fastreport组件加载数据集

wangorg 2007-01-12 04:16:53
本人在论坛找了一遍没有发现可行的。

var
Tmpquery:Tadoquery;
TmpFrdbdataset:Tfrdbdataset;
i:integer;
begin
Frreport1.clear;
Frreport1.loadfromfile('c:\cache\myfrreport.frf');
Tmpquery:=Tadoquery.create(nil);
Tmpquery.name:='adoquery1';
Tmpquery.loadfromfile('c:\cache\adoquery1.dat');
TmpFrdbdataset:=Tfrdbdataset.create(nil);
TmpFrdbdataset.name:='Frdbdataset1';
TmpFrdbdataset.dataset:=Tmpquery;
Frreport1.dataset:=TmpFrdbdataset;
FRReport.Dictionary.BandDatasources['Frdbdataset1']:='数据集';
FRReport.Dictionary.FieldAliases['adoquery1']:='明细数据';
for i:=0 to Tmpquery.FieldCount-1 do
RReport.Dictionary.FieldAliases['adoquery1'+'.'+Tmpquery.Fields[i].FieldName]:=ArrDataSet[i].Fields[j].DisplayLabel;
FrReport1.showreport;

运行后,提示不能找到adoquery1.empid字段变量或显示空白报表。

各位大侠请伸手相助。
...全文
509 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zh_x_w 2009-01-08
  • 打赏
  • 举报
回复
wangorg 2007-01-13
  • 打赏
  • 举报
回复
看来事情还要靠自己啊!问题解决.
Frreport1.clear;
Frreport1.loadfromfile('c:\cache\myfrreport.frf');
Tmpquery:=Tadoquery.create(self); //将nil改为self 即可
Tmpquery.name:='adoquery1';
Tmpquery.loadfromfile('c:\cache\adoquery1.dat');
TmpFrdbdataset:=Tfrdbdataset.create(self); //将nil改为self 即可
TmpFrdbdataset.name:='Frdbdataset1';
TmpFrdbdataset.dataset:=Tmpquery;
Frreport1.dataset:=TmpFrdbdataset;
FRReport.Dictionary.BandDatasources['Frdbdataset1']:='数据集';
FRReport.Dictionary.FieldAliases['adoquery1']:='明细数据';
for i:=0 to Tmpquery.FieldCount-1 do
RReport.Dictionary.FieldAliases['adoquery1'+'.'+Tmpquery.Fields[i].FieldName]:=Tmpquery.Fields[j].DisplayLabel;
FrReport1.showreport;
Tmpquery.free;
TmpFrdbdataset.free;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧