function request(paras){ var url = location.href; var paraString = url.substring(url.indexOf("?")+1,url.length).split("&"); var paraObj = {} for (i=0; j=paraString[i]; i++){ paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=")+1,j.length); } var returnValue = paraObj[paras.toLowerCase()]; if(typeof(returnValue)=="undefined"){ return ""; }else{ return returnValue; } } //如你给出的地址可以这样 var classid = request("classid"); var id = request("id");
我们有很多机会在JasperReport中使用各种组件,譬如图形,表格等等,通常会遇到怎么把数据传入到组件中的问题,关于JasperReport的相关概念理论,请访问Jasper的官方网站进行学习,在此不作阐述。
本文以JasperReport中的使用table为例,简单讲述怎样设置subdataset的数据源和传输主报表的参数到subdataset中。
1、添加一个表格到模版中,如图1所示。
图1
2、设置subdataset数据源,右键单击"Table",选择“Edit table datasource”选择项,如图2所示。
图2
在选择了“Edit table datasource”选项后,会弹出设置窗口,按此设置即可,如图3所示。
图3
3、若在报表设计当中需要把参数传入到子报表中,则需要在主报表和子报表中声明相同名称和类型的参数,在此以“Table”为例,本例已在主报表和子报表中的subdataset中声明相同名称和类型的变量。现在实现把主报表中的参数关联到子报表中。如图4所示,在“Parameters”标签中添加需要关联的变量。
图4
注:本示例使用的是IReport Desiger5.0版本。
<html>
<head>
<script language="javascript" defer="defer">
// 定义Longfei为框架名称,将Longfei定义为window对象的属性
var Longfei = window.Longfei = window.$ = function(selector){return new Longfei.fn.init(selector)};
Longfei.fn = Longfei.prototype ={
init:function(selector){
this.selector=selector;
return this;
},
val:function(){
//在此可以通过对selector进行判断,如果以#开头,则通过id获取对象,如果以.开头,则通过class获取对象等等
if(this.selector.substring(0,1)=="#"){
var vId = this.selector.substring(1);
var obj = document.getElementById(vId);
return obj.value;
}else if(this.selector.substring(0,1)=="."){
var vArray = new Array();
var vClassName = this.selector.substring(1);
var obj = document.getElementsByTagName("*");
for(var i in obj){
if(obj[i].className == vClassName){
vArray.push(obj[i]);
}
}
//在这里可以对vArray迭代取值。
return vArray;
}
}
Longfei.fn.init.prototype = Longfei.fn;
var babyLongf = new Longfei("#myInput");
alert(babyLongf.val());//Hello world!
</script>
</head>
<body>
<form method="post" action="" name="myform">
<input id="myInput" type="text" value="Hello world!" size="50" />
</form>
</body>
</html>