begin
if dbgrid1.FieldCount>0  then begin
quickreport3.DataSet:=Query1;
quickReport3.DataSet.First;  /////////////看看有没有用,
quickreport3.Preview;
end else begin
MessageDlg('你还没有执行单证核对!', mtInformation,
      [mbOk], 0);
end;
应该不会出现这种情况的.