类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
我使用delphi水晶报表的两个控件:TCrpe,TCrpeDS,在使用中遇到了如下问题:
var
Crpe1: TCrpe;
CrpeDS1: TCrpeDS;
——————————————————————————————
//指定数据集合
CrpeDS1.DataSet:=ADOQuery1;
//打开数据集合
ADOQuery1.Active:=true;
//指定报表
self.Crpe1.ReportName:=E:\report\dtest\Report1.rpt;
//为报表指定动态数据集合,就在这一步出错.
try
Crpe1.Tables[0].DataPointer := CrpeDS1.DataPointer;
except
end;
Crpe1.Show;
//-----------错误信息------
Error:717 Error in File E:\report\dtest\Report1.rpt:
Failed to load database information.
Tables[0].SetDataPointer <PESetNthTablePrivateInfo>
//-----------错误信息------
网友回答:
var s:string;
begin
s:=select * from table
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.sql.add(s);
ADOQuery1.open;
crpe1.reportname:=e:\abc.rpt
crpe1.DiscardSavedData;
crpe1.Tables[0].DataPointer:=@ADOQuery.Recordset;
crpe1.WindowState:=wsMaximized;
crpe1.Execute;
end;
注意:此方法是用SQL语句动态的生成!那幺你在制作水晶报表模板时,也应该使用SQL来动态生成报表所需字段!另外水晶报表里面的查询字段必须与ADOQuery中的
查询字段是一样的才行,只不过ADOQuery中增加了一些查询条件而已!