关于frxReport网上的东西太少实在找不到解决问的答案,我现在情况是这样的,通过frxReport有条件的显示记录,我的记录有8条,符合条件的有二条,结果显示出来二条记录重复显示了8次,总共16条,而不是只是显示二条在表上,相关代码如下,不知问题出在那里:
//此处打印预览开始显示列表内容
procedure TGreportfrm.frxReport1BeginDoc(Sender: TObject);
begin
with adoquery1 do  //将数据表字段与表内容栏对应,并显示到表中
begin
    close;
    sql.Clear;
    sql.Add('select * from sendhis');
    open;
    TfrxMemoView(frxReport1.FindObject('memo8')).Memo.Text:=fieldbyname('PageNO').AsString;
    TfrxMemoView(frxReport1.FindObject('Memo9')).Memo.Text:=fieldbyname('UserName').AsString;
    TfrxMemoView(frxReport1.FindObject('Memo10')).Memo.Text:=fieldbyname('Message').AsString;
    TfrxMemoView(frxReport1.FindObject('Memo11')).Memo.Text:=fieldbyname('SendDate').AsString;
    filtered:=true;
end;
   
   TfrxMemoView(frxReport1.FindObject('memo3')).Memo.Text:=datetostr(datetimepicker1.Date)+' - '+datetostr(datetimepicker2.Date);
end;//在adoquery1里面进行相关条件的限制显示
procedure TGreportfrm.ADOQuery1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
if (strtodatetime(dataset.fieldbyname('senddate').AsString)-datetimepicker1.Date>=0) and (strtodatetime(dataset.fieldbyname('senddate').AsString)-datetimepicker2.Date<=0) then
begin
    accept:=true;
end else
begin
    accept:=false;
end;
end;
条件应当起了作用,因为也只是显示了符合条件的数据二条数据,但不知为何重复显示了8次,不知在那里控制

解决方案 »

  1.   

    用的是ACCESS表,同时有单独对于查询条件和结果测试过没有问题
      

  2.   

    我依稀记的好像是在一个frxreport的属性设置上,只是不记的这个属性是那个了,太久没有用这个控件,有对于这个控件属性熟习的人能讲一下吗
      

  3.   

    filtered:=true;
    放在Open之后试试??...
     close;
      sql.Clear;
      sql.Add('select * from sendhis');
      open;
      filtered:=true;
    ...
      

  4.   

    找到控件上所有引用frxDBDataset的地方,先全部删除掉,应该就不会显示数据了,再一个地方一个地方引用看效果,你现在肯定是在不该用的地方也用了。