壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2111|回复: 16

Hyperion Essbase (Planning)计算脚本 函数之 -- boolean

  [复制链接]
发表于 2011/3/25 13:55:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
在计算脚本或者br里面,常常会用到 布尔类型的函数。返回值 只有 true 或者false,通常用于 条件判读。与 IF 等结合使用。
当然boolean函数也可以用在成员公式中。
在essbase提供的boolean函数有:
1、@ISACCTYPE
判断account dimensions 的member的account type ,如果是参数输入的type,返回 true,负责返回false。
用法:@ISACCTYPE(Tag) 参数是字符型的。
说明:当然 Tag 应该是 Expense, Revenue 等。Twopass 也是可以用来判断的,还有比如 时间余额的,First, Last, Average 也是可以的,当然只能是E文的这些,你要是用“收入”,“费用” 这样子的中文是不行的。为了确保输入的参数不和dimensions的 members混淆,建议用 双引号把tag 引起了。
示例:比如判断,如果accout的members是费用类型的,对场景 budget 做绝对值处理。
IF (@ISACCTYPE("Expense"))
Budget = @ABS(Budget);
ENDIF;

@ABS,绝对值。。。
 楼主| 发表于 2011/3/25 14:07:59 | 显示全部楼层
2、@ISANCEST
判断当前members是不是参数成员的一个祖先,返回true 或者 false。
用法:@ISANCEST (mbrName),参数是维成员。
说明:mbrName 可以是一个单个的members,也可以是多个members的组合,当然也可以是一个嵌套函数的返回值。
示例:
@ISANCEST(West)
Returns FALSE for California, West, East。

 楼主| 发表于 2011/3/25 14:09:35 | 显示全部楼层
3、@ISCHILD
判断当前members是不是参数成员的一个孩子,返回true 或者 false。
用法:@ISCHILD (mbrName),参数是维成员。
说明:mbrName 可以是一个单个的members,也可以是多个members的组合,当然也可以是一个嵌套函数的返回值。
示例:
不示例了。简单
 楼主| 发表于 2011/3/25 14:19:40 | 显示全部楼层
@ISDESC  类似。。。
 楼主| 发表于 2011/3/26 16:32:00 | 显示全部楼层
@ISGEN
判断当前成员是不是 第几代,返回 true 或false
用法:@ISGEN (dimName, genName | genNum)
说明:dimName 是维的名称哦,比如 Year, Period等,不是members的名称。
genName or genNum 是代的名称或者数字。
示例:
@ISGEN(Period,2),比如当前成员是 Q1 ,则返回 真。
 楼主| 发表于 2011/3/26 16:33:31 | 显示全部楼层
@ISIANCEST
@ISICHILD
@ISIDESC
@ISIPARENT
@ISPARENT
与上面的类似,就不多啰嗦了。只是当前成员包涵了 他自己而已。
 楼主| 发表于 2011/3/26 16:56:17 | 显示全部楼层
@ISLEV
判断当前成员是不是 第几层的,返回 true 或false
用法:@ISLEV (dimName, levName | levNum)
说明:dimName 是维的名称哦,比如 Year, Period等,不是members的名称。
levName | levNum 是层的名称活数。比如 0 , 1, 2 等
示例:
@ISLEV(Period,0),比如当前成员是 Jan ,则返回 真。
 楼主| 发表于 2011/3/26 17:16:10 | 显示全部楼层
@ISMBR
判断当前成员是不是参数里面的。
用法:@ISMBR (mbrName | rangeList | mbrList)
mbrName ,可以是一个 成员名,或者一个函数返回的单个或者多个成员。
rangeList ,一个有范围循环的成员集合,也可以是函数的返回值,
mbrList,逗号分开的,成员列表。
这三个参数,随意那种都行。

如果是一个 交叉维的,标准功能说可以,但是我没想到 怎么测试。。。
大家想想办法,

示例:
@ISMBR(@CHILDREN(Qtr1))
如果是Qtr2, Year.,返回false,如果是Jan,肯定是真了。
当然也可以这样
@ISMBR(”Jan":"Dec") 如果是 Feb,就真了。如果是 Q1 就假了
 楼主| 发表于 2011/3/26 19:51:41 | 显示全部楼层
@ISSAMEGEN
判断当前成员和参数是不是同代的,如果同代,返回true
用法:@ISSAMEGEN (mbrName)
说明:mbrName,一个有效的成员或者函数的返回值。
示例:
@ISSAMEGEN(Jan)
如果是 Feb的话,返回就是真了。
 楼主| 发表于 2011/3/26 19:52:10 | 显示全部楼层
@ISSAMELEV
类似,判断是否同层级
 楼主| 发表于 2011/3/26 19:54:21 | 显示全部楼层
@ISSIBLING
类似,是判断是否 兄弟姐妹。
比如 @ISSIBLING(Jan) 和Feb Mar 就返回真了。如果和Apr ,Oct 就不是了
 楼主| 发表于 2011/3/27 14:27:24 | 显示全部楼层
@ISUDA
判断当前成员是否和参数中的UDA字符匹配(user-defined attribute (UDA))。如果是,则真啊。
用法:@ISUDA (dimName,UDAStr)
dimName,是纬的名称啊,不是members哦,UDAstr 是指 DUA的名称。
(@ISUDA(Market,"Major Market"))
发表于 2011/11/15 20:00:53 | 显示全部楼层
能否讲一下EXCLUDE这个的用法呢?还有,在用“@IDESCENDANTS(xxx)”汇总的时候,能否排除性地汇总呢?
发表于 2012/9/9 11:30:23 | 显示全部楼层
很不错诶……谢谢整理
发表于 2012/11/28 20:06:10 | 显示全部楼层
呵呵,不错,谢谢楼主……
发表于 2013/3/6 17:58:50 | 显示全部楼层
分布的有点零散,感谢楼主这么辛苦的整理···
发表于 2013/3/10 09:18:20 | 显示全部楼层
谢谢楼主,学习了哈!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 16:24 , Processed in 0.016514 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表