用QuickRep控件在Delphi6里做打印欲览的时候,欲览完毕后,在最上工具栏上(有next page、print等按钮)。。看里面吧: 用TRQPreview自己做。-------------------- 请搜索主题为“。。激活报表的Preview窗口?”的问题,我在这个问题中提供了完整的源代码,可以自己修改。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自带的不行,你可以用TRQPreview控件加入你自己的继承的窗体上实现。 自定义一个继承自TQRStandardPreview的预览窗体TForm_Preview = class(TQRStandardPreview),然后打开qrprev.dfm文件查找next page、print等按钮的对象名,假设找到的对象名为:NextPage、Print;在TForm_Preview中定义你自己的NextPage、Print的点击事件方法方法原型: void __fastcall TForm_Preview::MyNext(TObject * Sender); void __fastcall TForm_Preview::MyPrint(TObject * Sender);在TForm_Preview类的构造函数中将NextPage、Print的点击事件指向你自己的事件方法如: NextPage->OnClick=MyNext; Print->OnClick=MyPrint;如此,当你在你的预览窗体里点击next page、print等按钮时,就会调用你的MyNext、MyPrint中的代码。 用自己写的窗体实现吧,不过直接的next也不可能马上实现数据在quickrep的更新,可能还要触发一次preview事件 我点“下一条”代码: 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;procedure TForm2.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);begin self.ADODataSet1.Next; if adodataset1.Eof then MoreData:=false else moreData:=true;end;procedure TForm2.QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean);beginAdoDataSet1.First;end;form3的QRPreview总是显示最后一条记录。为什么? 你要源代码吗?我有一个用QRPriview写的代码 好呀。我要:)[email protected]另外我的代码哪不对呀?//-----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);beginAdoDataSet1.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上有一个button1form2上有QuickREp和AdoDataSet1,设置好了AdoDataSet1的ConnctionStringform3上有QRPreview1 和一个button1还是不行!点按钮后,总是显示最后一条记录 好了,好了,终于试出来了。我真是太愚了,谢谢,各位帮忙了!!!:看下面代码://-----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; 用我的打印预览控件可以轻松搞定,而且很简单、截面也完全个性化,并且是微软office风格.国人最好的打印预览控件,有VC++、VB、DELPHI、BCB四个版本。欢迎索取。请留下你的EMAil 建路径中的各级文件夹 在delphi7.0中怎么进行数据库连接测试有什么软件吗? DLL里的ActionList的快捷键设置问题..急 关于可run后形成的执行文件无法直接运行的问题,求助 初学者求救: 高手帮忙!!怎么显示隐藏的桌面图标————在线等待!!急急急!!! 有DFW上的朋友吗?今天DFW怎么进去出错?不知道你们进得去吗?? Fastreport 中实现发票连续打印 如何在程序中得到一网页中的所有URL,谁有原码或相关控件 来来来 怎样每次都接着上次打印的位置打印 新手请教: QuickReport 控件如何完成打印表格 ?
TForm_Preview = class(TQRStandardPreview),然后打开qrprev.dfm文件查找next page、print等按钮的对象名,
假设找到的对象名为:NextPage、Print;在TForm_Preview中定义你自己的NextPage、Print的点击事件方法
方法原型:
void __fastcall TForm_Preview::MyNext(TObject * Sender);
void __fastcall TForm_Preview::MyPrint(TObject * Sender);在TForm_Preview类的构造函数中将NextPage、Print的点击事件指向你自己的事件方法
如:
NextPage->OnClick=MyNext;
Print->OnClick=MyPrint;如此,当你在你的预览窗体里点击next page、print等按钮时,就会调用你的MyNext、
MyPrint中的代码。
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;
procedure TForm2.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
self.ADODataSet1.Next;
if adodataset1.Eof then
MoreData:=false
else
moreData:=true;
end;
procedure TForm2.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
AdoDataSet1.First;
end;form3的QRPreview总是显示最后一条记录。为什么?
我有一个用QRPriview写的代码
[email protected]
另外我的代码哪不对呀?
//-----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
还是不行!点按钮后,总是显示最后一条记录
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;