如何动态的给Fastreport组件加载数据集 ( 积分: 100 )

  • 主题发起人 主题发起人 ww20000309
  • 开始时间 开始时间
W

ww20000309

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在论坛找了一遍没有发现可行的。
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.FieldName]:=ArrDataSet.Fields[j].DisplayLabel;
FrReport1.showreport;
动行后,提示不能找到adoquery1.empid字段变量或显示空白报表。
各位大侠请伸手相助。
 
看来事情还要靠自己啊!问题解决.
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.FieldName]:=ArrDataSet.Fields[j].DisplayLabel;
FrReport1.showreport;
Tmpquery.free;
TmpFrdbdataset.free;
 
后退
顶部