Web报表工具JS开发之日期校验

在报表开发过程中,我们常常需要对查询界面进行日期校验。例如有两个参数:开始日期和结束日期,我们要校验的是:开始日期与结束日期不能为空,结束日期必须在开始日期之后以及结束日期必须在开始日期后的某个时间段内,否则提示相关信息,对此可以在查询按钮中增加事件。下面我们通过FineReport来介绍下具体的设置。

具体效果图如下:

可以看出会报出如下错误。

模板的设计工作这边就不重点讲了,设定好如下的模板界面:

给查询按钮增加点击事件,具体的JS代码如下:

var start =this.options.form.getWidgetByName("starttime").getValue();  
var end =this.options.form.getWidgetByName("endtime").getValue();  
if( start == ""|| start==null){  //判断开始日期是否为空
  alert("错误,开始时间不能为空");   //开始日期参数为空时提示
  return false; 
};  
if(end == "" ||end==null){  //判断结束日期是否为空
  alert("错误,结束时间不能为空");   //结束日期参数为空时提示
  return false; 
};  
if( start > end){   //判断开始日期是否大于结束日期
  alert("错误,开始时间不能大于结束时间");   //开始日期大于结束日期时提示  
  return false; 
}
var startdate = newDate(start);   //将开始日期转化为Date型
var enddate = newDate(end);    //将结束日期转化成Date型
var subdate =(enddate-startdate)/ (1000 *60 *60 *24);  //将两个日期相减得出的毫秒数转化为天数
if(subdate>15){    //判断结束日期是否超过开始日期后15天
alert("错误,结束日期必须在开始日期15天之内");    //结束日期超过开始日期后的十五天时提示
return false;
}

虽然在参数控件中也可以设置校验,但是参数控件要点击控件后才能进行校验,因此参数界面的不能为空以及比较校验需要在查询按钮中设置,所以倒不如全放在查询按钮中进行校验。

设置完查看模板,选择开始时间和结束时间,使这两个日期之间相差超过15天,就会弹出上述对话框。

因为FineReport的报表界面是在前段展示,我特地把各种浏览器试了个遍。刚刚上述的js代码在火狐,谷歌IE9等浏览器下没有问题,但是在IE8以及IE8以下的IE浏览器版本中,判断两个日期之间的差值的警告框则不会起作用。可以换用以下代码:

var start =this.options.form.getWidgetByName("starttime").getValue();    
var end =this.options.form.getWidgetByName("endtime").getValue();    
if( start == ""|| start==null){  //判断开始日期是否为空  
  alert("错误,开始时间不能为空");   //开始日期参数为空时提示  
  return false;    
};    
if(end == "" ||end==null){  //判断结束日期是否为空  
  alert("错误,结束时间不能为空");   //结束日期参数为空时提示  
  return false;    
};    
if( start > end){   //判断开始日期是否大于结束日期  
  alert("错误,开始时间不能大于结束时间");   //开始日期大于结束日期时提示    
  return false;    
}  
var aDate  = start.split("-")  
var startdate =  new Date(aDate[1]  +  ‘-‘  +  aDate[2] +  ‘-‘  + aDate[0])    //转换为MM-dd-yyyy格式  
alert(startdate);
var aDate  = end.split("-")  
var enddate  = new  Date(aDate[1]  +  ‘-‘  + aDate[2]  +  ‘-‘ +  aDate[0])  
alert(enddate);
var subdate=  ((enddate -  startdate)  /1000/ 60/60/24)    //把相差的毫秒数转换为天数  
alert(subdate);
if(subdate>15){    //判断结束日期是否超过开始日期后15天  
alert("错误,结束日期必须在开始日期15天之内");    //结束日期超过开始日期后的十五天时提示  
return false;  
}
时间: 2024-12-29 11:22:20

Web报表工具JS开发之日期校验的相关文章

设计与开发一款简单易用的Web报表工具(支持常用关系数据及hadoop、hbase等)

