qrpreview.qrprinter := quickrep.qrprinter;

解决方案 »

  1.   

    在onpreview里加上上面一句就可以了
      

  2.   

    好象不行呀:
    form1的AdoDataSet1已经active:=true;而且,form1的数据都显示出来了,为什么
    form1.ADODataSet1.CommandText :='select * from bjiao_jingy';
    form1.ADODataSet1.active:=true;
    为什么
    procedure TForm1.QuickRep1Preview(Sender: TObject);
    begin
        F_MyPreview.qrpreview1.QRPrinter := self.QuickRep1.QRPrinter;
    end;
    还不显示记录?
      

  3.   

    F_MyPreview.qrpreview1.QRPrinter := F_MyPreview.QuickRep1.QRPrinter;
      

  4.   

    你的quickrep能否直接显示数据呢?如果它不能的话,qrpreview中自然就没有数据了
      

  5.   

    不用QRPreview,直接做报表就可以了。需Preview时只需QuickRep1.Preview就可以了,打印只要QuickRep1.Print
      

  6.   

    我是在form1窗体里有Quickrep控件,显示正常。然后,我修改到
    form1里的,如下:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    QuickRep1.OnPreview := OnMyPreview;
    end;
     procedure TForm1.OnMyPreview(Sender: TObject);
    begin
      try
        Application.CreateForm(TF_MyPreview, F_MyPreview);
      except
        MessageDlg('打印预览窗口已经存在,请重新启动本系统!',mtError, [mbOK], 0);
        exit;
      end;
       F_MyPreview.QRPreview1.QRPrinter :=F_MyPreview.QuickRep1.QRPrinter;
       F_MyPreview.ShowModal;
      end;
    然后,P_myPreview应该显示数据。但是没有显示
      

  7.   

    另外,P_myPreview里必须有QuickRep吗?(我有一个QRPreview的时候不行,然后又添加了
    一个QuickRep,还是不行,当然我设置好了QuickRep的属性。)
      

  8.   

    好了,终于好了,可是又有问题了:
    P_myPreview上自己写了个“下一条”按钮,显示下一条记录,怎么,下一条记录不显示,还是显示的这一条记录?我已经adodataSet1.next了。
      

  9.   

    首先我向指导你的第一个问题是如何解决的
    其次,next不显示下一条记录的原因可能有很多中,譬如你的dataset已经到了最后一条记录了 
    ,或者是ado没有升级的原因不过我自己以前的实践看,如果直接通过next方法去试图改变quickrep的显示好像是不行的,你 可以在next之后加一个onpreview重新激活预览事件 
      

  10.   

    To cobi:
        你说的我试了,还不 行;
        我点“下一条”代码:
        form2.adoDataSet1.next;
        form2.QuickRep1.DataSet:=form2.AdoDataSet1;
        form2.QRLabel1.caption:=Form2.AdoDataSet1.FieldbyName('name').asString;
        form2.QuickRep.Preview;
    procedure TForm2.QuickRep1Preview(Sender: TObject);
    begin
        form3.QRPreview1.QRPrinter :=self.QuickRep1.Printer ;
        form3.show;
    end;
    form3的QRPreview总是显示最后一条记录。为什么?
      

  11.   

    你先换成query试一下,如果可以了,将是ado的问题
      

  12.   

    你有没有添加过下面的代码:
    frmReport.QuickRep1.Preview;
    frmReport是QuickRep1所在窗体。
    只有QuickRep1在执行预览时,
    在自定义预览窗体里才会有数据显示。
      

  13.   

    //-----Unit1-----------
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        form2.ADODataSet1.CommandText :='select * from Bjiao_jingY';
        form2.ADODataSet1.Active :=true;
        form2.ADODataSet1.First;
        //form2.QuickRep1.DataSet :=nil;
        form2.QRLabel1.caption:=form2.ADODataSet1.fieldbyname('业户名称').AsString ;
        form2.QuickRep1.Preview ;
    end;
    //-------unit2--------
    procedure TForm2.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
    begin
         self.ADODataSet1.Next;
         if adodataset1.Eof then
         MoreData:=false
         else
         moreData:=true;
    end;procedure TForm2.QuickRep1Preview(Sender: TObject);
    begin
        form3.QRPreview1.QRPrinter :=self.QuickRep1.Printer ;
        form3.show;
    end;procedure TForm2.QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    begin
    AdoDataSet1.First;
    end;
    //-----unit3----
    procedure TForm3.Button1Click(Sender: TObject);
    begin
        //form2.ADODataSet1.Next;
        //form2.QuickRep1.DataSet :=nil;
        form2.QRLabel1.Caption :=form2.ADODataSet1.fieldbyname('业户名称').AsString ;
        form2.QuickRep1.Preview ;
    end;
    //-----dfm文件--
    Form1上有一个button1
    form2上有QuickREp和AdoDataSet1,设置好了AdoDataSet1的ConnctionString
    form3上有QRPreview1 和一个button1
    还是不行!还是不行!还是不行!还是不行!还是不行!
      

  14.   

    好了,好了,终于试出来了。我真是太愚了,谢谢,各位帮忙了!!!:看下面代码://-----Unit1-----------
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        form2.ADODataSet1.CommandText :='select * from Bjiao_jingY';
        form2.ADODataSet1.Active :=true;
        form2.ADODataSet1.First;
        //form2.QuickRep1.DataSet :=nil;
        form2.QRLabel1.caption:=form2.ADODataSet1.fieldbyname('业户名称').AsString ;
        form2.QuickRep1.Preview ;
    end;//---------------Unit2---------
    procedure TForm2.QuickRep1Preview(Sender: TObject);
    begin
        form3.QRPreview1.QRPrinter :=self.QuickRep1.Printer ;
        form3.show;
    end;
    //----Unit3-----------
    procedure TForm3.Button1Click(Sender: TObject);
    begin
        form2.ADODataSet1.Next;
        //form2.QuickRep1.DataSet :=nil;
      
        form2.QRLabel1.Caption :=form2.ADODataSet1.fieldbyname('业户名称').AsString ;
        form2.QuickRep1.Preview ;
    end;