Vb6 CR 2008查看器中的旧Crystal Report速度慢得令人痛苦

Vb6 CR 2008查看器中的旧Crystal Report速度慢得令人痛苦,vb6,crystal-reports,Vb6,Crystal Reports,我有一个VB6应用程序,可以连接到SQL Server或Oracle数据库。它包括一些Crystal报告,使用旧版本(CR 8.5)制作 我正在将Crystal viewer升级到CR 2008(使用Interop Forms Toolkit)。 一切都进行得相当顺利,但我看到一些报告出现得非常缓慢。其他报告都很好 我很感激任何事情的提示,这会导致水晶报表在CR 8.5预览窗口中快速出现,但在CR 2008预览窗口中会慢慢出现。 < P>最新的VB6支持的水晶报表版本是晶XI。我知道您可以在.N

我有一个VB6应用程序,可以连接到SQL Server或Oracle数据库。它包括一些Crystal报告,使用旧版本(CR 8.5)制作

我正在将Crystal viewer升级到CR 2008(使用Interop Forms Toolkit)。 一切都进行得相当顺利,但我看到一些报告出现得非常缓慢。其他报告都很好


<席>我很感激任何事情的提示,这会导致水晶报表在CR 8.5预览窗口中快速出现,但在CR 2008预览窗口中会慢慢出现。

< P>最新的VB6支持的水晶报表版本是晶XI。我知道您可以在.NET中创建COM对象并从VB6调用它,但这不会改变Crystal 2008不受支持的事实。您迟早会遇到一个报告,其中VB6应用程序将出现无法解决的问题。要检查当前报告是否存在这种情况,请创建一个temp.NET项目并运行其中一个。如果报告工作正常,那么问题显然是VB6。当然,报告速度缓慢可能还有其他原因。你换了运行它们的机器了吗?如果是,新机器上是否安装了相同的打印机和相同的驱动器(包括映射驱动器)


另外,实际上,要在.NET中测试报告,您不需要创建项目。如果您从市场上现有的.NET Crystal查看器中下载一个,将会更容易。通常他们有试用模式,这对你的测试来说已经足够了。让我知道这是否对您更有效,我可以发布一些链接

这里有一些大大加快了处理速度(预览或打印报告):

  • 在Crystal 2008编辑器中打开报告
  • 数据库菜单,选择“验证数据库”
  • 拯救

这样做将一些字段从“PersistentMemoField”更改为“StringField”,并删除了一些“DatabaseName”值。无论如何,我对结果很满意。

进一步的测试表明,数据库类型(SQL Server与Oracle)实际上不是一个因素。问题已编辑,以删除问题仅发生在db为Oracle时的建议。感谢您的回答。使用旧的Crystal运行时从我的VB6应用程序预览的特定报告几乎会立即出现。使用2008 Crystal runtime从我的VB6应用程序预览的同一份报告将延迟约15秒。从我编写的.NET应用程序预览同一份报告时,延迟仅减少到12秒左右。因此,我认为报告中有新运行时不喜欢的内容,我不认为“VB6与2008运行时”是问题所在。如果延迟仅为15秒,则很可能与.NET有关。尝试运行报告两次,并检查第二次是什么。在第一次启动期间,.NET应用程序将加载所有组件,这需要一些时间。VB6正在使用旧的ActiveX组件,这些组件更小,加载速度更快。是的,第二次加载速度更快。但是最快的速度仍然慢得令人无法接受。是否有子报表?如果未选中此选项,则差异来自.NET组件。顺便问一下,您是否检查了此选项的所有子报告?我的猜测是他们还可以,因为延迟太小了。如果该选项处于启用状态且子报告不可用,则每个子报告的延迟通常至少为30秒。但是,值得检查每个子报表,以确保它们不会被重新导入。