根据业务需求,常需在特定条件满足时,动态显示相应的查询选项。
1、 开启模板
2、 调整数据内容
3、 将数据查询语句调整为:从订单表中选取所有字段,条件始终成立(where 1=1),并根据报表类型动态追加筛选条件。若当前生成的是日报,则附加条件为订购日期的日期部分等于指定的日期值;若为月报,则进一步限定订购日期的月份等于给定的月份数值,同时年份等于指定的年份值;若为年报,则仅限制订购日期的年份与提供的年份一致。通过参数 type 判断报表类别,并结合变量 date、month 和 year 实现条件拼接,确保查询结果符合不同时间维度的统计需求。该写法利用字符串拼接方式动态构建 SQL 查询条件,适配多种报表场景的数据提取要求。
4、 将参数type的默认值设为日报,参数date的默认值设为字符串类型的2010-01-03。
5、 调整表格样式
6、 调整表样为以下格式:
7、 为A3设定形态及自定义数据,使实际值与显示值对应为:日报显示日期,月报显示年月,年报显示年份。
8、 在B3单元格输入公式:若类型为日报,则显示日期;若为月报,则显示年份加月份;否则仅显示年份。
9、 参数设置界面
10、 参数界面样式按如下要求设置。
11、 将参数type的控件设为下拉框,选择自定义数据字典,实际值和显示值均为日报、月报、年报。
12、 将参数year的控件设为下拉框,选择自定义数据字典,显示和实际值均为2010与2011。
13、 将month参数的控件设为下拉框,选择数据字典公式,在实际值中输入=range(1,6)即可完成设置。
14、 将参数date的控件设为日期类型,返回值保持默认字符串格式。
15、 动态设置参数控件的JS事件
16、 为下拉框控件添加编辑后事件,具体JavaScript代码如下所示。
17、 点击type参数的下拉控件,在属性表底部选择事件面板,添加编辑后事件,具体JavaScript代码如下:
18、 获取当前参数值,即type参数的具体内容。
19、 若值为日报,则执行相应操作。
20、 若值为月报,则执行相应操作。
21、 若值为年报,则执行相应操作。
22、 }
23、 根据type参数的不同值进行判断:若为日报,仅显示日期选择控件;若为月报,显示年份和月份选择控件;若为年报,则仅显示年份选择控件。
24、 存模板
25、 点击分页预览,效果见上图。
评论
更多评论