在内置参数查询界面中,可对数据进行有效性校验。例如针对开始日期和结束日期两个参数,需确保二者均不为空,且结束日期必须晚于开始日期,同时还应限制在开始日期之后的特定时间范围内,否则弹出相应提示。该逻辑可通过在查询按钮上绑定事件实现。以下将以FineReport电子表格为例,详细介绍具体配置步骤与操作方法。
1、 效果所示:
2、 详见效果图中的报错提示。
3、 启用模板
4、 打开位于 %FR_HOME%WebReportWEB-INFreportletsdocParameterTimeScale 路径下的 TimeScale.cpt 模板文件。
5、 参数设置界面所示
6、 新增事件
7、 为查询按钮添加点击事件,具体JavaScript代码如下所示。
8、 若开始日期为空或未赋值,则进行相应处理。
9、 开始时间不能为空,请输入有效日期后重试。
10、 };
11、 若结束日期为空或未填写,则进行相应处理。
12、 结束时间不能为空,请填写完整信息后再提交。
13、 };
14、 判断起始日期是否晚于截止日期
15、 开始时间不能晚于结束时间,请检查后重新输入。
16、 }
17、 将起始日期字符串转换为Date对象,以便进行日期相关的操作和计算。
18、 将结束时间字符串转换为日期对象,便于后续的时间计算与处理操作。
19、 将结束日期与开始日期的毫秒差值转换为天数,通过除以每日的毫秒数(1000×60×60×24)实现。
20、 若结束日期超出开始日期15天以上,则执行相应操作。
21、 结束日期不能超过开始日期15天,否则将提示错误并终止操作。
22、 }
23、 尽管参数控件支持校验设置,但需点击控件后才触发,因此参数界面的必填项及比较校验应统一在查询按钮中进行处理。
24、 查看效果
25、 选择起止时间,若间隔超过15天,系统将弹出提示框进行分页预览模板操作。
26、 上述JavaScript代码在火狐、谷歌及IE9等现代浏览器中运行正常,但在IE8及更早版本中无法正确弹出计算两个日期差值的提示框。需替换为兼容性更好的代码以确保功能正常运行。
27、 若开始日期为空或未赋值,则执行相应处理操作。
28、 开始时间不能为空,请输入有效日期后重试。
29、 };
30、 若结束日期为空或未填写,则进行相应处理。
31、 结束时间不能为空,请填写完整信息后再提交。
32、 };
33、 判断起始日期是否晚于截止日期。
34、 开始时间不能晚于结束时间,请检查后重新输入。
35、 }
36、 将给定的日期字符串转换为月-日-年格式,通过创建一个新的Date对象实现,传入拼接后的年、月、日部分,确保日期以MM-dd-yyyy的形式正确解析和显示。
37、 将结束日期与开始日期的时间差值从毫秒转换为天数,计算公式为:(结束时间 - 开始时间) ÷ 1000 ÷ 60 ÷ 60 ÷ 24。
38、 若结束日期超出开始日期15天以上,则执行相应操作。
39、 结束日期不能超过开始日期15天,请重新选择日期范围。
40、 }
评论
更多评论