Posted on 2010-11-10 19:03
FineReport——报表技术领跑者 阅读(274)
评论(0) 编辑 收藏 所属分类:
Java报表技术知识
内置参数查询界面当中可进行一些数据校验,以FineReport报表软件为例,有两个参数:开始时间和结束时间,结束时间必须在开始时间之后,否则进行提示。
完成这个工作可以有两种实现方法,一种是在提交按钮的事件编辑中写js代码,另一种则是在参数控件的事件编辑中写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之前,校验如下图所示:
文章转自:http://blog.vsharing.com/fanfanzheng/A1270853.html