EasyReport是一个简单易用的Web报表工具(支持Hadoop,HBase及各种关系型数据库),它的主要功能是把SQL语句查询出的行列结构转换成HTML表格(Table),并支持表格的跨行(RowSpan)与跨列(ColSpan).同时它还支持报表Excel导出.图表显示及固定表头与左边列的功能.总体架构如下图所示: 目录 开发环境(Development Environment) 安装与部署(Installation & Deployment) 从源代码安装(From Source Co

web报表工具FineReport最经常用到部分函数详解

之前分别列出来了finereport常用的文本.时间函数的解释,这里应广大朋友的要求,整理了finereport最常用到的一些函数! SUM SUM(number1,number2,-):求一个指定单元格区域中所有数字之和. Number1,number2,-:1到30个参数或指定单元格区域中所有数字. 备注: 函数将直接键入参数中的数值.逻辑值及文本表达式计算在内. 若参数是数组或引用,则只对数组或单元格引用的数值进行计算. 示例: SUM(70,80)等于150. SUM("70"

web报表工具Stimulsoft Reports.Web在mvc项目中使用

Stimulsoft Reports.Web,是一款可以直接在Web中编辑报表的报表工具 web项目技术框架mvc4+easyui+knockoutjs 1.在项目中添加引用 Stimulsoft.Base.dll, Stimulsoft.Report.dll, Stimulsoft.Report.Web.dll, Stimulsoft.Report.WebDesign.dll 2.定义模板文件:新建web窗体文件report.aspx 前台代码: <%@ Page Language="C

web 报表工具如何自适应

现在的报表用户已经不再将报表作为一个单纯的报表工具看待了,有时候也会当作页面工具来使用,这时为了页面显示工整美观,就需要报表能够自适应宽度.下面我们就基于润乾报表来讲一下是如何做到自适应展现报表. 产品:润乾报表 V2018 方法 1:使用自带的 matchReport.jsp 访问报表,这个页面通过 reportMatchSize 这个自适应 js 函数实现自适应功能. 1. 新建报表(过程不再详细说明) 将报表保存在安装目录的 report\web\webapps\demo\WEB-INF\

Web报表工具FineReport中JavaScript的使用

报表软件FineReport采用的是jQuery v1.9.2框架,jQuery是一个快速的,简洁的JavaScript库,能让用户更方便地处理HTML documents.events,实现动画效果,方便地为网站提供AJAX交互,并且它兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+).FineReport报表解析后最终成为一个html页面,因此可以使用JS对报表进行各种处理,可以选择使用jQuery框架的所有方法对报表进行操作.在此基础上,F

Web报表工具FineReport的JS API开发(二)

上次介绍FineReport的JS API中的第一类开发--FR,这次就来介绍一下FS和contentWindow类的开发. 1 FS FS是数据决策系统中的js接口,比如说FS.tabPane.addItem,先介绍几类操作: 1.1 FS.Trans.signOut() 退出决策平台系统 1.2 FS.tabPane._doCloseTab(FS.tabPane._getSelectedTab()) 关闭当前决策平台的标签 1.3 FS.tabPane.addItem({title:"bai

Web报表工具FineReport的JS API开发(一)

很多报表软件可以利用JS接口来实现更多更复杂的功能.以FineReport为例,开放了大量的JS API给用户,根据执行JS的主体不同可以将分为三大类:FR.FS和contentWindow. 在js语句中执行可以使用FR的方法或者属性,比如说FR.Msg.alert,FR中的方法比如引入finereport.js.FS的方法可以用于数据决策系统中的js接口,比如说FS.tabPane.addItem.而contentWindow是在web页面集成的时候,将F报表嵌入在iframe中,调用报表对

Web报表工具FineReport二次开发JS之字符串

在报表开发过程中,有些需求可能无法通过现有的功能来实现.须要开发者二次开发,以FineReport为例.能够使用网页脚本.API接口等进行深入的开发与控制. 考虑到JS脚本开发的使用较多.这里先先简介怎样用JS对字符串进行操作.比方怎样推断字符串是否为空,字符串的长度,替换.查找,截取,或者将字符串转换为其它类型等. 1. 字符串的长度 1.1 返回字符串长度 获取字符串长度.能够使用字符串对象的length属性. 比如: var txt= "Hello FR"; txt.length

Web报表工具FineReport的JS开发之字符串

在报表开发过程中,有些需求可能无法通过现有的功能来实现,需要开发人员二次开发,以FineReport为例,可以使用网页脚本.API接口等进行深入的开发与控制. 考虑到JS脚本开发的使用较多,这里先先简单介绍如何用JS对字符串进行操作,比如如何判断字符串是否为空,字符串的长度,替换,查找,截取,或者将字符串转换为其他类型等. 1. 字符串的长度 1.1 返回字符串长度 获取字符串长度,可以使用字符串对象的length属性.例如: var txt= "Hello FR";    txt.l