还没解决,大虾们能不能再给些提示啊:在报表中,为什么可以显示字段名,而预览时却是空的? (20分)

  • 主题发起人 主题发起人 Endo
  • 开始时间 开始时间
E

Endo

Unregistered / Unconfirmed
GUEST, unregistred user!
//动态创建QRLabel和QRDBText
Function CreateQRLabelAndQRDBText(DBGrid:TDBGrid):String;
var
i:integer;
begin
For i:=0 To DBGrid.FieldCount-1do
begin
QRLabel:=TQRLabel.Create(Application);
QRDBText:=TQRDBText.Create(Application);
QRLabel.Caption:=DBGrid.Fields.FieldName;
QRDBText.DataSet:=ADOQuery;
QRDBText.DataField:=DBGrid.Fields.FieldName;
QRLabel.Top:=60;
QRDBText.Top:=QRLabel.Top+30;
QRLabel.Left:=i*60+50;
QRDBText.Left:=QRLabel.Left;
QRLabel.Parent:=F_Report.QRBand_DB;  // 父窗体名为 F_Report
QRDBText.Parent:=F_Report.QRBand_DB;

QRLabel.Width:=100;
QRDBText.Width:=100;
QRLabel.Height:=16;
QRDBText.Height:=16;
end;
end;

Procedure ......
begin
CreateQRLabelAndQRDBText(F_Main.DBGrid_DB);
//F_Report.QuickRep_DB.Preview;(为什么预览时窗口没有显示任何数据???)
F_Report.Show;(正常显示字段名,说明字段连接没问题)
end;

 
连接的数据集是空的吗?qrlabel连的表里有数据吗?
 
去掉动态创建的语句
照你设置的属性在设计时建立报表
看效果如何
你的QuickRep绑定数据集了吗?
 
表里有数据啊,奇怪的是连 QRLabel 的内容也没显示出来!
源代码放在:
http://endo.html.533.net/delphi/DBFrame.rar
希望大虾们帮忙看一下啊!
 
谢谢 XWHope ,我设置了 QuickRep 的数据集后,可以显示了,但只有一条记录啊!
表里面有很多记录的!
 
QRBand_DB.BandType:=rbDetail;
这句话要怎么写啊?
系统提示说 rbDetail 没有定义!
 
好像不是 QRBand_DB.BandType 的问题吧?
因为我在 QRBand 的属性里已经设置它的 BandType 属性为 rbDetail ◎!
大虾帮帮忙啊!
 
多找找以前的问题啊,我帮你找了一个:
生成各类Band不是通过赋值来实现的,参考以下方法:
下面的例子可生成一个PageHeader Band,并在这个PageHeader Band上
加一个输出控件来显示报表标题:
with Form2.QuickRep1do
begin
ReportTitle := 'Liuly's Test Report';
//生成PageHeader,此处可改成HasDetail,HasPageFooter等即可生成其他各种Band
Bands.HasPageHeader := True;

//生成QRSysData控件,此处可改成QRLabel等其他输出控件
with TQRSysData(Bands.PageHeaderBand.AddPrintable(TQRSysData))do

begin
Data := qrsReportTitle;
AlignToBand := True;
Alignment := taCenter;
end;
end;

 
多人接受答案了。
 
后退
顶部