亲爱的Stackoverflow用户。我迫切需要帮助。我一直在努力与嵌入在Embarcadero XE 2 RAD studio版的FastReport 4.0。更具体地说,我一直得到同样的错误,一次又一次,这是神秘的“类TfrxReport未找到”错误。下面我提交了导致问题的部分代码
procedure TForm1.buildReport(Sender: TObject);
var
DevicePic, SymbolPic: TfrxPictureView;
TitleEntry, xmlField: TfrxMemoView;
MasterDataBand: TfrxMasterData;
begin
if not ADOConnection1.Connected then
ShowMessage('Cannot build Report! Please, connect to the DB!')
else
try
//this is where the Class Not Found Exception is Thrown
frxReport1.LoadFromFile('LibreportTemplate.fr3',True);
// frxReport1.LoadFromFile('helloInfineonThree.fr3',True);
if (frxDBDataset1 = nil) then frxDBDataset1 := TfrxDBDataset.Create(Self);
// connect the report to the DATA
frxDBDataset1.DataSource := DataSource1;
frxReport1.DataSet := frxDBDataset1;
except
ShowMessage('Error has Occured! Report Template File Not Found!');
// exit from this procedure!
Exit;
end;
// If no errors have occured, go on building ur report by actually filling it up with data!
// attach dataSet to the masterdata band of the report.
MasterDataBand := frxReport1.FindObject('MasterData1') as TfrxMasterData;
MasterDataBand.DataSet := frxDBDataset1;
// prepare textfields
TitleEntry := frxReport1.FindObject('TitleEntry') as TfrxMemoView;
TitleEntry.DataSet := frxDBDataset1;
TitleEntry.DataField := 'LibFName';
xmlField := frxReport1.FindObject('xmlField') as TfrxMemoView;
// stretch the field if text too big.
xmlField.StretchMode := TfrxStretchMode.smActualHeight;
//get the XML DATA FROM THE DB.
xmlField.DataSet := frxDBDataset1;
xmlField.DataField := 'LibFXML';
// prepare images
DevicePic := frxReport1.FindObject('ImageEntry') as TfrxPictureView;
DevicePic.DataSet := frxDBDataset1;
DevicePic.DataField := 'LIBFIMAGE';
SymbolPic := frxReport1.FindObject('SymbolEntry') as TfrxPictureView;
SymbolPic.DataSet := frxDBDataset1;
SymbolPic.DataField := 'LibFSymbol';
// build and display report
frxReport1.PrepareReport();
frxReport1.ShowPreparedReport;
end;
在构建和运行程序时,我收到以下错误消息“Cannot Find class TfrxReport”(无法找到类TfrxReport),并在DebugMode(调试模式)中收到以下警告:
项目“MyProject.exe”引发了类EClassNotFound异常,并显示消息“找不到类TfrxReport”。
正如上面代码中所注解的,在执行frxReport1.LoadFromFile('LibreportTemplate.fr3',True)时会抛出所讨论的异常;中设置网格颜色.
我尝试了许多不同的方法来解决这个问题,包括在网上搜索解决方案。下面是我所做的:
在Form OnCreate和OnClose期间手动创建和销毁frxReport 1对象-错误持续
正如在FastReport(我不能发布SO上的链接,原因是“对不起,帖子不能包含该内容。”错误)论坛线程中的建议,替换FastReport 4\LibD16文件夹中的文件。-错误持续
重新编译FastReport 4 RAD STUDIO 32位版本-错误持续存在重新编译FastReport 4 RAD STUDIO 64位版本-错误持续存在重新安装Embarcadero RAD Studio和FastReport 4 -错误持续存在
在堆栈溢出中提问-????
从fast-reports论坛中的帖子来看,问题和相应的解决方案应该是(我引用):
此错误是由GroupDescendentsWith(TfrxReport,TControl)引起的。代码。此代码从FierMonkey中隐藏了TfrxReport,并且由于某种原因,当您加载报告(仅在IDE中)时,“FindClass”函数无法找到TfrxReport类。如果无法加载报告或出现类似错误,并显示“无法找到TfrxReport”消息,请将此“Link to Files”文件放置到“Fast Report\LibD16”目录(全部替换)。
然而,建议的方法并不能解决问题!我该怎么办?有人有什么想法吗?
6条答案
按热度按时间xmq68pz91#
我也遇到过这个问题,
一旦安装了设计包,您就看不到结果了,我重新启动了IDE,它运行得很好;)
有2年的延迟,我希望这能有所帮助!
o2g1uqev2#
不确定你是否得到了这个问题的答案...但我在Rad Studio XE 4中也遇到了同样的问题,使用Fast Reports 4. 0 Pro。
我已经把我的报表放在了一个数据模块中,我可以在需要的时候创建/销毁它,数据集也在那里找到。我可以在报表设计器中放置一个BarCode元素,但是,当运行应用程序时,我会得到“找不到类TfrxBarCodeView”。
在搜索C:\Program Files(X86)\Fast Reports\source\中的Source文件夹后,我打开了一个名为frxBarcode.pas的源文件,其中包含类“TfrxBarCodeView”的创建。
我只是简单地将frxBarCode添加到我的使用列表中,所有的工作都很完美!
nuypyhwy3#
只是一个想法。
在程序启动时的某个地方添加
RegisterClass(TfrxReport);
,或者在引发错误的那一行之前。vcudknz34#
我会从1开始
1.放置fr3文件的绝对完整路径,以及
1.将其放在用户的文档目录中,
只是为了排除文件访问问题。你有FastReport的源代码吗?
qyuhtwio5#
我知道这是旧的,但对某些人来说,它可能会有用。我只是遇到了类似的问题。我从来没有想到有一个组件上的快速报告称为frxReportTableObject的调色板。只是把它放在表单的问题。
0s7z1bwu6#
将frxBarCode添加到uses解决了该问题。