就是出不来(100分)

  • 主题发起人 主题发起人 树熊132
  • 开始时间 开始时间

树熊132

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是动态的对报表文件进行调用,原程序如下:
if not assigned (frmprin) then
begin
frmprin:=tfrmprin.create(nil);
QRCompositeReport1.Preview;
frmprin.ClientDataSet1.active:=false;
frmprin.ClientDataSet2.active:=false;
frmprin.Release;
frmprin:=nil;
end;
其中frmprin是我被调用的文件
在主程序中我使用QRCompositeReport1控件,在其中的代码如下:
with QRCompositeReport1.Reportsdo
begin
Add(frmprin.QuickRep1);
end;
但我程序运行时Add(frmprin.QuickRep1);出错。
 
把 Preview 后面的代码去掉
 
当然不能去,我这个报表要和数据库进行连接,在报表形成之前当然要对报表所要的数据库
连接进行初始化,所以当然要要。
 
if not assigned (frmprin) then
begin
frmprin:=tfrmprin.create(nil);
frmprin.ClientDataSet1.active:=false;
frmprin.ClientDataSet2.active:=false;
QRCompositeReport1.Preview;
end;
 
建議修改如下:
if not assigned (frmprin) then
begin
frmprin:=tfrmprin.create(nil);
with QRCompositeReport1.Reportsdo
begin
clear;
Add(frmprin.QuickRep1);
end;
QRCompositeReport1.Preview;
frmprin.ClientDataSet1.active:=false;
frmprin.ClientDataSet2.active:=false;
frmprin.Release;
frmprin:=nil;
end;
//你之所以出錯,是因為frmprin窗口還沒建立,不能訪問Frmprin上的物件。
 
不好意思搞錯了,
在下列事件中加:
procedure TMainForm.QRCompositeReport1AddReports(Sender: TObject);
begin
with QRCompositeReport1.Reportsdo
begin
Add(frmprin.QuickRep1);
end;

end;
 
用FastReport吧。
 
多人接受答案了。
 
后退
顶部