亿信华辰文档中心 >> 自定义函数应用举例 >> 历史版本
编辑时间历史版本内容长度图片数目录数修改原因
10-12 23:55 历史版本1 1860 5 1 调整页面
最新历史版本 |   下一历史版本 | 返回词条

自定义函数应用举例

自定义函数应用举例

目录

应用场景一:

需求说明:

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

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

 

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

我的思路:

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

实现方法:

Step1:

创建自定义函数如下:

函数标题:yc

函数定义:yc()

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

 

函数体解析:

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

http://192.168.1.200/wiki/pages/viewpage.action?pageId=590506

 

Step2:

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

 

实现效果:

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

 

应用场景二:

需求说明:

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

实现方法:

添加自定义函数如下

函数标题:xq

函数定义:xq(N i)

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

 

报表效果:

 

标签