规定当子报表进行运算时,从展现布局上看,子报表始终缩在当前格内,或者仅仅把当前格撑大,并不对当前格周边的格子造成影响,这种报表称为嵌入式子报表。 # 报表特点 嵌入式子报表的特点是在单元格中嵌入独立的报表模板,形成格中嵌表的模式,嵌入的模板称为子报表,嵌入子报表后的整体称为主报表。子报表和主报表的格线可以不对齐,子表间格线也可以不对齐,主报表可以访问子报表的值。子报表在展现、导出和打印时为图片。 # 报表实例1 ## 预期效果 制作主报表“客户订单统计表”,嵌入子报表“订单明细”。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_60476b9406bb51ab82a803b2770e2d4f_r.png) ## 制作方法 ### 制作主报表 #### 第一步 定义数据集 子报表中的数据集“订单明细”是从产品自带演示数据库的“演示 _ 客户表”取数,数据集sql语法如下: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_6ab5802bd8f3c9e958e4bf8fa2cee6cb_r.png) #### 第二步 制作表样 绘制出报表基本结构: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_3dbd927e1ca4e97cca585ba87b4c677f_r.png) #### 第三步 定义单元格表达式 设置A3单元格表达式为:`=客户订单.Select(客户ID,false)` #### 第四步 设置显示值 选中A3单元格,在报表属性栏的【显示值】中设置表达式:`客户订单.select1(联系人,客户ID==value())` ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_10b89792749a15e7f06ff65e0e47e3aa_r.png) #### 第五步 设置行类型 设置表头,实现冻结表头的效果。具体操作如下: 选中第一行,在右侧【行属性】里,将【行类型】设置为头标题。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_31bd268075fa614bb20dc15e80e33a6a_r.png) 选中第二行,将【行类型】设置为报表头。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_6c8bc3fd6aaa97bdc34fd45355bbb46b_r.png) #### 第六步 保存 点击【保存】按钮,再弹出的保存页面设置资源名称、文件名称均为“客户订单统计表”。 ### 制作子报表 #### 第一步 定义数据集 子报表中的数据集“订单明细”是从产品自带演示数据库的“演示 _ 订单表”取数,数据集sql语法如下: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_fcad264154799685747003674e7e9c01_r.png) #### 第二步 制作表样 绘制出报表基本结构: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_6ca8b92bbf28aa3236561ce5f5c4a1ec_r.png) #### 第三步 添加参数 点击菜单栏中的【编辑】--【参数和宏】,打开参数设置页面,点击【添加】按钮添加参数,并修参数名为 guestID 。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_b430cd250008d5f68845f03a2cc09dba_r.png) #### 第四步 定义单元格表达式 设置取数表达式: B1:`=订单明细.group(year(订购日期),false,客户ID==@guestID)` B2:`=订单明细.group(month(订购日期),false)` B3:`=订单明细.count()` ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_1476ca8e9cdd3234a0986fe5d79714b5_r.png) #### 第五步 设置扩展方式 选中B1单元格,设置扩展方向为“横向扩展”。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_4c9cda75d777421603628b1d58c363a6_r.png) #### 第六步 设置显示值 选中B1单元格,设置【显示值】,如下图: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_be8d480b39002079805b034cb44d3700_r.png) 选中B2单元格,设置【显示值】,如下图: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_5c3125b5f4a9e9023b32a5e46692fc06_r.png) #### 第七步 保存 点击【保存】按钮,再弹出的保存页面设置资源名称、文件名称均为“订单明细表”。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_98bac56b4c4d6eca74a6db7e44513f59_r.png) ### 添加子报表 #### 第一步 打开主报表 打开主报表“客户订单统计表”,进入主报表设计界面。 #### 第二步 插入子报表 选中B3单元格,点击菜单栏【插入】-【子报表】,将“引入方式”设为“嵌入式”,“路径”选择子报表“订单明细表”。然后点击参数定义后的【添加】按钮添加参数,对应值表达式为:=A3,设置完成点【确定】按钮。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_df22251c11ec069539748667201b7ef3_r.png) ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_759585791ad36ce52c9b0da4839a6425_r.png) #### 第三步 保存预览 点击【预览】按钮,保存并预览报表。预览截图如下图: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_1ca78605f1abc0219027df414e22ba89_r.png) # 报表实例2 对于嵌入式子报表,主报表里可以获得子报表特定单元格的值,办法是通过调用eval函数来实现。下面我们在上面嵌入式主子报表的基础上,讲解如何在主表中引用子表特定单元格的值。 ## 预期效果 制作如下图所示的“客户订单统计表2”。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_1316b30fbd3a3d50d1b8a372aebacdbb_r.png) ## 制作方法 ### 1.打开并修改子报表 #### 第一步 打开报表 在“资源中心”界面将“订单明细表”【另存为】“订单明细表2”,点【修改】打开报表。 #### 第二步 调整报表格式 在A4单元格中输入“订单合计”,设置B4单元格的表达式:`=sum(B3{})`。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_7dc1a989637f3df2e5ee4a804443fcbb_r.png) #### 第三步 设置B4上主格 选中B4单元格,展开报表属性栏中的【扩展】,把B4的上主格设为 `0,这样可以使B4单元格汇总的,是B1扩展出来的所有年份的订单合计。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_ddb8437ac78bac2d4365a61a6a9b2be1_r.png) #### 第四步 设置第4行不可视 选中第4行,将第4行的可视属性的打勾去掉,这样预览时就不会显示第4行了。将第4行设为不可视,而不是删除,是因为主报表将引用B4单元格的值。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_79f129a5bba2129f16e099ee8b36b6ed_r.png) #### 第五步 保存 保存“订单明细表2”。 ### 2.打开并修改主报表 #### 第一步 打开报表 在“资源中心”界面将“客户订单统计表”【另存为】“客户订单统计表2”,点【修改】打开报表。 #### 第二步 调整报表格式 调整报表结构,如下图所示: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_a8f9820497bcf80a95f8e6a3c5f42f6e_r.png) #### 第三步 插入子报表 在B3单元格重新插入子报表“订单明细表2”。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_485757643bd47d3419d4b6dc818a1dc1_r.png) #### 第四步 设置C4单元格表达式 设置C4单元格中的表达式:`=eval("B4",B3)` >C4单元格表达式的含义是: B3为嵌入式子报表,取得B3中的子报表中B4的值,这样就相当于主报表引用子报表的数据值并汇总。 #### 第五步 保存预览 点击【预览】按钮,保存并预览报表,预览页面如下图所示: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_1ecd83a7e25a03a474bc9df3db98e9e7_r.png)