1. 概述
1.1 预期效果
两个必要控件,年份和月份,客户希望,在仅仅选择年份的时候,是按照月份进行汇总统计;同时选择年份和月份的时候,按照当前年月显示明细数据。实现效果如下图:
仅选择年份时:
同时选择年份和月份时:
1.2 实现思路
用年份和月份参数来控制行高。
2. 实现方案
2.1 新建数据集
添加三个数据查询,如下:
ds1:
SELECT 订购日期,strftime('%Y',订购日期) as 年,strftime('%m',订购日期) as 月 ,运货费,货主省份
FROM s订单
where 1=1
${if(len(a)=0,'',"and strftime('%Y',订购日期) in ('"+a+"')")}
${if(len(b)=0,'',"and strftime('%m',订购日期) in ('"+b+"')")}
order by 订购日期
ds2:作为年控件数据字典
SELECT strftime('%Y',订购日期) as 年
FROM s订单
ORDER BY 订购日期
ds3:作为月控件数据字典
SELECT strftime('%m',订购日期) as 月
FROM s订单
where 1=1
${if(len(a)=0,'',"and strftime('%Y',订购日期) in ('"+a+"')")}
order by 订购日期
2.2 模板设计
将字段拖入对应的单元格中,如下所示:
注:第二行按照月份进行展示,第三行按照日期进行展示
2.3 添加条件属性
给 B2 单元格添加条件属性
说明:下图中的 b 为 4.1 ds1 中设置的订购日期的参数控件名(表示月),ds1 中两个参数名字都为订购日期,但需要区分控件 a 表示年,控件 b 表示月。
注:表示当参数“月份”中有值时,该行(即第二行)行高设为 0,即隐藏该行,展示第三行。
给B3 单元格添加条件属性
注:表示当参数“月份”中没有值时,该行(即第三行)行高设为 0,即隐藏该行,展示第二行。
2.4 效果预览
1)PC 端
保存模板,选择分页预览,实现效果如描述中所示。
2)移动端
App 效果:
H5 效果:
3. 已完成模板
已完成的模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\日期汇总.cpt
点击下载模板:日期汇总.cpt