在内置参数查询界面中,系统支持对输入数据进行有效性验证。例如,针对“开始日期”和“结束日期”两个关键参数,需确保两者均非空值,且结束日期必须严格大于开始日期;此外,还需限定结束日期不得超出开始日期指定天数(如15天)的范围,否则将触发错误提示。该校验逻辑可通过为查询按钮绑定javascript事件来实现。以下以finereport电子表格工具为例,详细说明具体配置流程与操作要点。
1、 实际运行效果如下所示:
2、 具体报错提示参见下图所示效果。

3、 启动模板编辑环境
4、 定位并打开位于 %FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\TimeScale 目录下的 TimeScale.cpt 模板文件。
5、 参数配置面板界面如下图所示:

6、 添加交互事件
7、 为查询按钮配置点击事件,对应JavaScript脚本如下:
8、 若起始时间字段为空或未设置有效值,则执行相应校验分支。
9、 “开始时间不能为空,请输入合法日期后重试。”
10、 };
11、 若终止时间字段为空或未填写,则进入对应处理逻辑。
12、 “结束时间不能为空,请完善信息后再提交。”
13、 };
14、 对比起止时间,判断是否出现起始时间晚于截止时间的情况。
15、 “开始时间不可晚于结束时间,请核对后重新输入。”
16、 }
17、 将起始日期字符串解析为标准Date对象,便于后续时间运算与比较。
18、 将截止日期字符串转换为Date类型对象,以支持精确的时间差计算。
19、 计算结束日期与开始日期之间的毫秒级差值,并将其换算为自然日数:差值 ÷ (1000 × 60 × 60 × 24)。
20、 若二者间隔超过15个自然日,则触发限制逻辑。
21、 “结束日期不得超过开始日期15天,请调整日期范围后重试。”
22、 }
23、 虽然参数控件本身具备基础校验能力,但其仅在用户主动点击控件时才生效,因此建议将所有必填项检查及跨字段逻辑校验统一集中在查询按钮的点击事件中完成。
24、 预览最终效果
25、 在界面上选择任意起止时间区间,若跨度超过15天,系统将自动弹出提示框,并阻止分页预览模板的加载。
26、 上述JavaScript代码已在Firefox、Chrome以及IE9及以上版本浏览器中完成兼容性测试,运行稳定;但在IE8及更低版本中存在日期差值提示异常的问题,需替换为兼容性更强的写法以保障功能完整性。
27、 若起始时间字段为空或未初始化,则启动对应容错机制。
28、 “开始时间不能为空,请输入有效日期后重试。”
29、 };
30、 若截止时间字段为空或未填写,则进入对应校验路径。
31、 “结束时间不能为空,请完整填写后再提交。”
32、 };
33、 核查起始时间是否大于截止时间。
34、 “开始时间不可晚于结束时间,请检查后重新输入。”
35、 }
36、 将原始日期字符串按“月-日-年”格式重构,通过新建Date对象并传入标准化的年、月、日参数,确保日期能被正确识别与渲染(MM-dd-yyyy格式)。
37、 将起止时间的时间戳差值由毫秒单位转换为天数单位,计算方式为:(endTime - startTime) / 1000 / 60 / 60 / 24。
38、 若截止时间超出起始时间15天以上,则执行拦截操作。
39、 “结束日期不能超过开始日期15天,请重新选择合理的时间范围。”
40、 }











