系统内置的函数如下:
函数 | 说明 |
---|---|
CurrentUserAlias() | 获取当前用户别名。无参数。 |
CurrentUserID() | 获取当前用户的编号。无参数。 |
CurrentUserName() | 获取当前用户的名称。无参数。 |
GetCookie() | 获取Cookie信息。参数1:cookiePropertyName[字符串]。 |
GetFirstDayOfFrequencyParameter() | 获取频度日期参数值对应的第一天,例如获取2012年第1周的第一天,返回值为2012-01-01。参数:参数值[字符串]。 |
GetLastDayOfFrequencyParameter() | 获取频度日期参数值对应的最后一天,例如获取2012年第1周的最后一天,返回值为2012-01-07。参数:参数值[字符串]。 |
GetUserProperty(propertyName) | 获取用户属性的值。参数:propertyName—指系统管理中的“用户属性”名。 |
CurrentUserAllDepartmentIDRecursively() | 当前用户所属机构及其所有子机构的ID。无参数。 |
CurrentUserDepartments() | 获取用户所属机构的编号,无参数。用法常见于 select 字段 from table where 字段 in (CurrentUserDepartments())。 |
CurrentUserDefaultDepartmentAlias() | 获取用户所属默认用户组的别名。无参数。 |
CurrentUserDefaultDepartmentID() | 获取用户所属默认用户组的编号。无参数。对应知识库中t_group表中的c_orgid字段。 |
CurrentUserDefaultDepartmentName() | 获取用户所属默认用户组的真名。无参数。 |
GetSessionAttribute(AttributeName) | 获取当前会话中的属性值;参数是“属性名称”。 |
GetSelectedMembers() | 获取当前多维分析中指定维度层次下的所有成员。参数是“hierarchy”即维度层次。该函数常用于自定义成员中汇总表达式。 |
GetUserAccessibleMembers() | 获取指定维度层次中当前用户具有数据访问权限的成员。参数有两个:
|
GetUserPropertyWithoutBrackets(propertyName) | 获取用户属性(不使用括号)。参数1:propertyName[字符串]。 |
GetUserIP() | 获取当前用户登录的IP地址。无参数。 |
GetUserExAttr(attrName) | 获取当前用户的指定扩展属性。参数1:attrName[字符串] (扩展属性的属性名)。 |
CurrentDate() | 获取当前应用服务器日期,支持即席查询、透视分析、多维分析和多维探索的页面展示及导出。 |
Now() | 获取当前日期时间。无参数。 |
Today() | 获取当前日期。无参数。 |
Date(year, month, day) | 生成指定日期。year:年;month:月;day:日。 |
Time(hour, minute, second) | 生成指定时间。hour:时;minute:分;second:秒。 |
DateTimeAdd(date, delta...) | 获取指定日期。参数有两个:
|
YearAdd(date, delta) | 获取指定日期偏移多少年后的日期。参数有两个:
|
MonthAdd(date, delta) | 获取指定日期偏移多少个月后的日期。参数有两个:
|
DateAdd(date, delta) | 获取指定日期偏移多少天后的日期。参数有两个:
|
Year(serial_number) | 获取指定日期中的年。serial_number:指定日期。 |
Month(serial_number) | 获取指定日期中的月(1-12之间的一个数)。serial_number:指定日期。 |
Day(erialserial_number) | 获取指定日期中的日( 1-31 的整数)。serial_number:指定日期。 |
Hour(erialserial_number) | 获取指定日期时间中的小时(介于 0 (12 A.M.) 到 23 (11 P.M.) 之间的整数)。serial_number:指定日期。 |
Minute(erialserial_number) | 获取指定日期时间中的分钟( 0-59 的整数)。serial_number:指定日期。 |
Second(erialserial_number) | 获取指定日期时间中的秒(0-59 的整数)。serial_number:指定日期。 |
Lunar(date) | 获取指定日期的农历(闰月的月份)。date:指定日期。 |
DateDif(start_date, end_date, unit) | 获取两个指定日期差值(起始日期不得小于结束日期)。参数有两个:参数有三个:
|
Days360(start_date, end_date) | 按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),返回两日期间相差的天数。start_date:起始日期;end,返回两日期间相差的天数。参数有两个:
|
WeekNum(serial_number) | 获取指定日期在一年中的第几周。serial_number:指定日期。 |
WeekDay(serial_num) | 返回指定日期为星期几(1(星期天)到 7(星期六)之间的整数)。serial_number:指定日期。num:指定日期。 |
自定义函数
系统允许用户自定义“字符串”类型的系统函数,以实现一些特殊功能需求:如实现“上年同期”、“取年末或是月末的值”等。
在系统中设置自定义函数,请执行下列操作:
(1) 创建扩展包,编写自定义系统函数类(使用Java语言编写)。
(2) 将编写好的自定义函数类文件存放在扩展包的以下包名下:smartbi.freequery.expression.function。
(3) 在应用服务器上重新部署扩展包。
(4) 重启应用服务器,在在“系统导航栏”选择 公共设置,展开资源目录区,选择 函数列表 > 系统函数 > 字符串,在更多操作,选择 增加自定义函数(I)。
(5) 在“字符串”的右键菜单中选择 增加自定义函数,弹出“自定义函数”窗口。
(6) 在“自定义函数”窗口输入名称,该名称必须要与放入到“function”目录中的自定义函数类文件名称一致。
(7) 创建完成后,就可以和系统内置函数一样在产品中拖拽使用了。