delphi FastReport 4.0.“未找到分类事务报告”异常(RAD STUDIO XE2)

rkkpypqq  于 2022-11-23  发布在  其他
关注(0)|答案(6)|浏览(174)

亲爱的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”目录(全部替换)。
然而,建议的方法并不能解决问题!我该怎么办?有人有什么想法吗?

xmq68pz9

xmq68pz91#

我也遇到过这个问题,

  • 创建一个新的项目组,并添加适合你的 Delphi 版本的DPK(我使用XE 6)。你会看到BPL将分为运行时和设计。
  • 开始编译运行时fsX(X表示版本)、fqbX等。如果顺序有误,您会注意到。某些包需要添加 * 搜索路径 * $(BSDCOMMONDIR)/DCP
  • 编译并安装设计包,您将看到 TfrxReport

一旦安装了设计包,您就看不到结果了,我重新启动了IDE,它运行得很好;)
有2年的延迟,我希望这能有所帮助!

o2g1uqev

o2g1uqev2#

不确定你是否得到了这个问题的答案...但我在Rad Studio XE 4中也遇到了同样的问题,使用Fast Reports 4. 0 Pro。
我已经把我的报表放在了一个数据模块中,我可以在需要的时候创建/销毁它,数据集也在那里找到。我可以在报表设计器中放置一个BarCode元素,但是,当运行应用程序时,我会得到“找不到类TfrxBarCodeView”。
在搜索C:\Program Files(X86)\Fast Reports\source\中的Source文件夹后,我打开了一个名为frxBarcode.pas的源文件,其中包含类“TfrxBarCodeView”的创建。
我只是简单地将frxBarCode添加到我的使用列表中,所有的工作都很完美!

nuypyhwy

nuypyhwy3#

只是一个想法。
在程序启动时的某个地方添加RegisterClass(TfrxReport);,或者在引发错误的那一行之前。

vcudknz3

vcudknz34#

我会从1开始
1.放置fr3文件的绝对完整路径,以及
1.将其放在用户的文档目录中,
只是为了排除文件访问问题。你有FastReport的源代码吗?

qyuhtwio

qyuhtwio5#

我知道这是旧的,但对某些人来说,它可能会有用。我只是遇到了类似的问题。我从来没有想到有一个组件上的快速报告称为frxReportTableObject的调色板。只是把它放在表单的问题。

0s7z1bwu

0s7z1bwu6#

将frxBarCode添加到uses解决了该问题。

相关问题