是这样的,有三个视图,分按条件查询生成后呈现在报表中...在From上放了三个查询,分别是Adoquery1,Adoquery2,Adoquery3
然后再放了三个报表数据集,分别是frxDBDataset1,frxDBDataset2,frxDBDataset3
三个查询分别对应自己的数据集,如Adoquery1对应frxDBDataset1....然后又放了一个DataSource1,其Dataset设置为Adoquery1在报表上放了三个MasterData,分别对应三个数据集,如MasterData1对应frxDBDataset1....我只想要三个视图按FORM里的查询条件显示在报表中的三个数据区,
可为什么我的报表感觉第二个,三个数据集显示不正常,如果有几个报表还会报错?//采购金额
  if (pub.RID = 11) then
  begin
    with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from PurCost1View where 1<>2  ');
      if Trim(ReportNo.Text) <> '' then
        SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
      Open;
      if RecordCount > 0 then
      begin
        {更新FR的数据源}
        frxDBDataset1.FieldAliases.Clear;
        frxDBDataset1.FieldAliases.BeginUpdate;
      end;
    end;
    with ADOQuery2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from PurCost2View where 1<>2  ');
      if Trim(ReportNo.Text) <> '' then
        SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
      Open;
      if RecordCount > 0 then
      begin
        {更新FR的数据源}
        frxDBDataset2.FieldAliases.Clear;
        frxDBDataset2.FieldAliases.BeginUpdate;
      end;
    end;
    with ADOQuery2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from PurCost3View where 1<>2  ');
      if Trim(ReportNo.Text) <> '' then
        SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
      Open;
      if RecordCount > 0 then
      begin
        {更新FR的数据源}
        frxDBDataset3.FieldAliases.Clear;
        frxDBDataset3.FieldAliases.BeginUpdate;
      end;
    end;  end;  if (pub.RID = 10) then
    fileStr :=ExePath+'Report\PurQty.fr3'
  else
    fileStr :=ExePath+'Report\PurCost.fr3';     if FileExists(fileStr) then
  begin
    try
      frxReport1.LoadFromFile(fileStr);
      frxReport1.Report.PrepareReport;
      frxReport1.Report.ShowPreparedReport;
    except    end;
      end;