拓展系统函数
文章目录
- 拓展系统函数
-
- 使用方式
- 拓展系统函数
-
- 去除字符串首尾空格 `ZTRIM`
- 按位置次数替换字符串 - `ZREPLACE`
- 向上取整 - `ZROUNDUP`
- 向下取整 - `ZROUNDDOWN`
- 程序运行时间 - `ZRUNTIME`
- `Query`运行时间 - `ZQUERYRRUNTIME`
- 小数转分数 - `ZDECFRA`
- 格式化日期- `ZFORMATDATE`
- `MD5`加密 - `ZMD`
- 重复目标字符串 - `ZREPEAT`
- 精确查找包含字符串 - `ZCONTAIN`
- 通用初始化对象 - `ZNEW`
- 通用获取数据对象 - `ZOPENID`
- 获取`sc`数据类型错误描述 - `ZSTATUSERRORTEXT`
拓展系统函数
- 本篇介绍自定义的拓展系统函数。
- 除去系统自带一些系统函数,选取一些常用方法作为拓展函数调用。
- 系统函数调用非常方便快捷,一般调用简写函数使用
$function(params)
即可。
使用方式
- 直接将
CustomMethod.xml
导入到Studio
里即可。- 下载文件连接:
- CSDN链接
- 阿里云盘
- 下载文件连接:
注:有想实现其他功能自定义函数功能,请与我联系或底部留言。
拓展系统函数
去除字符串首尾空格 ZTRIM
去除字符串首尾空格。
ZTRIM(str)
ZTR(str)
str
- 字符串。
- 全拼函数调用:
USER>w $ztrim(" y x "),!
y x
- 简写函数调用:
USER>w $ztr(" y x "),!
y x
按位置次数替换字符串 - ZREPLACE
增强版系统函数
$Replace
,增加按位置次数替换字符串。
ZREPLACE(source = "", findWhat = "", replaceWith = "", matchCase = 1, start = 1, repeatCount = 0, startMode = 0)
ZRE(source = "", findWhat = "", replaceWith = "", matchCase = 1, start = 1, repeatCount = 0, startMode = 0
source
- 字符串。findWhat
- 查找字符。replaceWith
- 替换字符。matchCase
- 大小写匹配。start
- 起始位置。repeatCount
- 重复次数。
示例
- 全拼函数调用:
USER>W $zreplace("ayxb","yx","yaoxin",""),!
ayaoxinb
- 简写函数调用:
USER>W $zre("ayxb","yx","yaoxin",""),!
ayaoxinb
- 将目标字符替换为空:
USER>W $zreplace("ayxb","yx","","") ,!
ab
- 替换第一次目标字符串:
USER>W $zreplace("ayxyxb","yx","","",1,1),!
ayxb
- 替换两次目标字符串:
USER>W $ZReplace("ayxyxb","yx","yaoxin","",1,2),!
ayaoxinyaoxinb
向上取整 - ZROUNDUP
向上取整。
ZROUNDUP(num)
ZRU(num)
num
- 小数。
示例
- 全拼函数调用:
USER>w $zroundup(3.1)
4
- 简写函数调用:
USER>w $zru(3.1)
4
向下取整 - ZROUNDDOWN
向下取整。
ZROUNDDOWN(num)
ZRD(num)
num
- 小数。
示例
- 全拼函数调用:
USER>W $zrounddown(2.9)
2
- 简写函数调用:
USER>W $zrd(2.9)
2
程序运行时间 - ZRUNTIME
获取程序运行时间,测试程序运行效率。
ZRUNTIME(className, methodName, params...)
ZRT(className, methodName, params...)
className
- 类名称。methodName
- 查询名称。params...
- 逗号参数的串。
示例
- 调用示例:
ClassMethod RunTime(a, b, c)
{h 1q a + b + c
}
- 全拼函数调用:
USER>w $zruntime("M.Custom","RunTime",1,2,3)
1.000887
- 简写函数调用:
USER>w $zrt("M.Custom","RunTime",1,2,3)
1.000084
Query
运行时间 - ZQUERYRRUNTIME
测试Query程序运行效率,返回运行时间。
ZQUERYRRUNTIME(className, queryName, params...)
ZQT(className, queryName, params...)
className
- 类名称。queryName
- 查询名称。params...
- 逗号参数的串。
示例
- 全拼函数调用:
USER>w $zqueryruntime("%SYSTEM.License","Counts")InstanceLicenseUse:License Units:
授权的总数量 LU:300:
当前可用 LU:298:
最小可用 LU:285:
当前用户处于活动状态:2:
处于活动状态的最大用户数:15:
当前 CSP 用户处于活动状态:1:
处于活动状态的最大 CSP 用户数:14:
当前 CSP 会话处于宽限期:0:
处于宽限期的最大 CSP 会话数:12:
.000238
- 简写函数调用:
USER>w $zqt("%SYSTEM.License","Counts")InstanceLicenseUse:License Units:
授权的总数量 LU:300:
当前可用 LU:298:
最小可用 LU:285:
当前用户处于活动状态:2:
处于活动状态的最大用户数:15:
当前 CSP 用户处于活动状态:1:
处于活动状态的最大 CSP 用户数:14:
当前 CSP 会话处于宽限期:0:
处于宽限期的最大 CSP 会话数:12:
.000243
小数转分数 - ZDECFRA
小数转分数。
ZDECFRA(num)
ZDF(num)
num
- 小数。
示例
- 全拼函数调用:
USER>w $zdecfra(0.1)
1/10
- 简写函数调用:
USER>w $zdf(0.1)
1/10
格式化日期- ZFORMATDATE
格式化日期,将一种日期格式转换为另一种日期格式。
ZFORMATDATE(date, toFormat, fromFormt)
ZFT(date, toFormat, fromFormt)
date
- 日期。toFormat
- 源格式化字符。fromFormt
- 目标格式化字符。
示例
- 全拼函数调用:
USER>w $zformatdate("20/04/2022", "DD/MM/YYYY", "YYYY/MM/DD"),!
2022/04/20
- 简写函数调用:
USER>w $zft("20/04/2022", "DD/MM/YYYY", "YYYY/MM/DD"),!
2022/04/20
MD5
加密 - ZMD
快捷
MD5
加密。
ZMD(str)
str
- 字符串。
示例
- 函数调用:
USER>w $zmd("yx")
0B82A7C1AD82C6280C00E30B81BE916D
重复目标字符串 - ZREPEAT
高效重复目标字符串。
ZREPEAT(target, num)
ZRP(target, num)
target
- 目标字符。num
- 重复字数。
示例
- 全拼函数调用:
USER>w $zrepeat("yx",5)
yxyxyxyxyx
- 简写函数调用:
USER>w $zrp("yx",10)
yxyxyxyxyxyxyxyxyxyx
精确查找包含字符串 - ZCONTAIN
按照分隔符分割的字符串列表匹配目标字符串,成功返回
1
,否则返回0
。
ZCONTAIN(str, target , del = "^")
ZCO(str, target , del = "^")
str
- 分隔符列表字符串。target
- 目标字符。del
- 分隔符。
示例
- 全拼函数调用:
USER>w $zcontain("1,111,222,333","11",","),!
0
- 简写函数调用:
USER>w $zco("1,11,222,333","1",","),!
1
通用初始化对象 - ZNEW
该函数可以作为快捷调用类方法,或初始化对象使用。注:仅对象类可使用。
ZNEW(classname)
ZNW(classname)
classname
- 类名。
示例
- 示例方法:
ClassMethod Sum(a, b, c)
{q a + b + c
}
- 全拼函数调用:
USER>w $znew("M.Custom").Sum(1,2,3)
6
- 简写函数调用:
USER>w $znw("M.Custom").Sum(1,2,3)
6
zw
查看获取对象:
USER>zw $znw("M.Custom")
<OBJECT REFERENCE>[1@M.Custom]
+----------------- general information ---------------
| oref value: 1
| class name: M.Custom
| reference count: 2
+----------------- attribute values ------------------
| (none)
+-----------------------------------------------------
通用获取数据对象 - ZOPENID
通过
OPENID()
方法,根据ID,通用获取持久类数据。
ZOPENID(classname,id)
ZID(classname,id)
classname
- 类名。id
-ID
标识。
示例
- 全拼函数调用:
USER>w $zopenid("M.T.Person",1).name
yaoxin
USER>w $zopenid("M.T.Person",1).age
26
- 简写函数调用:
USER>w $zid("M.T.Person",2).name
yx
USER>w $zid("M.T.Person",2).age
20
获取sc
数据类型错误描述 - ZSTATUSERRORTEXT
由于系统中返回
sc
错误调用冗长,也不好记忆,可以此系统拓展函数获取sc
数据类型错误描述。
ZSTATUSERRORTEXT(sc)
ZSC(sc)
sc
-Status
数据类型值。
示例
- 方法示例:
Property flag As %Boolean;/// d ##class(M.Custom).Staus()
ClassMethod Staus()
{s obj = ..%New()s sc = obj.flagIsValid("2")w $zsc(sc),!
}
- 全拼函数调用:
USER>d ##class(M.Custom).Staus()
错误 #7206: 数据类型值'2'不是有效的布尔值