主子报表是一种通过主表与子表结构展示层级化数据的特殊报表类型。其核心特征是将数据集划分为主表数据集与子表数据集,主表通常以自由格式展示汇总信息,子表则以列表形式呈现明细数据,形成一对多的关联关系。
上下文(Context)是 SpreadJS 报表中一个非常重要的概念。它会影响报表的布局,因为默认情况下,它会在所有上下文中过滤子单元格中的数据,并且所有子单元格都会随着上下文重复显示。单个单元格可以有两种上下文:
垂直上下文:在此情况下,单元格将左侧具有垂直溢出方向的单元格用作垂直上下文。
水平上下文:在此情况下,单元格将上方具有水平溢出方向的单元格用作水平上下文。
使用上下文功能可以更加遍历的创建主从报表,例如下面的场景,用户希望通过订单与订单明细之间的关系,创建一张主从报表,在显示订单列表的同时,显示每条订单的订单明细。在 SpreadJS 报表中只需要进行如下的操作:
构建报表的基本轮廓,在 SpreadJS 报表在接入数据源后,从左侧的数据源列表中拖入相应的字段,统计字段设置统计公式。
2. 对报表外观进行美化,设置背景色,边框,字体,合并单元格
3. 子订单信息的子表与主表订单表存在主子关系,需要设置上下文进行关联。设置后,生成报表时会按照主子关系进行生成。
4. 设置过滤条件,过滤掉子表没有内容的数据。
5. 点击预览查看效果





