一、父子格
- 掌握父子格的概念; 学会制作分组报表和自由报表
1. 应用场景
-
父子格是跟单元格扩展息息相关的概念,单元格的扩展是针对具体的某一个单元格,当报表主体中绑定了多个单元格时,这些单元格在扩展时是存在联系的。
-
以「地区」和「销售员」这两个字段为例,这两个字段之间存在层级关系,每个地区下面会有多个不同的销售员。 我们希望这两个字段在单元格扩展时,能够表现出他们之间的层级关系,也就是让这两个字段的数据能够分组展示。因此,采用父子格的方式来实现。
-
下图为对应的效果。图标中「地区」字段为父格,「销售员」字段为子格。
2. 功能介绍
- 选中单元格后,单元格的父格会有「蓝色箭头」
FineReport 支持两种类型的父子格设置。
-
左父格:单元格之间存在纵向扩展的关系时,设置左父格。
-
上父格:单元格之间存在横向扩展的关系时,设置上父格。
3. 示例
在设计器中设置子格的左父格或上父格时,下拉框有三种设置项:「无」,「默认」,「自定义」。
下面以单元格纵向扩展时设置左父格为例,详细实现三种方式的效果。
3.1 【无】
-
「无」就是不设置单元格的父格,该单元格扩展时不考虑单元格之间的分组关系。
-
选中B2单元格,右边属性面板选择「单元格属性>扩展」,扩展方向采用默认设置「纵向扩展」,左父格设置为「无」。
-
实现效果:
3.2 默认
- 当单元格左侧或上方相邻的单元格具有扩展属性时,单元格默认其左侧相邻单元格为其左父格,默认上方相邻的单元格为其上父格。
注1:必须是相邻的同行或者同列单元格,不是相邻的需要自定义设置。
注2:其单元格的左侧相邻单元格不具有扩展属性时,会依次向左或向上寻找具有扩展属性的单元格,来确定它的父格。
- 实现:选中B2单元格,右边属性面板选择「单元格属性>扩展」,扩展方向采用默认设置「纵向扩展」,左父格设置为默认。 由于 B2 左侧单元格 A2 是纵向扩展的,因而 B2 单元格默认的左父格为A2。
- 实现效果
3.3 自定义
-
单元格之间存在扩展关系,但是它们不相邻无法使用默认设置时,通过「自定义」来设置它们之间的父子格关系。
-
实现:A2 单元格和 B3 单元格不相邻,但是它们之间仍然存在纵向扩展的层级关系。 选中 B3 单元格,右边属性面板选择「单元格属性>扩展」,扩展方向采用默认设置「纵向扩展」,左父格自定义为 A2 单元格。
-
实现效果:
3.4 最父格
-
最父格严格来说要分为「最左父格」和「最上父格」,前者是纵向扩展的概念,后者是横向扩展的概念。
-
例如:有张纵向扩展的明细表,其中 A2 的左父格为 B2 ,C2 的左父格为 A2 ,此时 B2 就是一个最父格,且是最左父格。B2->A2->C2。
-
表格预览效果如下:
-
最父格的特点:
- 存在跟随其扩展的子单元格,也就是有单元格以它为父格。
- 最父格自身是没有父格的,所以其扩展不受其他单元格影响。