又来问简单问题(50分)

  • 主题发起人 主题发起人 小争
  • 开始时间 开始时间

小争

Unregistered / Unconfirmed
GUEST, unregistred user!
对quickreport做报表不熟?要做一报表,样式如下.
aaa bbb ccc {column header}
ddd data1 data2 {detail}
eee data3 data4
fff data5 data6
其中 ddd eee fff 是我要画的,可是我不知道怎样把它加入到
detail 的前边.
另外,我想问怎样不装delphi,单独安装bde.

 
1.听
2.用delphi光盘上的install Shield自己作一个安装盘,就专门只装
bde。
 
放一个qrlabel,然后再qrReport的onneeddata事件中改变label的caption。
这样应该没问题的。:)
 
安装DELPHI时选择自定义安装,只选安装BDE
 
提醒一点,用OnNeedData的话QuickRep的DataSet必须为空,然后在OnNeedData里通过
记录指针的移动结合Eof和MoreData变量控制DetailBand的添加和结束。
还要注意每次预览或打印之前调用TTable或TQuery的First方法。
 
怎麽这么麻烦。大家有例子吗?寄一个,分不够再加100。
zhengct@263.net
推一下
 
怎么没人回答?分已增加到150分.
请大家帮帮忙
 
你说的ddd,eee,fff应该是有规律的东西吧
比如你要添加一个行号吧
QRBand3是detail,QrlIndex是TQRLabel
i:=0;
procedure TPurPlanRepFrm.QRBand3BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
inc(i);
QrlIndex.caption:=inttostr(i);
end;

 
>>怎麽这么麻烦。
呵呵,其实用OnNeedData做没什么麻烦的,只要概念清楚就行。
>>大家有例子吗?
有。假定你的数据来自Table1,根据你问题中的要求在QuickRep上放好相应的控件——ColumnHeader里放三个
TQRLabel,它们的Caption分别为"aaa","bbb","ccc";DetailBand里放一个TQRLabel对应"aaa",
两个TQRDBText分别对应"bbb"和"ccc",把它们的DataField填上Table1中相应的字段名。
还是要注意QuickRep的DataSet为空,不然不会触发OnNeedData事件的。
另外象chenlh说的,假定你的"aaa"列是一个序号,那么先定义一个全局变量nRecNo: Integer;
然后在QuickRep的BeforePrint事件里——
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
Table1.Active;
Table1.First;
nRecNo := 1;
PrintReport := not Table1.IsEmpty;
end;
在QuickRep的OnNeedData事件里——
procedure TForm1.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
QRLabel1.Caption := IntToStr(nRecNo);
QRDBText1.Caption := Table1.FieldByName(QRDBText1.DataField).AsString;
QRDBText2.Caption := Table1.FieldByName(QRDBText2.DataField).AsString;
Inc(nRecNo);
Table1.Next;
MoreData := not Table1.Eof;
end;
试一下吧!
 
dq 来拿分 DispQ.asp?LID=414163
 
接受答案了.
 
后退
顶部