(本文档仅供参考)
本文档介绍如何在第三方系统中打开smartbi报表,并按需传递报表中的参数。不同浏览器对url长度存在限制,实际开发中建议使用方式一。
方式一:简易参数传递方式,form表单打开报表
代码:
<body> <!-- form表单 --> <form id="form" action="https://ip:port/smartbi/vision/openresource.jsp?resid=xxx&user=xxx&password=xxx"; method="POST"> 真实值:<input id="realValueForm1" name="param.产品类别" value="点心"> 显示值:<input id="displayValueForm1" name="paramDisplay.产品类别" value="点心"> 真实值:<input id="realValueForm2" name="param.产品名称" value="白米"> 显示值:<input id="displayValueForm2" name="paramDisplay.产品名称" value="白米"> <input type="submit"> </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