尊敬的Stackoverflow用户。我迫切需要帮助。我一直在为FastReport 4.0的Embarcadero XE2 RAD工作室版本中的嵌入式程序苦苦挣扎。更具体地说,我一遍又一遍地遇到相同的错误,这是错误的“找不到类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;
[构建并运行程序时,出现以下错误消息“找不到类TfrxReport”,在DebugMode中出现以下警告:
项目“ MyProject.exe”引发异常类EClassNotFound,并显示消息“找不到类TfrxReport”。
如上面的代码中所述,执行frxReport1.LoadFromFile('LibreportTemplate.fr3',True);时引发了有问题的异常;命令。
我尝试了许多种解决问题的方法,包括在线搜索解决方案。这是我所做的:
在表单OnCreate和OnClose期间手动创建和销毁frxReport1对象-错误PERSISTS
如FastReport中的建议(我无法在SO上发布链接,原因为“对不起,帖子中不能包含该内容。”错误)论坛线程,请替换FastReport 4 \ LibD16文件夹中的文件。 -错误PERSISTS
重新编译FastReport 4 RAD STUDIO 32位版本-错误PERSISTS重新编译FastReport 4 RAD STUDIO 64位版本-错误持续重新安装Embarcadero RAD Studio和FastReport 4-错误PERSISTS
在堆栈溢出中询问问题-????
从快速报告论坛中的主题看来,问题和相应的解决方案应该是(I QUOTE):
此错误是由GroupDescendentsWith(TfrxReport,TControl);码。 此代码出于某种原因从FierMonkey隐藏了TfrxReport 您在TfrxReport类中找不到“ FindClass”函数 加载报告(仅在IDE中)。如果您无法加载报告或获得类似报告 出现“找不到TfrxReport”消息的错误,请将此“链接到文件” 文件以“快速 Report \ LibD16“目录(全部替换)。
但是建议的方法不能解决问题!我该怎么办?有人知道吗?
我也面临这个问题,并且我已经解决了这个问题,
一旦安装了设计包,您将看不到结果,我已经重新启动了IDE,它运行的很好;)
延迟2年,希望对您有所帮助!
只是一个想法。
在程序启动的某处添加RegisterClass(TfrxReport);
。或者,在引发错误的行之前。
不确定您是否对这个问题有答案...但是我在Rad Studio XE4中使用Fast Reports 4.0 Pro遇到了同样的问题。
我将报告放置在一个数据模块中,可以在需要时创建/销毁它,并且也可以在其中找到数据集。我可以在报表设计器中放置一个BarCode元素,但是,在运行该应用程序时,我会得到“找不到类TfrxBarCodeView”。
搜索C:\ Program Files(X86)\ Fast Reports \ source \中的Source文件夹后,我打开了一个名为frxBarcode.pas的源文件,其中包含创建类“ TfrxBarCodeView”。
我只是将frxBarCode添加到我的使用列表中,并且一切正常!
我将从1
只是为了排除文件访问问题。您有FastReport的源代码吗?
我知道这很古老,但对某些人来说可能很有用。我只是遇到类似的问题。我从来没有想过有一个快速报告选项板上的组件frxReportTableObject。只需将其放在相关表格上即可。