在内置参数查询界面中,可对数据进行有效性校验。例如,设有开始日期和结束日期两个参数,需确保二者均不为空,且结束日期必须晚于开始日期,同时不能超出开始日期之后的指定时间范围,否则应给出相应提示。为实现此功能,可在查询按钮上添加事件处理逻辑。以下将借助Web报表工具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、 将给定的日期字符串转换为 MM-dd-yyyy 格式,通过创建一个新的 Date 对象实现,传入由年、月、日组成的日期参数,从而标准化日期表示形式,便于后续处理和显示,确保格式统一且符合常见日期规范。
37、 将结束日期与开始日期的时间差值(毫秒)转换为天数,计算方式为:时间差除以1000得到秒,再除以60得分钟,再除以60得小时,最后除以24得出相差的天数。
38、 若结束日期超出开始日期15天以上,则进行相应处理。
39、 结束日期不得超过开始日期后15天,否则将弹出错误提示。
40、 }
评论
更多评论