目录

多片扩展

报表示例

通过本示例,了解如何通过人为改变单元格的主格实现报表的多片扩展。

制作如下图所示的多片扩展报表:

报表特点:

报表中的第一个数据集ds1是从产品自带演示数据库的“演示_订单表”取数,数据集sql语法如下:

报表中的第二个数据集ds2是从产品自带演示数据库的“演示_订单明细表”取数,数据集sql语法如下:

制作方法

先绘制出报表的基本结构:

设置主表部分的单元格表达式,选择单元格快捷公式中的“列表”,将数据集ds1中的字段“订单ID”拖入B2单元格,然后再选择快捷公式中的“取值”,将数据集ds1中的其余字段分别拖入主表其它对应的单元格中,例如拖入字段“发货日期”到D2,拖入字段“客户ID”到B4:

接着设置子表部分的单元格表达式:

最后,设置单元格A1、A2、A3、A4、A5、A6、A7、A8、A9、A10跟随B2向下扩展,即它们的左主格为B2:

还可以进一步设置单元格D2、F2的显示格式为“yyyy年MM月dd日”,让日期数据按照设定格式展示。

详细了解单元格公式向导的使用,请参考:单元格向导

功能点说明

主格认定规则与人为设置主格

当存在单元格扩展时,就涉及主子格的关系,主格的认定规则默认如下:

除了遵循默认的主格认定规则,我们也可以人为的设置改变单元格的主格,从而实现灵活的报表扩展方式。例如上面的示例报表中,A1-A10一共十个单元格左边都没有纵向扩展个,因此其左主格缺省为`0 格。然后我们对这些单元格人为设置了左主格为B2,让这些格子都跟随B2格的订单ID进行纵向扩展,所以就形成了按照每个订单ID号都能扩展出一片主子表的报表效果,最终形成了示例中的多片扩展。

如何详细了解关于主格的更多内容并在报表中灵活运用,请参考:主格

Select()

B9单元格的表达式为:=ds2.Select(产品ID,false,订单ID==B2)

这里是利用Select()函数可以设置数据过滤条件表达式,来实现子表区域B9单元格数据与主表区域B2单元格数据之间的关联,即B9单元格只列表显示B2订单所销售的产品ID。如果不设置上面的“订单ID==B2”条件表达式,则B9单元格会显示出全部订单所销售的产品ID,无法实现主子表之间数据的关联运算。读者可以尝试去掉表达式中第三个参数(即条件表达式,注意连同前面的逗号也一起去掉),来看一下报表展现的结果会如何。

如果要在报表中灵活运用Select()函数,对其进行详细了解,请参考:Select()