我在delphi中使用FastReport控件,表里面有245条记录,打印的时候怎么就把第一条记录重复显示了245次?数据源都关联了呀,为什么呢??
代码如下:  
    dir := ExtractFilePath(Application.ExeName);
    frReport1.LoadFromFile(dir + 'fr3.frf');
    b :=  TfrMemoView(frReport1.FindObject('Memo2'));
     with ADOQuery1 do
         begin
             close;
             sql.Clear;
             sql.Add('select distinct comid from cominfo');
             open;
         end;
           frDBDataSet2.DataSet := ADOQuery1;
           frReport2.Dataset := frDBDataSet2;
        b.Memo.Text := ADOQuery1.Fields[0].Value;
           frReport1.ShowReport;

解决方案 »

  1.   

              frReport1.ShowReport;
    上面最后一条写错了,是frReport2.ShowReport;
      

  2.   

    代码是这个:  
          dir := ExtractFilePath(Application.ExeName);
        frReport2.LoadFromFile(dir + 'fr3.frf');
        b :=  TfrMemoView(frReport2.FindObject('Memo2'));     with ADOQuery1 do
             begin
                 close;
                 sql.Clear;
                 sql.Add('select distinct comid from cominfo');
                 open;
             end;           frDBDataSet2.DataSet := ADOQuery1;
               frReport2.Dataset := frDBDataSet2;        b.Memo.Text := ADOQuery1.Fields[0].Value;
               frReport2.ShowReport;
      

  3.   

    b.Memo.Text := ADOQuery1.Fields[0].Value; 
    这句不是导致,每一行的b.Memo.Text始终为ADOQuery1.Fields[0].Value; 吗
      

  4.   

    b.Memo.Text:=ADOQuery1.Fields[0].Value;
    好像只接收adoquery1的第一条记录啊!
    改成如下:
    b.Memo.Text:='[frDBDataSet2."'+ADOQuery1.Fields[0].FieldName+'"]';
    btw:
    应该加上一句:
    if b<>nil then
    ......
      

  5.   

    为什么这样赋值呢 b.Memo.Text := ADOQuery1.Fields[0].Value; ,怎么不直接连接数据字段