Posted on 2010-09-15 16:01 
FineReport——报表技术领跑者 阅读(117) 
评论(0)  编辑  收藏  所属分类: 
Java报表技术知识 
			
			
		 
		        在使用Java报表软件实现填报时,有时需要在编辑完数据后跟其他具体某个格子对比,进行及时校验。当报表中提供的及时校验不能满足需求时,可以通过JS事件来进行及时校验。
以FineReport为例,介绍下如何用Java报表软件内置JS及时校验-跨格数据校验
 
1.    设计模板
2.1  打开报表软件,新建报表
2.2   模板设计,如下图所示 

2.3   控件设置

2.4   添加事件
l         对B2单元格控件添加编辑结束事件:
var D2value = arguments[1].getCellValue("D2");
if (this.getValue() < D2value){ 
FR.Msg.alert(FR.i18n.Alert, "该值不能小于" + D2value);  
return false;
}
说明:D2value是自定义变量,用于获得D2单元格的值,if语句是用来判断该单元格输入后的值是否小于D2value,如果是则弹出警告:该值不能小于6。

l         对B3单元格控件添加编辑结束事件:
var D3value = arguments[1].getCellValue("D3");
if (this.getValue() != D3value){     
FR.Msg.alert(FR.i18n.Alert, "该值应等于" + D3value);
return false;
}
说明:D3value是自定义变量,用于获得D3单元格的值,if语句是用来判断该单元格输入后的值是否等于D3value,如果不是是则弹出警告:该值应等于abc。

 
2.    保存并预览
点击填报预览,在B2单元格中输入数字5,并按回车确定,则弹出警告,如图

在B3单元格中输入add,并按回车确定,也弹出校验警告,如图

 
 文章转自:http://blog.donews.com/finereport/archive/2010/09/14/1583608.aspx