2016-04-08 43 views
0

我在我的应用程序中使用了ActiveReports。它是一个包含100多页的连续报告。该报告也有SubReports。它包含文本和少量图像。活动报告图片拆分

现在当生成报告时,主报告中的图像被分成两部分并显示出来。例如,如果页面5有一个图像分裂,前半部分显示在第5页,后半部分显示在第6页。

经过几次搜索,我发现插入page break帮助。但我如何找到report正在结束其页面,它有image,所以我应该需要插入一个page break?还是有更好的解决方案?

​​

回答

0

设置部分KeepTogether属性为true的ActiveReports将确保部分保持在一起,跨页不分裂。希望这可以帮助。

+0

该部分有许多面板,如果整个部分不合适,则使属性为true跳过。我只需要图像面板来检查是否合适。 – iamCR

+0

任何其他方式来实现? – iamCR

0

一些搜索后,我找到了答案,从here

整合将q & A型,

2的方式来实现这一目标,

没有KeepTogether财产的控制。指定将它们保持在一起的唯一方法是将控件放在段的“保持在一起”属性设置为true的段中。在这种情况下,该解决方案将无法工作。

1.其中一种方法是,在控件的上方有一个PageBreak控件,并且您必须动态计算您在页面上的位置。然后,您可以使用MeasureParagraphHeight方法来查看控件呈现文本所需的高度,并且如果PageBreak的启用属性不适合页面,则将其设置为true。在这种方法中,您还需要考虑您的保证金高度。

如果有SubReports,不幸的是SubReports并不总是遵循KeepTogether规则。除非绝对必要,否则子报表实际上应该被避免,因为您正在运行额外报告&,这会增加开销。

2.在这种情况下,我实际上会使用另一个groupheader节datafield属性设置为重复每一行数据。然后将详细部分中的现有控件移动到内部GroupHeader。控件仍将显示一行数据。然后可以使用该部分的KeepTogether属性集将控件隔离在它自己的部分中。

我已经使用第二种方法来实现我的工作。