本人在论坛找了一遍没有发现可行的。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字段变量或显示空白报表。各位大侠请伸手相助。

解决方案 »

  1.   

    看来事情还要靠自己啊!问题解决.
    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;