问题背景
在项目实施过程中,有时需要从Smartbi报表中跳转到第三方URL页面,并且需要传递含有中文信息的参数。
解决方案
一般的做法可能是先写一个jsp页面来打开第三方URL页面,以便解决参数含中文信息的问题。为了减少该类需求的重复工作和宏代码中的代码量,Smartbi 提供了一个 WinHelper 类以方便解决该类问题。具体用法,请参考后面的示例代码。
支持版本
Smartbi V9.0 及后续版本。
使用示例
// ================================
// 示例:get方式打开第三方URL
// ================================
// 灵活分析宏代码示例 // get方式打开第三方URL // 类型:ClientSide 对象:simpleReport 事件: onRenderTable var WinHelper = jsloader.resolve('smartbi.control.dialog.WinHelper'); function main(simpleReport, simpleReportContext) { var url = "http://www.soso.com/q?query=广州思迈特软件有限公司"; WinHelper.openUrl(url, null, null); }
// ================================
// 示例:post方式打开第三方URL
// ================================
// 灵活分析宏代码示例 // post方式 // 类型:ClientSide 对象:simpleReport 事件: onRenderTable var WinHelper = jsloader.resolve('smartbi.control.dialog.WinHelper'); function main(simpleReport, simpleReportContext) { //以下链接以及用户名和密码请根据需要修改 var url = "http://localhost:18080/smartbi/vision/"; var postData = [{ 'name': 'username', 'value': 'admin' }, { 'name': 'password', 'value': 'admin' }] WinHelper.openUrl(url, null, postData); }
示例资源:访问URL传递中文参数-WinHelper.xml