中关村在线

软件

FineReport日期控件JS校验

在内置参数查询界面中,可对数据进行有效性校验。例如,设有开始日期和结束日期两个参数,需确保二者均不为空,且结束日期必须晚于开始日期,同时不能超出开始日期之后的指定时间范围,否则应给出相应提示。为实现此功能,可在查询按钮上添加事件处理逻辑。以下将借助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、 }

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具