fastreport 初级教程之嵌套报表

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.保存与预览

保存模板,点击设计器中的分页预览,效果如上。

相关文档
最新文档