嵌套报表(子报表)
# 嵌套报表(子报表)
# 1. 说明
有时需要非常复杂的报表,其中包含在设计中的特定点插入的附加数据内容。虽然其中许多报表可以使用FastReport段的排列进行设计,但有时它会变得太复杂。在这些情况下,有必要使用“子报表”对象。
当“子报表”对象插入到设计中时,FastReport会自动添加一个新页面,该页面连接到“子报表”。这样的嵌套报表在设计结构方面类似于多页报表。唯一的区别是嵌套报表显示在基本设计页面上的特定位置,而不是在它之后。输出此报表时,只要遇到“子报表”对象,报表引擎就会完整地输出连接的子报表页面。之后,输出继续进行基本设计页面的其余部分。
可以将更多“子报表”对象插入子报表设计页面,从而增加嵌套深度。值得注意的是,FastReport使用子报表的能力可以实现深度嵌套数据。请记住,当使用明细数据段而不是子报表对象时,FastReport中的数据级别数仅限于6。
# 2. 并排的子报表
两个或多个“子报表”对象可以并排放置在同一数据段上:
此设计允许报表中每个“子报表”的数据输出具有不同长度的行或记录,或不同的高度或拉伸程度:
如图所示,FastReport仅在最长的子报表完成后才继续输出基本设计页面。 Vertical Alignment
属性还可用于调整每个子报表中的文本对象对齐。
# 3. 使用子报表的限制
由于子报表放在基本设计页面上,因此它们不能包含以下任何段 :报表(报告)标题、报表(报告)摘要、页首、页尾、页背景或列首、列尾。如果这些段中的任何一个放置在嵌套报表页面上,则无法识别它们。出于同样的原因,更改任何嵌套的报表页面选项没有意义,因为基本报表页面的选项会覆盖任何嵌套页面的选项。
不要在子报表的对象下面放置对象。
如果这样做,那么在子报表中创建的对象将覆盖主设计页面上子报表对象下面的所有内容,输出将如下所示:
要在嵌套报表下方或之后显示对象,请使用子段:
当多个子报表必须一个放在另一个之下时,也会使用此方法。为每个子报表使用子段并将它们链接在一起,将Child1的子属性设置为Child2,依此类推。
# 4. PrintOnParent选项
子报表对象具有PrintOnParent
属性,有时可能很有用。默认情况下,此属性为False。
通常,子报表在基本报表页面上作为一组段输出。如果是这样,包含子报表对象的父段的高度不受子报表中的段控制,即它不能被拉伸。如果子对象检查器或上下文菜单中的子报表PrintOnParent
属性设置为True,则子报表中的对象将物理打印在包含子报表对象的段上。这个段子可以拉伸,并可以放置拉伸的物体