fastreport 初级教程之嵌套报表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fastreport初级教程之嵌套报表
嵌套报表
有时一些复杂的报表结构中,需要报表的特殊位置显示特殊的数据。通过FastReport的Band可以创建这些报表。创建子报表可以使用“子报表组件”。
插入这种组件后,就会在设计器中添加一个新的页面,它连接着这个子报表组件。镶嵌式报表就像一系列的多页报表系统。唯一不同的就是嵌套报表显示在基础报表中特殊的位置,而不是在他的后面。当输出报表时,当FastReport系统遇到“SubReport”组件,FastReport引擎,输出关联的设计页,然后输出报表的其他部分。
还可以在子报表窗面上添加子报表,增加嵌套层数。
注意:可以增加嵌套报表,但最多有6层数据。
5.2、设计子报表
你可以在同一Band上放置两个或更多的“SubReport”组件。
这样允许报表设计中,输出数据可以有不同的长度,不同的宽度,不同的高度。
如你所见,报表在输出全部子报表后,生成报表结构。子报表也可以使用各种对齐方法属性。
5.3、子报表中的限制
既然子表是主报表的一部分,他又不能在包含以下Band:“ReportTitle/ReportFooter”、“PageTitle/PageFooter/PageBackground,”和“ColumnTitle/ColumnFooter.”。把这些Band是可以放在主表单上,但是报表系统是不能对其进行处理。同理,嵌套表的选项设置一样不被理会,因为报表输出的时候,主要用到的是主表单的选项。
不能把组件放在“subreport”组件的下面。
当显示子报表的数据时,报表系统将用子报表的内容覆盖“subReport”组件下面的位置。打印可能会出现以下情况:
如果要在subreport下面显示数据,可以使用child-band。
在需要多个子报表的情况,这种方法一样适用,
5.4、PrintOnParent选项
“subreport”组件又一个属性“printonparent”属性,根据情况有需要。默认属性为false。
通常子表显示在主表的band上,父Band不依赖于子Band。不进行拉伸。如果“printonparent”属性设为true,则打印输出报表的子报表到主报表的包含有“subreport”组件的band上。你可以使Band可以随内容进行拉伸。
同为比较常用的报表工具,FineReport对嵌套类报表的解决方案与FastReport有所不同,由于工具本身的差异化,在实现报表嵌套功能时,FineReport的步骤更为简单。FineReport是用主子报表来实现嵌套功能,具体如下:
嵌入式主子表
1.描述
嵌入式主子报表特点是在单元格中嵌入独立的报表模板,嵌入的模板称为子报表,嵌入子报表后的整体称为主报表。
各子报表间格式可以不对齐,子表与主表的格式也可以不对齐,子报表能够获取主表中的值。如下图员工销售一览表:
2.示例
2.1制作主报表
如下图设计主表:
添加参数
在主表中定义一个报表参数,参数名为销售员,通过参数查询某一个销售员的个人信息及订单信息。
使用默认的参数界面,销售员参数控件选择下拉框,实际值为雇员表中的雇员ID,显示值为对应的姓名。具体可查看参数定义与参数面板制作章节。
2.2添加不同参数的子报表
子报表sub_1.cpt说明
子报表1:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Ma sterReport\sub_1.cpt。
该子表中通过参数“ID”查询出对应销售员的个人信息。SQL语句为:SELECT *FROM雇员where雇员ID=${ID},表样为:
在主表中插入子表1
右击主表B3单元格,单元格元素>插入子报表,弹出编辑子报表对话框,选择子表1所在路径;
添加参数ID(子表中的参数名称),值使用公式$销售员,将主表的销售员参数值传递给子表1的ID参数,如下图设置:
2.3添加相同参数的子报表
∙子报表sub_2.cpt说明
子报表2:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Ma sterReport\sub_2.cpt。
该子表中通过参数“销售员”查询出对应销售员的订单信息。SQL语句为:SELECT*FROM订单where雇员ID=${销售员},表样为:
∙在主表中插入子表2
右击主报表D5单元格,单元格元素>插入子报表,弹出编辑子报表对话框,选择子表2所在路径;
由于子表2的参数名与主表中的参数名相同,这时可以不设置传递参数,直接选择继承报表的参数。
3.保存与预览
保存模板,点击设计器中的分页预览,效果如上。