背景说明:
报表在网页上展现时,经常用到超链接属性,常用于弹出另一个页面、触发执行某段javascript代码等等,而这些操作,往往需要引用单元格的值。
超链接的定义界面如下图所示:
从图上可以看出,超链接的属性也可以定义属性值或者表达式,充分利用超链接的表达式,可以实现单元格值的灵活运用。
举例1:常规超链接
常规的超链接不引用单元格的值,因此可以直接在超链接的属性值里写入url,如下图所示:
举例2:引用单元格的值
如果需要在超链接中引用单元格的值,则需要利用超链接表达式,动态生成一个超链接,如下图所示:
引用单元格的真实值
引用单元格的显示值
举例3:执行javascript函数
直接写上javascript函数
通过表达式生成javascript函数
●注意:执行javascript函数的超链接里,如果函数的参数里用到引号等字符型的变量,此时需要用单引号。
举例3:弹出对话框
//首先,在网页的Javascript脚本里写入如下函数:
function show_product(id){
var strurl='/demo/jsp/3.3.jsp?rpx=/api/wangge4_sub.rpx&arg1='+id;
window.open(strurl,"_blank"," Width=650 ,Height=500,top=100,left=100");
}
//然后在报表触发单元格里写入如下超链接表达式:
举例4:弹出对话框返回参数
从上例可以看出,要往对话框中传递参数非常容易,直接拼在url中即可,可是如何接收返回参数并且把返回参数写入单元格呢?
在父页面中写入如下代码:
<script language="JavaScript">
function getChildValue(childValue){ //接收子页面的返回参数,该方法被子页面调用
document.form1.textfield.value = childValue;
}
function openChildWeb(){ //打开子页面
window.open ('childweb.htm','newwindow','height=100,width=400,top=0,left=0') ;
}
</script>
在子页面中写入如下代码:
<script language="JavaScript" >
function putChildValue(){
var childValue = document.form1.textfield.value; //获得返回参数
opener.getChildValue(childValue) ; //调用父页面的方法传递返回参数
window.close(); //关闭子页面
}
</script>