客户在对数据库中数据做查询时,要根据一个时间段对时间过滤,数据库中日期存储的是时间格式,查询是可能精确到时分秒,这样就要求下拉日历格式为年月日时分秒格式,但是客户那边大多数操作时,要求查询时间是从00:0:00开始,结束时间默认为23:59:59,只有想选择时再选择自己想要的时间。
但是目前下拉日历如果格式选择年月日时分秒后,弹出的下拉日历默认取的是当前系统时间,也就是时分秒是默认时间,并不会是客户要求的使劲,客户想要实现的话需要手动再改一次,太过费事,希望希望自己按照他们的规则生成日历。
解决方法:报表中支持自定义控件,可以自己在网上找个下拉日历的控件加到报表中来,这个报表中有说明文档,本次主要介绍下如何基于报表自带的日历控件实现客户的需求。
报表自带的日历控件是写在一个js文件里,可以手动更改js文件内容,但是客户要求中有起始时间和结束时间,如果更改js的话会导致两个一样,无法满足需求。可以在外部通过js更改日历的属性,下边看下制作方法。
参数表单下拉日历单元格中,编辑风格改成自定义:
点击设置,在弹出窗口中写入如下代码:_runqianCalendar().type='date';_runqianCalendar().emptyAsNow=false;qishi(event),如图:
qishi(event),为点击该控件的弹出事件,在显示报表的jsp中增加该js函数即可:
function qishi(arg){
var obj = _runqianCalendar();
obj.thisHour="00";
obj.thisMinutes="00";
obj.thisSeconds="00";
_showCalendar(arg);
}
Obj对象为下拉日历对象,可以通过更改其属性值达到弹出下拉日历默认值效果,更改相应时分秒为”00:00:00”
同样的方法更改结束日期的下拉控件,调用jieshu()方法,如下代码:
functionjieshu(arg){
var obj = _runqianCalendar();
obj.thisHour="23";
obj.thisMinutes="59";
obj.thisSeconds="59";
_showCalendar(arg);
}
注意:润乾的下拉日历是写到js文件中,如果这么这么做的话,需要在显示报表的jsp中引入相应js,有一种简便办法,如果报表中用到下拉日历的话,系统会自动引用js,这样的话只需要在参数表单中找个空白单元格,里边编辑风格设置成下拉日历即可。这样就能实现客户的需求,如图,起始日期:
结束日期: