...
本文档介绍如何在第三方系统中打开smartbi报表,并按需传递报表中的参数。不同浏览器对url长度存在限制,实际开发中建议使用方式一。
方式一:简易参数传递方式,form表单打开报表
表单代码:代码:
代码块 | ||
---|---|---|
| ||
<body> <!-- form表单 --> <form id="form" action="httphttps://localhostip:18080port/smartbi/vision/openresource.jsp?resid=I2c90903e114f6f9601114f70e09d000e&refresh=true"xxx&user=xxx&password=xxx"; method="POST"> <input type 真实值:<input id="textrealValueForm1" name="param.开始日期产品类别" value="1996-03-17点心"> <input type 显示值:<input id="textdisplayValueForm1" name="paramDisplay.开始日期产品类别" value="1996-03-17点心"> <input type 真实值:<input id="textrealValueForm2" name="param.结束日期产品名称" value="1996-09-19白米"> <input type 显示值:<input id="textdisplayValueForm2" name="paramDisplay.结束日期产品名称" value="1996-09-19白米"> <input type="textsubmit"> name="param.产品目录" value="8"> <input type="text" name="paramDisplay.产品目录" value="饮料"> <input type="submit"> </form> </form> |
说明:
报表中有两个参数,产品类别、产品名称
form表单代码示例如下,点击提交打开报表传递参数:
实现打开报表并传参:
方式二:通过base64方式传递参数,url中paramsInfoBase64参数串
获取的参数串param:
使用系统自带小工具,生成参数串http://ip:port/smartbi/vision/getparamsinfo.html (源码在smartbi.war/vison/getparamsinfo.html中,可自行在服务器上获取)
报表中参数为产品类别,传递参数值点心。获取到参数串:[{"name":"\u4ea7\u54c1\u7c7b\u522b","value":"\u70b9\u5fc3","displayValue":"\u70b9\u5fc3"}]
获取base64转码:
js可以用btoa(param)函数获取base64码;
也可以用在线加密工具:Base64 在线编码解码 | Base64 加密解密 - Base64.us
base64后的参数川为:W3sibmFtZSI6Ilx1NGVhN1x1NTRjMVx1N2M3Ylx1NTIyYiIsInZhbHVlIjoiXHU3MGI5XHU1ZmMzIiwiZGlzcGxheVZhbHVlIjoiXHU3MGI5XHU1ZmMzIn1d
url拼接paramsInfoBase64参数串:
https://xxx/smartbi/vision/openresource.jsp?paramsInfoBase64=W3sibmFtZSI6Ilx1NGVhN1x1NTRjMVx1N2M3Ylx1NTIyYiIsInZhbHVlIjoiXHU3MGI5XHU1ZmMzIiwiZGlzcGxheVZhbHVlIjoiXHU3MGI5XHU1ZmMzIn1d&resid=xxx&username=xx&password=xx