QuickRep1上添加QRBand,QRBand 上添加一个QRDBText,且连接数据库完毕,为什么QrDBText上只显示一条记录?还有:看里面吧:)(5

  • 主题发起人 主题发起人 SevenOrient
  • 开始时间 开始时间
S

SevenOrient

Unregistered / Unconfirmed
GUEST, unregistred user!
QuickRep1上添加QRBand,QRBand 上添加一个QRDBText,且连接数据库完毕,为什么QrDBText上只显示一条记录?还有:看里面吧:)(50分)<br />QuickRep1上添加QRBand,QRBand 上添加一个QRDBText,且连接数据库完毕,为什么QrDBText上只显示一条记录(第一条)?还有:我写代码AdoDataSet1.next 后,
QuickRep1.Preview ;为什么还是显示的那一条记录????
 
急呀,兄弟们!
 
老大,放在Detail Band上!
 
双击QuickReport,CheckBox选中Detail。
然后在那上面放置DBText什么的。
 
设置QuickRep1的DataSet属性
 
:),老大,可以了,但是我想只显示一条的时候:AdoDataSet1.first.
怎么,它都显示出来了?
我想自己写了个“下一条”按钮,显示下一条记录,
adodataSet1.next
 
QuickRep1上添加Detail,Detail 上添加一个QRDBText,且连接数据库完毕,
DataSet属性为adoDataSet;
QRDBText和adoDataset连接好.
QRDBText的field属性为name;
代码:adoDataSet1.commdtext:=str;
adodataSet1.active:=true;
adodataset1.first
quickrep1.preview
为什么把所有的记录都显示出来了?
我只想显示一条.我的意思是欲览下一条时,在添加个按钮,在里面写:
adoDataSet1.next;
quickrep1.preview;
就这样一条一条打印出来
为什么刚first后就把所有的记录都显示出来了?

 
在QuickReport的onNeedData里面添加时间,去除QuickReport的DataSet,手工给个QR控件赋值。
没有结束的时候使用MoreData=True,结束的时候使用MoreData=True,这样你就能够控制打印了。
 
我点“下一条”代码:
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总是显示最后一条记录。为什么?
 
去掉QuickRep1的dataset,这样打印的就是当前一条记录,然后循环打印即可。
 
//-----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
还是不行!还是不行!还是不行!还是不行!还是不行!
 
好了,好了,终于试出来了。我真是太愚了,谢谢,各位帮忙了!!!:看下面代码:

//-----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;
 
多人接受答案了。
 
后退
顶部