内芙罗纳设计 好评如潮的报告 是一个报告引擎,供以下人员使用 内河码头 德尔福 IDE。

这就是我所说的 Rave Endless Loop bug。在与Delphi 2006捆绑在一起的Rave Reports 6.5.0版(VCL10)中,有一个荒谬的错误困扰着许多Rave Report Report Evelapenters。如果您有一个非空数据集,并且该数据集的数据行完全符合页面(也就是说,寡妇行零行),然后在PrintPreview时,Rave将被卡在Infinite Loop生成页面中。

此问题以前已在以下标题下在本新闻组中报道:

  1. “错误:生成无限页面”;雨果·海勒姆 20/9/2006 8:44PM
  2. “狂欢循环错误。请帮忙”;托马斯·拉扎尔 11/07/2006 7:35PM
  3. “循环整页数据?”;托尼·克里斯蒂安森 23/12/2004 3:41PM
  4. 另一位投诉人对(3)的答复;奥利弗·皮什
  5. “无尽的lopp打印错误”;里奇索 9/11/2004 4:44PM

在这些帖子中的每一个中,没有Nevrona的响应,也没有任何解决方案报告。

可能,问题也已在盟国新闻组(Nevrona.public.rave.Rave.Reports.general)上进行了报道:6.“持续生成报告”;Jobard 2005年12月20日,虽然我尚不清楚(6)是无休止的循环错误或其他问题。该帖子的确从Nevrona获得了答复,但它与多个区域有关(“使用多个跨越页面的区域时,有一个问题。”),而不是零寡妇的问题。

有帮助吗?

解决方案

这更多的是一种解决方法,而不是真正的解决方案。我首先在 Nevrona 新闻组 (Group=nevrona.public.rave.developer.delphi.rave;主题=“你是否患有狂欢无限循环错误?:已公布解决方法。";日期=13/11/2006 7:06 PM)

这是我的解决方案。这更像是一个工作,而不是一个良好的长期解决方案,我希望Nevrona在不久的将来会引起这个问题的严重关注。

  1. 鉴于您的特定报告布局,请计算每个页面的最大行数。假设这是 40。
  2. 设置一个计数器来计算页面中的行数(而不是整个报表中的行数)。您可以通过事件脚本或 CalcTotal 组件来完成此操作。
  3. 为主数据带定义 OnBeforePrint 脚本化事件处理程序。
  4. 在此事件处理程序中,当每页行计数低于最大值一或二时(在我们的示例中为 38),将主数据带的 FinishNewPage 属性设置为 True。在所有其他情况下将其设置为 False。这样做的效果是为每个页面提供非零数量的寡妇(在本例中为 1..38),从而避免出现 Rave 无限循环问题的情况。

其他提示

非常感谢肖恩 - 不幸的是这对我不起作用,但我想出了另一个解决方案......您会看到,我在该区域的顶部有一个备忘录,该备忘录可能会根据用户在数据库中留下的注释数量而扩展或收缩。这意味着一页上可以容纳的行数会有所不同。然而。还有另一种解决方案 - 您使用数据带的 MaxHeightLeft 属性。您要做的就是测量数据带的高度,将其乘以 2,然后将其放入 MaxHeightLeft 属性中。如果下一页已满,这将强制将 1 或 2 条记录移至下一页。

非常感谢,这个线程帮助我解决了 Nevrona Rave 中无限打印循环的问题......,我将 MinHeightLeft 设置为 0,500,这个设置是有效的,但我不确定它是否适用于我的其他结果集查询报告。

Master,该解决方案是Minheightleft到0,500,我在True中使用属性废物贴面积,并在第二个打印中生成循环,但是当将属性更改为0,500时,误差失败了。

谢谢 !

Atte Fabiola Herrera。Fabi_ucv@hotmail.com

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top