欢迎来到天天文库
浏览记录
ID:37860920
大小:666.09 KB
页数:8页
时间:2019-06-01
《fastreport 初级教程之嵌套报表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、fastreport初级教程之嵌套报表嵌套报表有时一些复杂的报表结构中,需要报表的特殊位置显示特殊的数据。通过FastReport的Band可以创建这些报表。创建子报表可以使用“子报表组件”。插入这种组件后,就会在设计器中添加一个新的页面,它连接着这个子报表组件。镶嵌式报表就像一系列的多页报表系统。唯一不同的就是嵌套报表显示在基础报表中特殊的位置,而不是在他的后面。当输出报表时,当FastReport系统遇到“SubReport”组件,FastReport引擎,输出关联的设计页,然后输出报表的其他部分。还可以在子报表窗面上添加子报表,增加嵌套层数。注意:可以增加嵌
2、套报表,但最多有6层数据。5.2、设计子报表你可以在同一Band上放置两个或更多的“SubReport”组件。这样允许报表设计中,输出数据可以有不同的长度,不同的宽度,不同的高度。如你所见,报表在输出全部子报表后,生成报表结构。子报表也可以使用各种对齐方法属性。5.3、子报表中的限制既然子表是主报表的一部分,他又不能在包含以下Band:“ReportTitle/ReportFooter”、“PageTitle/PageFooter/PageBackground,”和“ColumnTitle/ColumnFooter.”。把这些Band是可以放在主表单上,但是报表系
3、统是不能对其进行处理。同理,嵌套表的选项设置一样不被理会,因为报表输出的时候,主要用到的是主表单的选项。不能把组件放在“subreport”组件的下面。当显示子报表的数据时,报表系统将用子报表的内容覆盖“subReport”组件下面的位置。打印可能会出现以下情况:如果要在subreport下面显示数据,可以使用child-band。在需要多个子报表的情况,这种方法一样适用,5.4、PrintOnParent选项“subreport”组件又一个属性“printonparent”属性,根据情况有需要。默认属性为false。通常子表显示在主表的band上,父Band不依
4、赖于子Band。不进行拉伸。如果“printonparent”属性设为true,则打印输出报表的子报表到主报表的包含有“subreport”组件的band上。你可以使Band可以随内容进行拉伸。同为比较常用的报表工具,FineReport对嵌套类报表的解决方案与FastReport有所不同,由于工具本身的差异化,在实现报表嵌套功能时,FineReport的步骤更为简单。FineReport是用主子报表来实现嵌套功能,具体如下:嵌入式主子表1.描述嵌入式主子报表特点是在单元格中嵌入独立的报表模板,嵌入的模板称为子报表,嵌入子报表后的整体称为主报表。各子报表间格式可以
5、不对齐,子表与主表的格式也可以不对齐,子报表能够获取主表中的值。如下图员工销售一览表:2.示例2.1制作主报表如下图设计主表:添加参数在主表中定义一个报表参数,参数名为销售员,通过参数查询某一个销售员的个人信息及订单信息。使用默认的参数界面,销售员参数控件选择下拉框,实际值为雇员表中的雇员ID,显示值为对应的姓名。具体可查看参数定义与参数面板制作章节。2.2添加不同参数的子报表子报表sub_1.cpt说明子报表1:%FR_HOME%WebReportWEB-INFreportletsdocAdvancedMasterReportsub_1.cpt。
6、该子表中通过参数“ID”查询出对应销售员的个人信息。SQL语句为:SELECT*FROM雇员where雇员ID=${ID},表样为:在主表中插入子表1右击主表B3单元格,单元格元素>插入子报表,弹出编辑子报表对话框,选择子表1所在路径;添加参数ID(子表中的参数名称),值使用公式$销售员,将主表的销售员参数值传递给子表1的ID参数,如下图设置:2.3添加相同参数的子报表子报表sub_2.cpt说明子报表2:%FR_HOME%WebReportWEB-INFreportletsdocAdvancedMasterReportsub_2.cpt。该子表
7、中通过参数“销售员”查询出对应销售员的订单信息。SQL语句为:SELECT*FROM订单where雇员ID=${销售员},表样为:在主表中插入子表2右击主报表D5单元格,单元格元素>插入子报表,弹出编辑子报表对话框,选择子表2所在路径;由于子表2的参数名与主表中的参数名相同,这时可以不设置传递参数,直接选择继承报表的参数。3.保存与预览保存模板,点击设计器中的分页预览,效果如上。
此文档下载收益归作者所有