能不能动态地设置报表表头?很头疼哦!!!!(30分)

  • 主题发起人 huanteng
  • 开始时间
那你就动态创建一个赋值试试
 
我如果把他放在OnCtreate事件里面就可以显示
但是由于我的Oncreate里面还有其他的和数据库连接的事件:
ReportRep.Dataset:=Form1.ADOQuery;
QDBText.Dataset:=Form1.ADOQuery;
QDBText.DataField:='学号';
所以当那个关于QRLabel一句写进去的时候(写在前面),QRLabel可以正常显示,但是DBText就
显示不出来了,
他们之间能有什么语句来连接马?
 
他们之间没有什么关系啊
 
但是操作完if then
语句后好像他就不操作ReportRep.Dataset:=Form1.ADOQuery;
QDBText.Dataset:=Form1.ADOQuery;
QDBText.DataField:='学号';
这些语句了,是不是缺什么转接词
(那些数据库连接的语句也是单独是运行正常的)
 
哈哈,你说的很怪啊
这样吧,你把代码都贴出来吧
 
好:
-----------------------------------------------------------------------------
unit Hegebiaozhun;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, Db, ADODB;
type
THege = class(TForm)
PageControl1: TPageControl;
Hegenan: TTabSheet;
Hegenv: TTabSheet;
RadioGroup1: TRadioGroup;
ADOConnectionHG: TADOConnection;
ADOQueryHG1: TADOQuery;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Hege: THege;
Hegenan:TTabSheet;
RadioGroup1:TRadioGroup;
implementation
{$R *.DFM}
uses
ReportHege;
procedure THege.FormCreate(Sender: TObject);
begin
RadioGroup1.ItemIndex:=0;
end;

procedure THege.Button1Click(Sender: TObject);
begin
adoqueryHG1.close;
adoqueryHG1.sql.clear;
if RadioGroup1.ItemIndex=0 then
adoqueryHG1.sql.add('select * from 大一男生体育合格标准表');
if RadioGroup1.ItemIndex=1 then
adoqueryHG1.sql.add('select * from 大二男生体育合格标准表');
if RadioGroup1.ItemIndex=2 then
adoqueryHG1.sql.add('select * from 大三男生体育合格标准表');
if RadioGroup1.ItemIndex=3 then
adoqueryHG1.sql.add('select * from 大四男生体育合格标准表');
adoqueryHG1.open;

end;

procedure THege.Button2Click(Sender: TObject);
var HegeReportnan:THegeReportnan;
begin
HegeReportnan:=THegeReportnan.create(self);
HegeReportnan.QuickRepHGnan.Preview;
HegeReportnan.free;
end;

end.
-------------------------------------------------------
unit ReportHege;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
QuickRpt, Qrctrls, ExtCtrls;
type
THegeReportnan = class(TForm)
QuickRepHGnan: TQuickRep;
DetailBand1: TQRBand;
QRDBTextHGnan1: TQRDBText;
QRDBTextHGnan2: TQRDBText;
TitleBand1: TQRBand;
QRSubDetail1: TQRSubDetail;
QRLabel1: TQRLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
HegeReportnan: THegeReportnan;
implementation
{$R *.DFM}
uses
Hegebiaozhun;

procedure THegeReportnan.FormCreate(Sender: TObject);
var Hege:THege;
begin
Hege:=THege.Create(application);
if Hege.RadioGroup1.ItemIndex=0
then
QRLabel1.caption:='一年级' ;
QuickRepHGnan.Dataset:=Hege.adoQueryHG1;
QRDBTextHGnan1.Dataset:=Hege.adoQueryHG1;
QRDBTextHGnan1.Datafield:='学号';
QRDBTextHGnan2.Dataset:=Hege.adoQueryHG1;
QRDBTextHGnan2.Datafield:='总得分';

end;


end.



 
query全防在reporthege中
然后在reporthege中hege.showmodal即可
hege中的要区数据库的值在show中写
 
我不想大改
能不能添加什么让她么同时运行呢?
 
我不明白你的hege没有show你是怎么选择radiogroup的
 
ADOQuery是放在Hege这个页上的
用了一个Button1来以Radiobutton的选定来决定Hege上的这个ADOQuery执行什么查询语句,
然后用了一个Button2来创建预览Report
 
那你就在button2的onclick中create(reporthege)赋值,再preview
 
终于实现了
就是这样
在Button上
折腾你一个晚上
我实在抱歉
对了
你同时也到http://www.delphibbs.com/delphibbs/dispq.asp?lid=1151504
这个加分帖上领分好吗?
 
多人接受答案了。
 

Similar threads

回复
0
查看
680
不得闲
回复
0
查看
722
不得闲
D
回复
0
查看
763
DelphiTeacher的专栏
D
D
回复
0
查看
764
DelphiTeacher的专栏
D
顶部