亿信ABI
当前版本:BI4.7

自定义函数应用举例

1. 应用场景一

 

1.1 需求说明

客户某些报表有很多列,但是某些列需要根据登录的用户id来决定是否显示,例如表中的“总成本”一列,用户33可以看到,但是用户03需要对其隐藏。

实现方式:通过if判断用户id来指定列宽(如下图)


 自定义函数应用举例


那么当需求涉及的login.id变更时,每张表都需要调整,费时费力不好维护。所以是否有办法可以在统一的入口控制修改表达式中的login.id,而不用一张表一张表的改if表达式?


1.2 解决思路

BI的自定义函数是对BI中所有报表都能生效,或许可以充当这个全局变量。


1.3 实现方法

Step1:

创建自定义函数如下:

函数标题:yc

函数定义:yc()

函数体:if(login.id in "11,22,33".split(","),72,1-1)


 自定义函数应用举例


函数体解析:

整体是一个if()判断表达式,其中.split(",")是将字符创转化为数组的格式。

 

Step2:

分析表上设置列宽表达式:


 自定义函数应用举例


实现效果:

当登录用户ID为11、22或33时,C列显示,其他用户登录访问时,C列隐藏。

 

2. 应用场景二

 

2.1 需求说明

某个表达式或者参数的返回值是1-7的数字,如何对应的转化成星期一、星期二、星期三、星期四、星期五、星期六、星期天?


2.2 实现方法

添加自定义函数如下

函数标题:xq

函数定义:xq(N i)

函数体:["星期一","星期二","星期三","星期四","星期五","星期六","星期天"][i-1]


 自定义函数应用举例


2.3 报表效果


 自定义函数应用举例

附件列表

0

文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题

如果您认为本词条还有待完善,请编辑

上一篇如何在BI中分析附件图像表元

下一篇用户同步之第三方机构用户

请先登录