示例模板如下图所示:
在上图中,以矩形边框表示的部分是来源于子表的明细数据,其它部分来源于父表。也就是说,这样的报表格式相当于在父表的细节区中嵌套了一个子表的细节区。既然做了嵌套,那么父表的细节区就会有多行,所以分别在父表的细节区首尾处各指定了表名“<产品>”。为了让输出不同的产品明细时可以自动换页,在设置父表的第一个标记时指定数量为1。
输出的Excel报表如下图:
由此可见,第3页及之前的报表都是“三合一麦片”的订单明细,之后的都是“浓缩咖啡”的订单明细。当第一个产品输出完毕时,会自动换页。如果你希望在输出不同的产品订单明细时也能同时输出标题,只需给嵌套的明细区再指定数量即可。例如,每页输出8条明细记录,同时打印标题:
报表输出效果如下图:
由于这里涉及到明细区嵌套,设置起来相对比较复杂一点。以下几点请特别注意:
第一,有效区域的右侧标记“<End>”不能和细节区的表标记处于同一行,因此,当你既需要使用有效区域标记、又需要使用多行细节区时,必须将第一行作为有效区域的专用行。如果你觉得这样做浪费了一行的打印空间,可以将该行隐藏或调低其高度。
第二,嵌套的细节区不能再另外设置输出条件,其具体的打印内容由父表决定。比如,如下设置不仅无效,而且还会导致错误:
第三,上述模板使用了关联表数据统计标记“[%订单,Sum(数量)]”,请注意这里的表名前面使用的是“%”符号,而不是“#”和“$”,后面两种符号分别表示的截止统计和直接统计,不要混淆了。和直接统计一样,关联表统计也可以使用第三个参数,用于设置统计条件。其格式为“[%表名,统计表达式,统计条件]”。
第四,Excel报表中可以同时嵌入多个关联表细节区。假定表A同时和表B和表C建立了关联,在设计报表的时候,可以在表A的细节区中,同时嵌入表B和表C的细节区:
关联表的细节区,同样可以包括多行。如下图中的表C,其细节区就有4行: