1、新建超链接
随意点击一个单元格右击,选择 超级链接
2、在弹出的窗口中选择JavaScript脚本 如图:
其中红框框出的是几个要点 ,左边的就不讲了,右上角的参数cc是设置了公式remoteServletURL 能自动获取报表路径 如图:
右下角的js代码是设置一个iframe弹窗,代码如下:
1 var url =FR.cjkEncode("?formlet=indicatorDetailedTypeFirst.frm&companycode=0102010101&intermediarycode=0201072911&name=赵振强");
2 var iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='yes' frameborder='0'>"); // 对话框内 iframe 参数的命名,默认宽高占比是 100%,可向下滚动
3 iframe.attr("src", cc+url);
4 //iframe.attr("src", cc+"?formlet=indicatorDetailedTypeFirst.frm&name=赵振强"); // 给 iframe 添加 src 属性
5 var o = {
6 width : 700, //对话框宽度
7 height: 500 //对话框高度
8 };
9 FR.showDialog("添加", o.width, o.height, iframe,o);//弹出对话框
其中需要注意的是如果参数中有 中文需要将url包裹在编码FR.cjkEncode()里,否则传参中的中文将会是乱码:如图
需要注意的是:如果放到工程js中会报FR没定义,我找了半天没找到怎么引入帆软的js,网上百度看到有人贴出了cjkEncode的源码,直接加到js方法中调用即可
$.GPageModule([""],function(){
var modelType = "indicatorDetailedTypeFirst.frm";
var companycode = $("#companycode").val();
var intermediarycode =$("#intermediarycode").val();
var name =$("#name").val();
var reportURL = cjkEncodeNew(GlobalParam.context+"/ReportServer?formlet=erm/sj/"+modelType+"&companycode="+companycode+"&intermediarycode="+intermediarycode+"&name="+name);
$("#viewIndicatorDetailedType").attr("src",reportURL);
});
function cjkEncodeNew(text) {
if (text == null) {
return "";
}
var newText = "";
for (var i = 0; i < text.length; i++) {
var code = text.charCodeAt (i);
if (code >= 128 || code == 91 || code == 93) {//91 is "[", 93 is "]".
newText += "[" + code.toString(16) + "]";
} else {
newText += text.charAt(i);
}
}
return newText;
}
原创总结。 |