0

我刚刚从 ActiveReports 2.0 升级到 3.0。所有 rpx 文件都已转换为 *.vb 文件。ActiveReports 项目具有这样的类层次结构:

*.vb 与设计器 -> PrintBase.vb -> ActiveReport3

当我打开任何 *.vb 文件时,我收到此错误:

无法为此文件显示设计器,因为无法设计其中的任何类。设计人员检查了文件中的以下类: xxx --- 无法加载基类“PrintBase”。确保已引用程序集并且已构建所有项目。

调用堆栈:在 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager) 在 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager) 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad( IDesignerSerializationManager serializationManager) 在 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost 主机)

然后我浏览了 PrintBase.vb。没有编译错误。然后我将其中一个 *.vb 文件修改为:

Hello.vb -> ActiveReport3

设计师工作没有任何问题。PrintBase 有相当多的代码。为了简化调试,我创建了一个名为 BasePrint 的新 .vb 文件,它继承自 ActiveReport3。因此,层次结构又回到:

Hello.vb -> BasePrint -> ActiveReport3

然后我又在上面看到了同样的错误。根据我的调试,似乎 AR3 设计器不允许 .vb 文件从基类继承。但我不太确定。顺便说一句,ActiveReports 项目是 vb.net。VS 2008 项目解决方案下还有其他 C# 项目。VB.NET 项目和 C# 的混合是否与迁移/升级过程有关?

谢谢。

4

1 回答 1

0

实际上,ActiveReports 3.x 设计器中的升级实用程序不支持类样式继承。但是,升级完成后,您应该能够将基类置于错误状态(您描述的方式)并且设计人员应该安全地忽略它。如果您仍然遇到问题,请尝试关闭项目,进行清理(删除可能引用旧 PrintBase 类的旧程序集)并关闭 Visual Studio 并再次重新打开它以重新开始。

您可以在以下页面找到有关将报表从 ActiveReports 2.x 升级到 ActiveReports 3.x 的更多信息:链接文本

但是,在这种情况下,您似乎正在使用继承来共享一些实用方法,也许还有一些状态(例如,可能在类级字段中)。为此,最好让您的报表直接从 ActiveReport3 继承,并使用“BasePrint”作为报表调用函数的一种实用程序类。通常,除了必须在方法调用前加上相应的 BasePrint 实例/变量名称,它简化了在您描述的场景中与 ActiveReports 设计器的处理。

但是,ActiveReports 确实支持允许基本报表与派生报表共享控件的视觉继承。有关如何使用此功能的更多信息,请访问以下位置:http ://www.datadynamics.com/Help/ARNET3/ar3tskInheritance.html 。但是,我想强调的是,这是一种与您使用的继承风格不同的风格,因此它可能不适用于您的需求。

此外,您应该尝试再次转换,而无需使用 C# 和 VB 项目的组合解决方案。我不知道这是个问题,但它肯定不是转换器最常用的使用方式,而且可能会使事情复杂化。

最后,您应该知道 ActiveReports 6 现在可用,您可能需要考虑试用该版本。

如果您仍然有任何问题,请通过 support@grapecity.us.com 联系我们的支持团队,或使用我们的公共表格,每天都有许多 ActiveReports 专家通过以下链接监控他们:

http://www.datadynamics.com/forums/73/ShowForum.aspx - ActiveReports 3 论坛 http://www.datadynamics.com/forums/82/ShowForum.aspx - ActiveReports 6 论坛

Scott Willeke
GrapeCity / Data Dynamics
于 2009-09-30T20:46:08.077 回答