双击此处添加文字
URL传参
来源: | 作者:佚名 | 发布时间: 2020-12-26 | 3167 次浏览 | 分享到:

1.概述
1.1 应用场景
接出ourwayBI钻取到第三方平台链接、设置好自定义传参地址,通过URL接入到第三方平台从而实现报表参数相互传参。


1.2 流程图


2.操作流程
2.1 只有在设置外部链接才有效

(1)参数解析:
钻取之后的url为:
https://www.baidu.com(第三方平台链接)/?fdrill=true&fusername=qms&fwhere=[{"fname":"department.departmentname","fdesc":"门店","fwhether":"是","fcoper":"=","fvalue":"淮海店","ftype":"varchar"}]&ftitle=[淮海店] 

 代码解析:
 fusername:登录的用户名
 fwhere:钻取过来的所有筛选条件 已经用JSON.stringify序列化了
 序列化之后的结果为 
 [{
fname: 表达式名称
fdesc: 表达式描述
fwhether: 是否
fcoper: 表达式符号
fvalue: 表达式的值
ftype: 表达式的类型
}]
ftitle:钻取过来的后面追加的标题
2.2 接出,钻取自定义地址传参(只是替换参数的值,不添加新的参数)
(1)使用场景
点击bi看板“二级单位在建工程”中“一公司”的圆柱体需要穿透到“人员异动情况表”,携带的参数应是一公司的phid为
“324191209000024”,定向修改“人员异动情况表”url中红色部分,红色部分前后不变。
http://192.168.0.88:9089/ReportView?page=c%22%3A1%2C%22NullHideLink
%22%3A%220%22%2C%22LinkVisible%22%3Atrue%2C%22LinkRep_srcDatas%22%3A%
22324191209000024%22%7D&e=1&AppTitle=%E4%BA%BA%E5%91%98%E5%BC%82%E5%8
A%A8%E6%83%85%E5%86%B5%E8%A1%A8
效果展示:
     
(2)设置字段映射,需要传id的才用到

设置 指定哪一列为id列

(3)设置钻取自定义地址



(4)绑定参数
 输入@可以唤出数据集的行、列、筛选区域的参数,用户可以自定义绑定要传的参数
  [行区域].[区域].[id]  这里传的区域设置的映射的id列的值
 [行区域].[区域].[name]  这里直接传字段的名称   如区域
 [行区域].[区域].[value]  这里是传区域的值,和id刚刚好相反

 例子展示:

 设置的自定义钻取地址
 ./design?fdesign=tr1ue&fid=rpt8af7d480d18311ea82a793b69c070815
 &id=@[行区域].[区域].[id]
 &name=@[行区域].[区域].[name]
 &value=@[行区域].[区域].[value]
 当双击钻取广州时,得到的钻取地址为
 ./design?fdesign=tr1ue&fid=rpt8af7d480d18311ea82a793b69c070815
 &id=1006
 &name=区域
 &value=广州
 因为进行了字段映射,其中id=1006是广州区域的id


2.3 接入,第三方平台钻取BI系统
(1)生成传参规则:


 原表达式:
(#d_time.the_year between 2008 and 2020) and (departmentclass.departmentclassname in ('广州','深圳','山西') or not(customer.customername = 'VIP1')) and Sum(ICstockbill.totaldecimal) > 10
定义规则之后的表达式:
fwhere_drill=["(","","","#d_time.the_year","","between","2008 and 2020","",")","and",
"(","","","departmentclass.departmentclassname","","in","('广州','深圳','山西')","","","or",
"","not(","","customer.customername","","=","'VIP1'",")",")","and",
"","","Sum(","ICstockbill.totaldecimal",")",">","10","",""]

规则解析:[
(1) "(","","","#d_time.the_year","","between","2008 and 2020","",")","and",
"(",  表达式前面的左(
"",  是非开始表达式 这里为是,故为空值
"",  Having前开始表达式
"#d_time.the_year",  明细表达式,不带数据库前缀
"",  Having后结束表达式
"between",  表达式符号
"2008 and 2020",  表达式的值  需要区分字符串和数值类型
"",  是非结束表达式 这里为是,故为空值
")",   表达式后面的右)
"and",  多个表达式的关系

(2)"(","","","departmentclass.departmentclassname","","in","('广州','深圳','山西')","","","or",
"(",  表达式前面的左(
"",  是非开始表达式 这里为是,故为空值
"",  Having前开始表达式
"departmentclass.departmentclassname",  明细表达式,不带数据库前缀
"",  Having后结束表达式
"in",  表达式符号
"('广州','深圳','山西')",  表达式的值  需要区分字符串和数值类型
"",  是非结束表达式 这里为是,故为空值
"",   表达式后面的右)
"or",  多个表达式的关系

(3)"","","Sum(","ICstockbill.totaldecimal",")",">","10","",""
"",  表达式前面的左(
"",  是非开始表达式 这里为是,故为空值
"Sum(",  Having前开始表达式
"ICstockbill.totaldecimal",  明细表达式,不带数据库前缀
")",  Having后结束表达式
">",  表达式符号
"10",  表达式的值  需要区分字符串和数值类型
"",  是非结束表达式 这里为是,故为空值
"",   表达式后面的右)
--最后一个表达式关系没有,故最后一个元素删除了客户替换完值后需要给参数值encodeURIComponent才可以传入。


2.4 接入第三方平台传参(只是传参不忽略原来的筛选条件)到BI系统


(1)生成传参规则:

参考以上步骤


(4) 实现传参不忽略原有的筛选条件

在已加fwhere_drill=地址栏后面加上&fdrill=false即可