在 ActiveReports 中,可以固定报表每页显示的行数,当每页的数据不足固定的行数时,自动通过填补空白行来实现,当然这两种功能仅限于区域报表和页面报表中。
区域报表
在区域报表中,有很多方法来控制报表显示的行数
1. 在Detail 区域使用 RepeatToFill属性
如果有很多数据需要在多页中显示,设置Detail 区域的 RepeatToFill 属性为True,会在页面底部自动增加空行
注意: 以下因素可能会导致RepeatToFill属性失效
- 详细数据区域中发生分页或包含子报表控件
- NewPage或NewColumn属性设置为其他值而不是None
- 报表中包含多个分组; 报表中如果有多个分组的话,RepeatToFill会引起ReportFooter区域打印到下一页,而RepeatToFill只会在一个分组时生效。
2.在数据集中添加空行
当然这种方法可能只是解决了呈现问题,效果并不是期望的。
3. 使用FetchData 事件
在设计时绑定数据源的报表中,从数据源检索到数据记录时都会打到文件的末端(EOF),当报表生成完后,返回eArgs.EOF属性为True。这个时间点中,如果设置eArgs.EOF 为False 会允许用户在详细数据区域中导出任意数量的数据。
4. 在未绑定数据源报表中,使用代码实现。
在运行时绑定数据源的报表中,可以通过代码来为报表绑定数据集,所以可以实现实现自动填充空白的功能。
当修改FetchData事件中分组数据时,不需要移动数据,只需要在Fields集合中多次添加空白数据,来补充空白行。
5.使用Overlay方法
可以通过Overlay方法将报表中的某一页叠加到其他报表页的集合中。例如,先创建使用line 控件画出的报表轮廓的报表,报表中包含10行数据的页面;然后运行此报表并叠加到第二数据张报表的页,让数据行覆盖空行。
6. 使用LayoutAction 属性
通过修改LayoutAction值,不需要修改或移动记录就能渲染报表。
使用LayoutAction属性允许在报表的任何边界中输出空行。
页面报表
页面报表中,可以使用表格控件的阴影区域来控制每页的显示行数。
1. 设置 RepeatToFill 属性
通过设置表格控件的RepeatToFill属性为True来控制行数