系统内置的函数如下:
函数 | 说明 |
---|---|
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() | 获取用户所属默认用户组的真名。无参数。 |
CurrentReportName() | 获取报表名称的系统函数 |
GetSessionAttribute(AttributeName) | 获取当前会话中的属性值;参数是“属性名称”。 |
Process1000LimitOfIn() | 处理多选树参数或下拉框参数超过1000时报错问题。当参数超过1000时,函数会将其转化为“字段 in (list1) or 字段 in (list2)” 的形式。 参数有两个:
|
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(serial_number) | 获取指定日期中的日( 1-31 的整数)。serial_number:指定日期。 |
Hour(serial_number) | 获取指定日期时间中的小时(介于 0 (12 A.M.) 到 23 (11 P.M.) 之间的整数)。serial_number:指定日期。 |
Minute(serial_number) | 获取指定日期时间中的分钟( 0-59 的整数)。serial_number:指定日期。 |
Second(serial_number) | 获取指定日期时间中的秒(0-59 的整数)。serial_number:指定日期。 |
Lunar(date) | 获取指定日期的农历(闰月的月份)。date:指定日期。 |
DateDif(start_date, end_date, unit) | 获取两个指定日期差值(起始日期不得小于结束日期)。参数有三个:
|
Days360(start_date, end_date) | 按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),返回两日期间相差的天数。参数有两个:
|
WeekNum(serial_number) | 获取指定日期在一年中的第几周。serial_number:指定日期。 |
WeekDay(serial_num) | 返回指定日期为星期几(1(星期天)到 7(星期六)之间的整数)。serial_num:指定日期。 |
自定义函数
系统允许用户自定义“字符串”类型的系统函数,以实现一些特殊功能需求:如实现“上年同期”、“取年末或是月末的值”等。
在系统中设置自定义函数,请执行下列操作:
(1)
...
创建扩展包,编写自定义系统函数类(使用Java语言编写)。
(2)
...
将编写好的自定义函数类文件存放在扩展包的以下包名下:smartbi.freequery.expression.function。
(3)
...
在应用服务器上重新部署扩展包。
(4)
...
重启应用服务器,在在“系统导航栏”选择 公共设置,展开资源目录区,选择 函数列表 > 系统函数 > 字符串,
...
在更多操作,选择 增加自定义函数(I)。
...
(5)
...
在“字符串”的右键菜单中选择 增加自定义函数,弹出“自定义函数”窗口。
(6)
...
在“自定义函数”窗口输入名称,该名称必须要与放入到“function”目录中的自定义函数类文件名称一致。
(7)
...
创建完成后,就可以和系统内置函数一样在产品中拖拽使用了。