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

自定义函数应用举例

目录

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(",")是将字符创转化为数组的格式,具体可见wiki:

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

 

Step2:

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


 自定义函数应用举例


实现效果:

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

 

2.应用场景二

 

2.1 需求说明


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


2.2 实现方法


添加自定义函数如下

函数标题:xq

函数定义:xq(N i)

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


 自定义函数应用举例


2.3 报表效果


 自定义函数应用举例

标签