(本文档仅供参考)

本文档介绍如何在第三方系统中打开smartbi报表,并按需传递报表中的参数。


方式一:简易参数传递方式,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方式传递参数,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