表达式分组报表
教学视频
目标
自定义表达式分组要实现的报表效果如下图所示:
上图中,第一列为employee表的BIRTHDAY属性,对其进行格式化,只保留该属性的年份信息,从而根据这个年份对员工数据进行分组。
实现
1.构建基础报表
创建一个包含employee表的数据集,报表中保留两行三列,并在各单元格中绑定employee数据集的相关字段,如下图:
保存预览,可以看到一个普通的列表型报表,如下图:
接下来就需要对第一列数据进行格式化,只取日期的年份部分,根据这个年份来进行分组。
2.格式化日期
选择A2单元格,右侧属性面板中数据聚合方式选择表达式分组,在出现的表达式编辑器中输入:formatDate(#,"yyyy"),如下图所示:
formatDate是报表提供的一个针对日期类型进行格式化的标准函数,它可以接受两个参数,第一个参数为要格式化的日期对象,第二个参数为格式化时采用的模式(pattern)。
表达式formatDate(#,"yyyy")就表示对当前单元格的值(#表示当前表达式所在单元格的运行时的具体值),进行日期格式化,返回一个符合yyyy模式的字符串,这里的yyyy是一种格式化日期的模式,表示返回日期中的年份部分。
BaskReport中的formatDate函数格式化日期时支持的模式与Java中格式化日期时支持的模式完全相同,常用的格式化日期模式有:yyyy-MM-dd、yyyy年MM月dd日、yyyy/MM/dd、yyyy-MM-dd HH:mm:ss、yyyy年MM月dd日 HH:mm:ss等。
保存预览即可以看到第一列分组已按钮出生日期的年份部分进行分组。