河北省蛇类图片:FineReport报表工具内置JS的使用之四 (日期校验)

来源:百度文库 编辑:偶看新闻 时间:2020/10/26 00:21:56

在使用FineReport报表工具时,内置参数查询界面当中可进行一些数据校验,例如有两个参数:开始时间和结束时间,结束时间必须在开始时间之后,否则进行提示。

1.      在提交按钮的事件编辑中写JS代码

1.1 新建报表  

1.2 模板设计

按照下图设计模板

 

1.3 添加数据源

        新建一个名为ds1的数据库查询,SQL语句:_select* FROM EMPLOYEE

    1.4 绑定数据列

按照下表进行数据列绑定

双击B5单元格,在过滤页面当中,定义条件类型为单元格 ,添加条件: BIRTHDATE 大于或等于 $begintime AND BIRTHDATE 小于 $endtime

1.5 定义参数

打开菜单栏中报表|报表参数,新定义两个个名为begintime,endtime的参数,如图:

 

1.6 参数设计

l         打开参数设计界面,参数界面布局如下:

                    

l         日期控件设置

右击begintime的控件,选择控件设置,控件类型选择日期,控件名选择begintime,具体设置如下图所示:

endtime的控件同上

1.7 数据校验

右击查询按钮,选择控件设置,打开控件设置面板,添加点击事件,如下图所示:

        在function fun(){}函数中写入如下JS语句:

        var start = this.options.form.getWidgetByName("begintime").getValue();

      var end = this.options.form.getWidgetByName("endtime").getValue();

      if( start == ""){

          alert("错误,开始时间不能为空");

          return false;

};

      if(end == ""){

          alert("错误,结束时间不能为空");

      return false;

};

      if( start > end){

          alert("错误,开始时间不能大于结束时间");

          return false;

1.8 保存并预览

       begintime输入为空,如下图所示:

endtime输入为空,如下图所示:

输入的endtime在begintime之前,校验如下图所示:

2.      在参数控件的事件编辑中写JS代码

2.1 设计模板

具体操作同上。

2.2 数据校验

l         右击begintime的控件,选择控件设置,添加编辑后事件,如下图所示:

        在function fun(){}函数中写入如下JS语句:

        var start = this.options.form.getWidgetByName("begintime").getValue();

        if( start == ""){

            alert("错误,开始时间不能为空");

            return false;

        };

        说明:这段代码是为了验证begintime输入不能为空。

l         右击endtime的控件,选择控件设置,添加编辑后事件,如下图所示

        在function fun(){}函数中写入如下Js语句:

        var end = this.options.form.getWidgetByName("endtime").getValue();

        if(end == ""){

             alert("错误,结束时间不能为空");

        return false;

};

        if( start > end){

            alert("错误,开始时间不能大于结束时间");

        return false;

}

        说明:这段代码是为了校验endtime输入不能为空以及结束时间大于开始时间。

2.3 保存并预览

        效果与在提交按钮的事件编辑中写JS代码一样