本人最近使用DELPHI开发小程序过程中,制作打印报表时发现如下情况,不知采用何种办法是好!
 请各位多多指教! 在FORM下添加 ADODataset1 、DBGrid1、及 frReport1 等控件, 其中frReport 与 DBGrid共同使用一个 ADODataset1 数据集对象,当我预览 frReport时,问题发生了。观察DBGrid 的当前选择行由上至下滚动起来,这很不好! 我希望frReport 预浏或打印时不会影响 dbgrid中的当前行移动!
  无论是qucikReport或是 fastReport 都是这样的! 不知各位有什么好办法?  先谢谢了!

解决方案 »

  1.   

     ADOQuery1.DisableControls;
    //开始打印
    ADOQuery1.EnableControls;
      

  2.   

    ADODataSet1.DisableControls;
    try
      //开始打印
    finally
      ADODataSet1.EnableControls;
    end;
      

  3.   

    我是这样写的,用的是以fastreport为核心的reportm……报表
            DBGridEh1.DataSource.DataSet.DisableControls;
            RMReport2.PrepareReport;
            RMReport2.ShowReport;
            DBGridEh1.DataSource.DataSet.First;
            DBGridEh1.DataSource.DataSet.EnableControls;
      

  4.   

    增加一个TfrDBDataSet控件,设置其DataSet为ADOQuery1,(即数据集)
    设置frReport的DataSet属性为frDBDataSet1, ADOQuery1.DisableControls;  //加上这句打印时,速度会快很多
    ADOQuery1.First;
    try
      frReport1.LoadFromFile('文件名');
      frReport1.ShowReport;
    finally
      ADOQuery1.EnableControls;
    end;