您的当前位置:首页正文

NC60公式函数使用说明

2021-09-18 来源:年旅网
NC60公式函数使用说明

NC应用集成开发部 马志强

本文档主要是对NC60中公式的基本使用进行简要说明,给出公式可以支持的参数类型以及对应的返回值类型结果等信息,并对公式函数中的一些特殊情况加以说明。在类型返回值表中没有提及的情况均视为非法参数条件,会抛出异常。

本文档中由于书写匆忙,若有错误之处,欢迎批评指正。

NC60公式函数使用说明 ........................................................................................................ 1 NC应用集成开发部 马志强 .................................................................................................. 1 1. 字符串函数 ....................................................................................................................... 6 1.1 charat(string,index) .......................................................................................................... 6 1.2 endswith(string, end) ....................................................................................................... 6 1.3 equalsIgnoreCase(string1, string2) .................................................................................. 7 1.4 indexOf(st1, st2) .............................................................................................................. 7 1.5 isEmpty(str) ..................................................................................................................... 8 1.6 lastIndexOf(st1, st2) ........................................................................................................ 8 1.7 left(st, index) ................................................................................................................... 8 1.8 leftStr(st,len,defaultStr) ................................................................................................... 9 1.9 length(st) .......................................................................................................................... 9 1.10 mid(String st, int start, int end) .................................................................................... 10 1.11 right(String st, int index) ............................................................................................. 10 1.12 rightStr(st,len,defaultStr) ............................................................................................. 11 1.13 startsWith(String st, String start) ................................................................................. 11 1.14 toLowerCase(String st) ................................................................................................ 12 1.15 toString(obj) ................................................................................................................ 12 1.16 toUpperCase(String st) ................................................................................................ 12 1.17 trimZero(value, [decimal]) .......................................................................................... 13 2. 数学函数 ......................................................................................................................... 14 2.1 abs(num) ........................................................................................................................ 14 2.2 acos(x) ........................................................................................................................... 14 2.3 add(num1,num2) ........................................................................................................... 15 2.4 asin(x) ............................................................................................................................ 15 2.5 atan(x) ............................................................................................................................ 15 2.6 cos(x) ............................................................................................................................. 16 2.7 div(num1,num2) ............................................................................................................ 16 2.8 exp(x)............................................................................................................................. 17 2.9 int(x) .............................................................................................................................. 17

2.10 ln(x) ............................................................................................................................. 18 2.11 log(x) ........................................................................................................................... 18 2.12 max(x, y) ..................................................................................................................... 18 2.13 min(x, y) ...................................................................................................................... 19 2.14 mul(num1,num2) ......................................................................................................... 19 2.15 round(double num, int index) ...................................................................................... 20 2.16 sgn(num) ...................................................................................................................... 20 2.17 sin(x) ............................................................................................................................ 21 2.18 sqrt(x) .......................................................................................................................... 21 2.19 sub(num1,num2) .......................................................................................................... 21 2.20 tan(x) ........................................................................................................................... 22 2.21 toNumber(String st) ..................................................................................................... 22 2.22 zeroifnull(var) .............................................................................................................. 23 2.23 acosh(param) ............................................................................................................... 23 2.24 angle(x,y) ..................................................................................................................... 24 2.25 asinh(param) ................................................................................................................ 24 2.26 atanh(param) ................................................................................................................ 24 2.27 cosh(param) ................................................................................................................. 25 2.28 mod(x, y) ..................................................................................................................... 25 2.29 rand() ........................................................................................................................... 25 2.30 sinh(param) .................................................................................................................. 26 2.31 sum(x,y) ....................................................................................................................... 26 2.32 tanh(param) ................................................................................................................. 27 3. 数据库函数 ..................................................................................................................... 27 3.1 ass(freevalueID,checktype) ........................................................................................... 27 3.2 cvn(tablename,fieldname,pkfield,pkvalue) ................................................................... 28 3.3 cvs(tablename,fieldname,pkfield,pkvalue) .................................................................... 28 3.4 getColNmv(tablename,fieldname,pkfield,pkvalue) ...................................................... 28 3.5 getColNmv2(tablename,fieldname,pkfield1,pkvalue1, pkfield2,pkvalue2) .................. 29 3.6 GetColsValue(\"tablename\................ 29

3.7 getColValue(tablename,fieldname,pkfield,pkvalue) ..................................................... 30 3.8getColValue2(tablename,fieldname,pkfield1,pkvalue1,pkfield2,pkvalue2) .................. 30 3.9getColValueMore(tablename,selectfield,field1,value1,field2,value2....) ....................... 31 3.10getColValueMoreWithCond(tablename,selectfield,field1,value1,field2,value2...,whereCondition) ............................................................................................................................ 31 3.11getMLCValue(tablename,fieldname,pkfield,pkvalue) ................................................. 31 4. 财务函数 ............................................................................................................................ 32 4.1 getChineseCurrency(Object) ......................................................................................... 32 4.2 getEnglishCurrency(mark,number) ............................................................................... 32 4.3 setThMark(num) ............................................................................................................ 33 4.4 toChinese(Object number,int flag1,int flag2) ................................................................ 33 5. 日期类型 ............................................................................................................................ 34 5.1 compareDate(date1, date2, field) .................................................................................. 34 5.2 date() .............................................................................................................................. 34 5.3 dateAdd(date1, num, fieldchar) ..................................................................................... 35 类型返回值表 ..................................................................................................................... 35 5.4 dateFormat(date, pattern) .............................................................................................. 35 5.5 datetime() ....................................................................................................................... 36 5.6 day ().............................................................................................................................. 36 5.7 dayOf(date) .................................................................................................................... 37 5.8 month () ......................................................................................................................... 37 5.9 monthOf(date) ............................................................................................................... 37 5.10 time() ........................................................................................................................... 38 5.11 toDate(str) .................................................................................................................... 38 5.12 toDateTime(str) ........................................................................................................... 38 5.13 toTime(str) ................................................................................................................... 39 5.14 year () .......................................................................................................................... 39 5.15 yearOf(date) ................................................................................................................. 40 6. 基本类型 ............................................................................................................................ 41 6.1 iif(condition, result1, result2) ........................................................................................ 41

6.2 比较操作(<,>,<=,>=,!=,=) ...................................................................................... 41 6.3 逻辑操作(&&,||,!) ................................................................................................... 42 6.4 +操作 ............................................................................................................................. 43 6.5 -操作 .............................................................................................................................. 43 6.6 *操作 ............................................................................................................................. 44 6.7 /操作 .............................................................................................................................. 45 6.8 ^操作 ............................................................................................................................. 46 6.9 %操作 ............................................................................................................................ 46 7. 关于公式解析的返回值 .................................................................................................... 46

1. 字符串函数

1.1 charat(string,index) 公式含义

得到字符串string中第index个字符

对应类:nc.vo.pub.formulaset.function.CharAt

类型返回值表

参数string java.lang.String 参数index Number 返回值 java.lang.String, index转换成int数值,与Java中charAt()结果相同,当index大于string长度时,抛出异常 java.lang.String,index必须可以直接从String转成int,如”1”(但“1.22”不行,转int失败抛异常),转换后与上一条执行结果相同。 java.lang.String java.lang.String

1.2 endswith(string, end) 公式含义

判断字符串string是否以字符串end结尾

对应类:nc.vo.pub.formulaset.function.EndsWith

类型返回值表

参数string java.lang.String 参数end java.lang.String 返回值 nc.vo.pub.lang.UFBoolean,与Java中String类方法endsWith返回结果相同,只不过返回UFBoolean UFBoolean.FALSE UFBoolean.FALSE UFBoolean.TRUE null 除null以外任何对象 null 除null以外任何对象 null null

1.3 equalsIgnoreCase(string1, string2) 公式含义

判断忽略大小写字符串string1是否与字符串string2相等 对应类:nc.vo.pub.formulaset.function.EqualsIgnoreCase

类型返回值表

参数string java.lang.String 参数end java.lang.String 返回值 Integer, 与Java中String类方法equalsIgnoreCase返回结果相同,只不过返回Integer(true对应1,false对应-1) new Integer(-1) new Integer(1) null 除null以外任何对象 null

除null以外任何对象 new Integer(-1) null null 1.4 indexOf(st1, st2) 公式含义

判断字符串st1中第一个字符串st2所在的位置,比如lastIndexOf(\"HI,UAP2006, UAP\返回3. 对应类:nc.vo.pub.formulaset.function.IndexOf

类型返回值表

参数st1 java.lang.String 注:参数都不能为null

参数st2 java.lang.String 返回值 Integer, 与Java中String类方法indexOf返回结果相同,如果不存在返回-1 1.5 isEmpty(str) 公式含义

用于判断变量是否为空,包括空串(\"\")及空值(null) 对应类:nc.vo.pub.formulaset.function.IsEmpty

类型返回值表

参数str java.lang.String null 其他任何对象 返回值 UFBoolean;如果str为””,返回UFBoolean.TRUE,否则返回UFBoolean.FALSE UFBoolean.TRUE UFBoolean.FALSE 1.6 lastIndexOf(st1, st2) 公式含义

判断字符串st1中最后一个字符串lastIndexOf(\"HI,UAP2006,UAP\返回11. 对应类:nc.vo.pub.formulaset.function.LastIndexOf

st2

所在的位置,比如

类型返回值表

参数st1 java.lang.String 注:参数都不能为null

参数st2 java.lang.String 返回值 Integer, 与Java中String类方法lastIndexOf返回结果相同,如果不存在返回-1 1.7 left(st, index) 公式含义

求字符串st左边前index个字符组成的字符串 对应类:nc.vo.pub.formulaset.function.Left

类型返回值表

参数st java.lang.String 参数index java.lang.Object(其toString()方法一定要可以parse为int) 返回值 java.lang.String, 与Java中String类方法subString(0,index)返回结果相同,如果index>st字符串的长度,抛异常 注:参数均不能为null。

1.8 leftStr(st,len,defaultStr) 公式含义

求字符串st左边前len个字符组成的字符串,如果字符串长度小于len,则用defaultStr补齐,比如leftStr(\"abc\将返回abc@@@. 对应类:nc.vo.pub.formulaset.function.LeftStr

类型返回值表

参数st java.lang.String,长度不能为0 参数len java.lang.Object,但其toString()方法要能转换为int值 参数defaultStr java.lang.String,长度不能为0 返回值 java.lang.String,将str的字符串值从左侧进行截取,如果长度不够len,则用defaultStr补齐 注:参数都不能为null。补齐时的策略:如果一个defaultStr不够,可重复多个。比如leftStr(“abc”, 6, “ef”)返回abcefe。

1.9 length(st) 公式含义

求字符串st的长度

对应类:nc.vo.pub.formulaset.function.Length

类型返回值表

参数st java.lang.String 返回值 Integer, 与String的length方法返回结果相同 null 0 1.10 mid(String st, int start, int end) 公式含义

求字符串st左边前第start个字符至第end个字符之间的字符串 对应类:nc.vo.pub.formulaset.function.Mid

类型返回值表

参数st java.lang.String,长度不能为0 参数start java.lang.Object,但其toString()方法要能转换为int值 参数end java.lang.Object,但其toString()方法要能转换为int值 返回值 java.lang.String,与String中的方法subString(start, end) 注:参数均不可以为null, 此方法会检查start和end,当start<0, end>st字符串的长度或start>end时抛出异常。

1.11 right(String st, int index) 公式含义

求字符串st右边前index个字符组成的字符串 对应类:nc.vo.pub.formulaset.function.Right

类型返回值表

参数st java.lang.String 参数index java.lang.Object(其toString()方法一定要可以parse为int) 返回值 java.lang.String, 与Java中String类方法subString(st.length()-index)返回结果相同,如果index>st字符串的长度,抛异常 注:参数均不能为null。

1.12 rightStr(st,len,defaultStr) 公式含义

求字符串st右边后len个字符组成的字符串,如果字符串长度小于len,则用defaultStr补齐,比如rightStr(\"abc\将返回abc@@@. 对应类:nc.vo.pub.formulaset.function.RightStr

类型返回值表

参数st java.lang.String,长度不能为0 参数len java.lang.Object,但其toString()方法要能转换为int值 参数defaultStr java.lang.String,长度不能为0 返回值 java.lang.String,将str的字符串值从右侧进行截取,如果长度不够len,则用defaultStr补齐 注:参数都不能为null。补齐时的策略:如果一个defaultStr不够,可重复多个。比如leftStr(“abc”, 6, “ef”)返回abcefe。

1.13 startsWith(String st, String start) 公式含义

判断字符串st是否以字符串start开头

对应类:nc.vo.pub.formulaset.function.StartsWith

类型返回值表

参数string java.lang.String 参数end java.lang.String 返回值 nc.vo.pub.lang.UFBoolean,与Java中String类方法startsWith返回结果相同,只不过返回UFBoolean UFBoolean.FALSE UFBoolean.FALSE UFBoolean.TRUE null 除null以外任何对象 null 除null以外任何对象 null null 1.14 toLowerCase(String st) 公式含义

求字符串st的小写形式,比如toLowerCase(\"Abc\")返回\"abc\"。 对应类:nc.vo.pub.formulaset.function.ToLowerCase

类型返回值表

参数st java.lang.String 注:参数不能为null。

返回值 java.lang.String, 与String的toLowerCase方法返回结果相同 1.15 toString(obj) 公式含义

将对象obj转换为本解析器可识别的字符串形式。 对应类:nc.vo.pub.formulaset.function.ToString

类型返回值表

参数st null 其他的java.lang.Object 返回值 java.lang.String, “null” java.lang.String,返回toString()方法的内容 nc.vo.pub.formulaset.util.NullZeroNumber java.lang.String,”” 1.16 toUpperCase(String st) 公式含义

求字符串st的大写形式。

对应类:nc.vo.pub.formulaset.function.ToUpperCase

类型返回值表

参数st java.lang.String 注:参数不能为null。

返回值 java.lang.String, 与String的toUpperCase方法返回结果相同 1.17 trimZero(value, [decimal]) 公式含义

剪除字符串或数字str的末尾0值, var:表示待截取的值,可以为数值也可以为字符,若字符型不能转换为数值则返回原值(如\"8.023a\")。

[decimal]:可选项,表示精度值(即小数点后的位数). trimZero(\"8.023000\"); //return \"8.023\" trimZero(8.023000); //return 8.023

trimZero(\"8.023000a\"); //return \"8.023000a\" trimZero(\"8.023000\

对应类:nc.vo.pub.formulaset.function.TrimZero

类型返回值表

参数value java.lang.String 参数decimal java.lang.Object,但其toString方法要能转换成int值 同上 同上 返回值 如果String可以直接转成UFDouble,返回具体精度的UFDouble,否则直接返回value。特别地,当value长度为0时返回UFDouble(0.0) 返回具体精度的UFDouble 将value转换为double后,再按照精度转换成UFDouble 直接返回value null UFDouble Number 任何其他java.lang.Object 同上 null 同上 注:参数decimal可以不写,此时默认为-1(int),如果设置decimal的值,则其不能为null。

2. 数学函数

2.1 abs(num) 公式含义

求数num的绝对值

对应类:nc.vo.pub.formulaset.function.Abs

类型返回值表

参数num Integer Number 注:参数值不能为null。

返回值 Integer, 与Math.abs(int)方法返回结果相同 Double, 与Math.abs(double)方法返回结果相同 nc.vo.formulaset.coretype.Complex Double,与Complex返回结果相同 2.2 acos(x) 公式含义

返回一个弧度x的反余弦(arccos),弧度值在0到Pi之间 对应类:nc.vo.pub.formulaset.function.ArcCosine

类型返回值表

参数num Number 返回值 Double, 与Math.acos(double)方法返回结果相同 nc.vo.formulaset.coretype.Complex Double,与Complex.acos():返回结果相同 注:参数不能为null。Complex.acos():acos(z) = -i * log( z + i * sqrt(1 - z*z) )。

2.3 add(num1,num2) 公式含义

用于高精度加法运算。

对应类:nc.vo.pub.formulaset.function.AddBigNumber。

类型返回值表

参数num1 UFDouble 参数num2 null UFDouble Number null Number 注:其他的情况下,将会用普通+的方式进行运算

UFDouble 返回值 UFDouble: num1 UFDouble:num1+num2 UFDouble:num1+num2 UFDouble:num2 UFDouble:num1+num2 2.4 asin(x) 公式含义

返回一个弧度x的反正弦(arcsin),弧度值在-Pi/2到Pi/2之间 对应类:nc.vo.pub.formulaset.function.ArcSine

类型返回值表

参数num Number Complex 返回值 Double, 与Math.asin(double)方法返回结果相同 Double,与Complex.asin():返回结果相同 注:参数不能为null。 Complex.asin(): asin(z) = -i * log(i*z + sqrt(1 - z*z))。

2.5 atan(x) 公式含义

返回一个弧度x的反正切值,弧度值在-Pi/2到Pi/2之间

对应类:nc.vo.pub.formulaset.function.ArcTangent

类型返回值表

参数x Number Complex 返回值 Double, 与Math.atan(double)方法返回结果相同 Double,与Complex.atan():返回结果相同 注:参数不能为null。

Complex.atan():atan(z) = -i/2 * log((i-z)/(i+z))。

2.6 cos(x) 公式含义

返回给定角度x的余弦值

对应类:nc.vo.pub.formulaset.function.Cosine

类型返回值表

参数x Number Complex 返回值 Double, 与Math.cos(double)方法返回结果相同 Double,与Complex.cos():返回结果相同 注:参数不能为null。

Complex.cos():cos(z) = ( exp(i*z) + exp(-i*z) ) / 2。

2.7 div(num1,num2) 公式含义

用于高精度除法运算

对应类:nc.vo.pub.formulaset.function.DivideBigNumber

类型返回值表

参数num1 UFDouble 参数num2 null UFDouble Number 返回值 UFDouble: num1 UFDouble:num1.div(num2) UFDouble: num1.div(num2) null Number UFDouble UFDouble:num2 UFDouble: num1.div(num2) 注:其他情况下,会使用/操作进行运算

2.8 exp(x) 公式含义

e的x次方

对应类:nc.vo.pub.formulaset.function.Exp

类型返回值表

参数x Number Complex 注:参数不能为null

返回值 Double, 与Math.exp(x.doubleValue())方法返回结果相同 Complex, new Complex(mod*Math.cos(y),mod*Math.sin(y)) 2.9 int(x) 公式含义

将变量转换为int类型;

对应类:nc.vo.pub.formulaset.function.IntValue

类型返回值表

参数x Number String 注:参数不能为null

返回值 Integer, new Integer(Math.round(x.floatValue())) Integer, new Integer (Math.round(new Double(x.toString()).floatValue)) 2.10 ln(x) 公式含义

返回给定数值x的自然对数;

对应类:nc.vo.pub.formulaset.function.NaturalLogarithm

类型返回值表

参数x Number Complex 注:参数不能为null

返回值 Complex, new Complex(param.doubleValue()).log() Complex, x.log() 2.11 log(x) 公式含义

返回给定数n的以十为底的对数;

对应类:nc.vo.pub.formulaset.function.Logarithm

类型返回值表

参数x Number Complex 注:参数不能为null

返回值 Complex, new Complex(Math.log(10), 0)) Complex(x.doubleValue()).log().div(new Complex, x.log().div(new Complex(Math.log(10),0)) 2.12 max(x, y) 公式含义

求数字x,y两者中的最大值

对应类:nc.vo.pub.formulaset.function.Max

类型返回值表:

参数x Number Comparable Object 参数y Number Object Comparable 返回值 Number,x.doubleValue()与y.doubleValue()比较,>返回x,其余返回y x.compareTo(y) ,>0返回x,<0返回y -y.compareTo(x) ,>0返回x,<0返回y 注:参数不能为null,Comparable:java.lang.Comparable。

2.13 min(x, y) 公式含义

求x,y两者中的最小值;

对应类:nc.vo.pub.formulaset.function.Min

类型返回值表

参数x Number 参数y Number 返回值 Number, x.doubleValue()与y.doubleValue()比较,>返回x,其余返回y x.compareTo(y)进行比较,>0返回y,<0返回x -y.compareTo(x)进行比较,>0返回y,<0返回x Comparable Object

Object Comparable 2.14 mul(num1,num2) 公式含义

用于高精度乘法运算;

对应类:nc.vo.pub.formulaset.function.MultiplyBigNumber

类型返回值表

参数num1 参数num2 返回值 UFDouble null UFDouble Number UFDouble: num1 UFDouble:num1.multiply(num2) UFDouble: num1. multiply (num2) UFDouble:num2 UFDouble: num1. multiply (num2) null Number UFDouble 注:其他情况下,会使用*操作进行运算

2.15 round(double num, int index) 公式含义

对num保留index位小数(四舍五入);

对应类:nc.vo.pub.formulaset.function.Round

类型返回值表

参数x String UFDouble Number 参数y Number Number Number 返回值 new UFDouble(x).setScale(y,UFDouble.ROUND_HALF_UP) new UFDouble(x).setScale(y,UFDouble.ROUND_HALF_UP) new UFDouble(x). setScale(y,UFDouble.ROUND_HALF_UP) 注:返回类型均为UFDouble,参数不能为null

2.16 sgn(num) 公式含义

当数num大于0时,返回1,等于0时,返回0,小于0时返回-1; 对应类:nc.vo.pub.formulaset.function.Sgn

类型返回值表

参数num Number 注:参数不能为null

返回值 Double,判断num.doubleValue()与0之间的关系,>时返回1,=时返回0, <时返回-1 2.17 sin(x) 公式含义

返回给定角度x的正弦值;

对应类:nc.vo.pub.formulaset.function.Sine

类型返回值表

参数num Number Complex 注:参数不能为null

返回值 new Double(Math.sin(((Number)param).doubleValue())) Complex,((Complex)param).sin() 2.18 sqrt(x) 公式含义

返回数值x的平方根;

对应类:nc.vo.pub.formulaset.function.SquareRoot

类型返回值表

参数x Number Complex 注:参数不能为null

返回值 x.doubleValue()<0,返回new Complex(value).sqrt(),即Complex; x.doubleValue()<0,返回new Double(Math.sqrt(x)),即Double Complex,((Complex)param).sqrt() 2.19 sub(num1,num2) 公式含义

用于高精度减法运算;

对应类:nc.vo.pub.formulaset.function.SubtractBigNumber

类型返回值表

参数num1 UFDouble 参数num2 null UFDouble Number null Number 注:其他的情况下,将会用普通-的方式进行运算

UFDouble 返回值 UFDouble: num1 UFDouble:num1-num2 UFDouble:num1-num2 UFDouble:num2 UFDouble:num1-num2 2.20 tan(x) 公式含义

返回给定角度x的正切值;

对应类:nc.vo.pub.formulaset.function.Tangent

类型返回值表

参数x Number Complex 返回值 Double,new Double(Math.tan(((Number)param).doubleValue())) Complex,((Complex)param).tan() 注:参数类型不能为null

2.21 toNumber(String st) 公式含义

将字符串st转换为本解析器可识别的数字,比如toNumber(\"45.0\")将返回一个数字型45.0,经过转化后可参与各种数值计算.

对应类:nc.vo.pub.formulaset.function.ToNumber

类型返回值表

参数st String 返回值 st.toString()==null或trim().length()==0,返回new UFDouble(0); new UFDouble(st.toString().trim()) Number Number,st 注:参数类型不能为null

2.22 zeroifnull(var) 公式含义

表示如果var为空将返回0;

对应类:nc.vo.pub.formulaset.function.ZeroIfNull

类型返回值表

参数var null String 其他情况 返回值 new Double(0) 如果var.length==0,返回new Double(0) var 注:参数类型不能为null

2.23 acosh(param) 公式含义

acosh(z) = log(z + sqrt(z*z - 1))

对应类:nc.vo.pub.formulaset.function.ArcCosineH

类型返回值表

参数param Number Complex

返回值 Complex: new Complex(((Number)param).doubleValue(),0.0).acosh() Complex: ((Complex)param).acosh() 2.24 angle(x,y) 公式含义

对应类:nc.vo.pub.formulaset.function.Angle

类型返回值表

参数x Number 参数y Number 返回值 Double: new Double(Math.atan2(x.doubleValue(), y.doubleValue())) 2.25 asinh(param) 公式含义

asinh(z) = log(z + sqrt(z*z + 1))

对应类:nc.vo.pub.formulaset.function.ArcSineH

类型返回值表

参数param Number Complex 返回值 Complex: new Complex(((Number)param).doubleValue(),0.0).asinh() Complex: ((Complex)param).asinh() 2.26 atanh(param) 公式含义

asinh(z) = log(z + sqrt(z*z + 1))

对应类:nc.vo.pub.formulaset.function.ArcTanH

类型返回值表

参数param Number 返回值 Complex: new Complex(((Number)param).doubleValue(),0.0).atanh() Complex Complex: ((Complex)param).atanh() 2.27 cosh(param) 公式含义

cosh(z) = ( exp(z) + exp(-z) ) / 2

对应类:nc.vo.pub.formulaset.function.CosineH

类型返回值表

参数param Number Complex 返回值 Double: new Math.exp(-value))/2) Double((Math.exp(param.doubleValue()) + Complex: ((Complex)param).cosh() 2.28 mod(x, y) 公式含义

求模运算

对应类:nc.vo.pub.formulaset.function.Modulus

类型返回值表

参数x Integer Number 参数y Integer Number 返回值 Integer: x.intValue()%y.intValue() Double: x.doubleValue()%y.doubleValue() 2.29 rand() 公式含义

生成随机数

对应类:nc.vo.pub.formulaset.function.Random

类型返回值表

返回new Double(Math.random())

2.30 sinh(param) 公式含义

sinh(z) = ( exp(z) - exp(-z) ) / 2

对应类:nc.vo.pub.formulaset.function.SineH

类型返回值表

参数param Number Complex 返回值 Double: new Double((Math.exp(param.doubleValue()) - Math.exp(-value))/2) Complex: ((Complex)param).sinh() 2.31 sum(x,y) 公式含义

计算两个数的和

对应类:nc.vo.pub.formulaset.function.Sum

类型返回值表

参数x Integer Number 参数y Integer Number 返回值 Integer Number 注:从实现上来看,sum与add函数相比,只是用于可变参数,即可以写出类似sum(a,b,c,d……)的函数来。

2.32 tanh(param) 公式含义

tanh(z) = sinh(z) / cosh(z)

对应类:nc.vo.pub.formulaset.function.TanH

类型返回值表

参数param Number 返回值 Double: value=param.doubleValue(); new Double((Math.exp(value)-Math.exp(-value))/ (Math.pow(Math.E,value) +Math.pow(Math.E,-value))) Complex: ((Complex)param).tanh() Complex

3. 数据库函数

注:数据库函数中,getColValueMore和getColValueMoreWithCond函数由于参数的可变性,不能进行嵌套使用(也就是不能嵌套在其他公式函数中,判断变量长度可能会有错误)。 数据库函数中有些函数为了简写,可以在设置时不用”来表示字符串,比如getColValue(因此参数位置是固定的,这些函数包括getColValue, getColValue2, getColNmv, getColValueNmv2, cvs, cvn, getColValueRes),但是有些函数,如果用常量字符串表示表名称和字段名称,那么就必须用双引号表名和自动名称括起来(比如getColValueMore(“tableName”,”fieldName”,”selectedField”,var,”selectedField2”, var2))。

3.1 ass(freevalueID,checktype) 公式含义

关于会计平台中辅助核算的函数,从gl_freevalue表中根据freevalueID及checktype返回checkvalue。

对应类:nc.vo.pub.formulaset.function.ClientAss

类型返回值表

只是查询特定的表,返回值为checkvalue字段的String表示

3.2 cvn(tablename,fieldname,pkfield,pkvalue) 公式含义

根据主键从数据库查询特定字段的值,其返回的值将直接作为数字使用 对应类:nc.vo.pub.formulaset.function.Cvn

类型返回值表

与getColValue相同。

3.3 cvs(tablename,fieldname,pkfield,pkvalue) 公式含义

根据主键从数据库查询特定字段的值,其返回的值将直接作为字符串使用。 对应类:nc.vo.pub.formulaset.function.Cvn

类型返回值表

与getColValue相同。

3.4 getColNmv(tablename,fieldname,pkfield,pkvalue) 公式含义

根据主键从数据库查询特定字段的值,其返回的值将直接作为数字使用,其功能类似SQL语句:select fieldname from tablename where pkfield = pkvalue 从这条SQL语句可以看出各个参数的含义。

对应类:nc.vo.pub.formulaset.function.GetColNmV

类型返回值表

与getColValue相同。

3.5 getColNmv2(tablename,fieldname,pkfield1,pkvalue1,

pkfield2,pkvalue2) 公式含义

根据主键从数据库查询特定字段的值,其返回的值将直接作为数字使用,其功能类似SQL语句:select fieldname from tablename where pkfield1 = pkvalue1 and pkfield2 = pkvalue2. 从这条SQL语句可以看出各个参数的含义。 对应类:nc.vo.pub.formulaset.function.GetColNmV2

类型返回值表

与GetColValue2相同。

3.6 GetColsValue(\"tablename\

\公式函数

fieldname1,fieldname2->getColsValue(\"tablename\alue)根据主键从数据库查询多个字段的值,左边待赋值的字段要用逗号分割,注意里面的字段,表名要用双引号扩起来。

对应类:nc.vo.pub.formulaset.function.GetColsValue

类型返回值表

此公式中参数是可变的,但是第一个参数必须为表名称(String),倒数第二个参数为主键字段名称(String),倒数第一个参数为主键值(可以为List或String,如果为List代表可以同时查询多个值),中间可以为多个,但只能是数据库表列名称。返回值Object[][],其中Object[0][0]为第一个字段的第一个值,Object[1][0]为第二个字段的第一个值。

3.7 getColValue(tablename,fieldname,pkfield,pkvalue) 公式含义

根据主键从数据库查询特定字段的值,其功能类似SQL语句:select fieldname from tablename where pkfield = pkvalue 从这条SQL语句可以看出各个参数的含义。

对应类:nc.vo.pub.formulaset.function.GetColValue

类型返回值表

此公式中tablename(数据库表名称),fieldname(要查询的字段名称),pkfield(主键字段名称)均为String类型,pkValue(主键值)可以为List或String,如果为List则查询出多个值。返回值Object[][],如果查询多个则放置在Object[0][0……i]中。

3.8getColValue2(tablename,fieldname,pkfield1,pkvalue1,pkfield2,pkvalue2) 公式含义

根据主键从数据库查询特定字段的值,其功能类似SQL语句:select fieldname from tablename where pkfield1 = pkvalue1 and pkfield2 = pkvalue2. 从这条SQL语句可以看出各个参数的含义。

对应类:nc.vo.pub.formulaset.function.GetColValue2

类型返回值表

此公式中tablename(数据库表名称),fieldname(要查询的字段名称),pkfield1、pkfield(主键字段名称)均为String类型,pkValue1、pkValue2(主键值)可以为List或String,如果为List则查询出多个值。返回值Object[][],如果查询多个则放置在Object[0][0……i]中。

3.9getColValueMore(tablename,selectfield,field1,value1,field2,value2....) 公式含义

根据多个字段的条件查询某个表字段的值,其功能类似SQL语句:select selectfield from tablename where field1=value1 and field2=value2 and ……。 对应类:nc.vo.pub.formulaset.function.GetColValueMore

类型返回值表

其中tablename,selectfield,field1,field2都是String类型,value1,value2为List或String,参数数量是可变的,以此类推,还可以添加field3,value3。返回值Object[][],如果查询多个则放置在Object[0][0……i]中。

3.10getColValueMoreWithCond(tablename,selectfield,field1,value1,field2,value2...,whereCondition) 公式含义

与getColValueMore不同的是,在最后还可以加一个whereCondition。 对应类:nc.vo.pub.formulaset.function.GetColValueMoreWithCond

类型返回值表

其中tablename,selectfield,field1,field2,whereCondition都是String类型,value1,value2为List或String,参数数量是可变的,以此类推,还可以添加field3,value3。返回值Object[][],如果查询多个则放置在Object[0][0……i]中。

3.11getMLCValue(tablename,fieldname,pkfield,pkvalue) 公式含义

根据主键从数据库查询特定当前登录语种对应名称字段的值。如果当前字段没有多语的

值,那么就使用默认的简体中文值。 对应类:nc.vo.pub.formulaset.function.getMLCValue

类型返回值表

其中返回值与getColValue函数相同。

4. 财务函数

4.1 getChineseCurrency(Object) 公式含义

将传入的字符串或数字转换为大写金额。

对应类:nc.vo.pub.formulaset.function.GetChineseCurrency

类型返回值表

参数Object String(\"3142.56\") Number(UFDouble:3232.20) 注:参数不能为null。

返回值 String (\"叁仟壹佰肆拾贰元伍角陆分\") String(\"叁仟贰佰叁拾贰元贰角整\") 4.2 getEnglishCurrency(mark,number) 公式含义

将数字金额转为英文文本描述,其中mark指的是最后返回的符号。 对应类:nc.vo.pub.formulaset.function.GetEnglishCurrency

类型返回值表

参数mark 参数number String($) String(^) Number(3232.20) 返回值 String (\"$ THREE THOUSAND TWO HUNDRED THIRTY TWO AND CENTS TWENTY ONLY\") String(\"3142.56\String(^ THREE THOUSAND ONE HUNDRED FORTY TWO AND CENTS FIFTY SIX ONLY) 注:参数不能为null。

4.3 setThMark(num) 公式含义

将传入的字符串或数字转为金额后加入千分位标志,,如果希望保留数字后面的0,则需要先将数字转为字符串,然后再用setThMark()函数,比如setThMark(toString(56510.000))。

对应类:nc.vo.pub.formulaset.function.SetThMark

类型返回值表

参数num String(\" 111968.300\") Number(UFDouble: 12741.23) 注:参数不能为null。

返回值 String (\"111,968.300\") String(\"12,741.23\") 4.4 toChinese(Object number,int flag1,int flag2) 公式含义

将传入的字符串或数字转换为中文。

对应类:nc.vo.pub.formulaset.function.GetChineseValue

类型返回值表

参数number UFDouble String Number 参数flag1 Number Number Number 参数flag2 Number Number Number 返回值 String String String 注:参数不能为null。

int type = (((Double)flag1).doubleValue() > 0) ? 1:0; 参数flag1切换大小写,“五千四百三十(1)“或”伍仟肆佰叁拾(1)”

boolean bOneByOne = (((Double)flag2).doubleValue() > 0) ? true:false; 参数flag2标识是否显示单位“仟、佰、拾”等,false时显示,true不显示。 number为要显示的数值,必须可以转换为数字。

5. 日期类型

日期函数中,对字符串日期类型都作了一个转换来获得需要的UFDate, UFTime, UFDateTime等类型。转换的规则为:如果字符串中包含’-’和’:’,转换成对应的UFDateTime;如果仅包含’-’,转换成对应的UFDate;如果仅包含’:’,转换成UFDateTime,其中Date采用当前日期。此外,要保证日期字符串的正确性,不能写出类似”1999-02-30”的日期来,否则会转换错误。

5.1 compareDate(date1, date2, field) 公式含义

用于日期比较,返回两个日期指定时间域的差值,可比较的时间域包括\"Y\"-比较年;\"M\"-比较月;\"D\"-比较日;\"H\"-比较小时;\"m\"-比较分钟;\"S\"-比较秒.比如:compareDate(\"2005-12-27 23:12:10\将返回两个日期相差的秒数。 对应类:nc.vo.pub.formulaset.function.CompareDate

类型返回值表

参数date1 参数date2 参数field “Y” “M” “D” “H” “m” “s” 返回值 Integer,比较年份,>返回正数;<返回负数;=返回0 同上,比较月份 同上,比较天 同上,比较小时 同上,比较分钟 同上,比较秒 String/UFDateTime String/UFDateTime String /UFDate/UFTime /UFDate/UFTime 注:参数均不能为null,其中data1/date2为UFDate,UFTime类型时转换成UFDateTime规则为,UFDate:new UFDateTime((UFDate)param1, null); UFTime:new UFDateTime(null, (UFTime)param1)。如果field不等于其中列出的值,会抛出异常。

5.2 date() 公式含义

返回当前日期

对应类:nc.vo.pub.formulaset.function.Date

类型返回值表

返回当前日期,类型UFDate

5.3 dateAdd(date1, num, fieldchar) 公式含义

返回在指定日期的年、月或者日上增加某个值num,可增加的时间域fieldchar包括\"Y\"-增加年;\"M\"-增加月;\"D\"-增加日;\"H\"-增加小时;\"m\"-增加分钟;\"S\"-增加秒.比如dateAdd(\"23:13:23\表示对前面的时间增加一小时。

对应类:nc.vo.pub.formulaset.function.DateAdd

类型返回值表

参数date1 参数num 参数fieldchar “Y” “M” “D” “H” “m” “s” 返回值 UFDate/UFDateTime/UFTime,对年份域加相应的值 同上,月份域加相应的值 同上,天域加相应的值 同上,小时域加相应的值 同上,分钟域加相应的值 同上,秒域加相应的值 String/UFDateTime toString()方法要String /UFDate/UFTime 能够转换成int值 注:参数均不能为null,其中data1为UFDate时返回UFDate;为UFTime时返回UFTime为UFDateTime时返回UFDateTime;为String时视转换的时间类型而定(见本章开头)。如果field不等于其中列出的值,会抛出异常。

5.4 dateFormat(date, pattern) 公式含义

用于将时间格式化为期望的字符串,其中date可以是时间字符串,也可以是Date对象,pattern为格式化参数,yyyy表示年,MM表示月,dd表示天数,HH表示小时,mm表示分钟,ss表示秒.比如dateFormat(\"2006-07-04 12:12:12\\"日期:yyyy-MM-dd HH:mm:ss\") 将返回\"日期:2006-07-04 12:12:12\".

对应类:nc.vo.pub.formulaset.function.DateFormat

类型返回值表

参数date String UFDate UFDateTime UFTime 参数pattern String String String String 返回值 UFDate/UFDateTime/UFTime String String String 注:参数不能为null,具体转换策略见公式含义,与Java中定义的方法相同。date为String时视转换的时间类型而定(见本章开头)。

5.5 datetime() 公式含义

返回当前日期和时间

对应类:nc.vo.pub.formulaset.function.DateTime

类型返回值表

返回当前日期时间,类型UFDateTime

5.6 day () 公式含义

求当前天数

对应类:nc.vo.pub.formulaset.function.Day

类型返回值表

获取当前日期是多少号的数值,转换成String

5.7 dayOf(date) 公式含义

求日期date的天数

对应类:nc.vo.pub.formulaset.function.DayOf

类型返回值表

参数date String UFDate

返回值 String String 5.8 month () 公式含义

求当前月份

对应类:nc.vo.pub.formulaset.function.Month

类型返回值表

获取当前月份的数值,转换成String

5.9 monthOf(date) 公式含义

求日期date的月份

对应类:nc.vo.pub.formulaset.function.MonthOf

类型返回值表

参数date String 返回值 String UFDate String 5.10 time() 公式含义

取得当前时间,格式是HH:mm:SS

对应类:nc.vo.pub.formulaset.function.Time

类型返回值表

返回当前时间,类型UFTime

5.11 toDate(str) 公式含义

将字符串格式的时间str转换成UFDate对象 对应类:nc.vo.pub.formulaset.function.ToDate

类型返回值表

参数str String UFDate UFDateTime Date 返回值 UFDate/UFDateTime UFDate UFDate,只取其中的UFDate UFDate,转换成UFDate 注:参数不能为null,其中如果为String,要进行转换(本章开头)。

5.12 toDateTime(str) 公式含义

将字符串格式的时间str转换成UFDateTime对象,比如toDateTime(\"2006-10-15 21:01:01\").

对应类:nc.vo.pub.formulaset.function.ToDateTime

类型返回值表

参数str String 返回值 UFDateTime 注:参数不能为null,其中进行转换原则与开头稍有不同,如果String中不包”:”,转换时加入无时间信息,设置为空。

5.13 toTime(str) 公式含义

将字符串格式的时间str转换成UFTime对象; 对应类:nc.vo.pub.formulaset.function.ToTime

类型返回值表

参数str String 返回值 UFDateTime 注:参数不能为null,其中进行转换原则与开头稍有不同,如果String中不包”:”,转换时加入加入当前时间信息。

5.14 year () 公式含义

求当前年

对应类:nc.vo.pub.formulaset.function.Year

类型返回值表

获取当前年的数值,转换成String

5.15 yearOf(date) 公式含义

求日期date的年

对应类:nc.vo.pub.formulaset.function.YearOf

类型返回值表

参数date String UFDate

返回值 String String 5.16 dayWeek() 公式含义

求当前天是星期几 Sunday-Monday-Saturday 0-6 对应类:nc.vo.pub.formulaset.function.DayWeek

类型返回值表

返回值String,将int值进行转换过的

5.15 dayWeek Of(date) 公式含义

求当前天是星期几 Sunday-Monday-Saturday 0-6 对应类:nc.vo.pub.formulaset.function.DayWeekOf

类型返回值表

参数date String UFDate 返回值 String String

6. 基本类型

6.1 iif(condition, result1, result2) 公式含义

简单的if语句,当condition为true时返回result1;当condition为false时返回result2 对应类:nc.vo.pub.formulaset.function.If

类型返回值表

null BooleanObject/UFBoolean Number String 该公式中主要是判断条件condition上: 参数result1 参数result2 返回值 Object Object result2 根据布尔值true(result1);false(result2) param.intValue返回否>0(result1),<0(result2) 判值断是参数param “0”,”N”,”FALSE”(忽略大小写)返回result2; 否则返回result1 6.2 比较操作(<,>,<=,>=,!=,=) 公式含义

进行基本比较的操作

对应类:nc.vo.pub.formulaset.function.Comparative

类型返回值表

左操作数x Number Complex 右操作数y Number Complex 返回值 UFBoolean.TRUE/FALSE 只能比较!=,=操作 null Object UFBoolean/Boolean String(“TRUE”,”Y”,”1”被认为是true) UFDate Object null String(“TRUE”,”Y”,”1”被认为是true) UFBoolean/Boolean 只能比较!=,=操作;仅当y为null认为相等 只能比较!=,=操作;仅当x为null认为相等 String(转换UFDate. getDate(y.toString())) ((Comparable)x).compareTo(y) -((Comparable)y).compareTo(x) String (转换UFDate. UFDate getDate(x.toString())) Comparable Object Object Comparable 注:返回值均为UFBoolean.TRUE/FALSE(int i>0?true:false,如果为Comparable则分析比较结果是否>0)

6.3 逻辑操作(&&,||,!) 公式含义

逻辑与,或,非操作

对应类:nc.vo.pub.formulaset.function.Logical;nc.vo.pub.formulaset.function.Not

类型返回值表

返回类型为UFBoolean。逻辑与、或操作将左右两边的值都进行一个转换,转换成Integer操作,在Integer上进行判断。

&&:r = ((x!=0d) && (y!=0d)) ? UFBoolean.TRUE : UFBoolean.FALSE; ||:r = ((x!=0d) || (y!=0d)) ? UFBoolean.TRUE : UFBoolean.FALSE; !: (((Number)x).doubleValue() == 0) ? UFBoolean.TRUE : UFBoolean.FALSE 转换成Integer的策略为: param null BooleanObject/UFBoolean Number String Boolean 0 true?1:0 param.intValue() “0”,”N”,”FALSE”(忽略大小写)返回0; 否则返回1 6.4 +操作 公式含义

加法操作

对应类:nc.vo.pub.formulaset.function.Add

类型返回值表

参数num1 IAddOperator Object NullZeroNumber Integer Number 参数num2 Object IAddOperator NullZeroNumber Integer Number Complex String null Complex Number Complex String null String null null String String null String null Number 返回值 Object:IAddOperator.add(Object)结果,num1.add(num2) Object:IAddOperator.add(Object)结果,num2.add(num1) NullZeroNumber:num1 Integer:num1+num2 Double:num1+num2 String: num1.toString+num2 Double: num1+0 Complex:num1+num2,只是将num2加到num1的实部上 Complex:num1+num2,两者实部和虚部分别相加 String: num1 +num2.toString 0+num2 String: num1+num2 String:”” ““+num2 num1+““ 注:其他的情况下,将会返回null IAddOperator:nc.vo.pub.formulaset.operator.IAddOperator

6.5 -操作 公式含义

减法操作

对应类:nc.vo.pub.formulaset.function.Subtract

类型返回值表

参数num1 ISubOperator Integer Number 参数num2 Object Integer Number Complex null Complex Number Complex null Number 返回值 Object:ISubOperator.sub(Object)结果,num1.sub(num2) Integer:num1-num2 Double:num1-num2 Complex:new Complex(num1.doubleValue() – num2.re(), -num2.im()) Double: num1-0 Complex:new Complex(num1.re() num2.doubleValue(), num1.im()) – Complex: new Complex(num1.re() - num 2.re(),num 1.im() - num 2.im()) Double: 0-num2.doubleValue() 注:其他的情况下,将会返回null ISubOperator:nc.vo.pub.formulaset.operator.ISubOperator

6.6 *操作 公式含义

乘法操作

对应类:nc.vo.pub.formulaset.function.Multiply

类型返回值表

参数num1 IMulOperator Integer Number 参数num2 Object Integer Number Complex Vector Complex Number Complex Vector Vector Number 返回值 Object:IMulOperator.multiply(Object)结果,num1.multiply(num2) Integer:num1*num2 Double:num1*num2 Complex: num2.mul(num1.doubleValue()) ArrayList: 对于num2中每个元素都执行Number*Number操作 Complex: num1.mul(num2.doubleValue()) Complex: num1.mul(num2) ArrayList: 对于num2中每个元素都执行Complex*Number操作 ArrayList: 对于num1中每个元素都执行Number*Number操作 Complex ArrayList: 对于num1中每个元素都执行Complex*Number操作 注:其他的情况下,将会返回null

IMulOperator:nc.vo.pub.formulaset.operator.IMulOperator

6.7 /操作 公式含义

除法操作

对应类:nc.vo.pub.formulaset.function.Divide

类型返回值表

参数num1 IDivOperator Integer Number 参数num2 Object Integer Number Complex Vector Complex Number 返回值 Object:IDivOperator.div(Object)结果,num1.div(num2) Integer:num1/num2 Double:num1/num2 Complex: new Complex(num1.doubleValue(), 0).div(num2) ArrayList: 对于num2中每个元素都执行Number/Number操作 Complex: new Complex(num1.re() num2.doubleValue(), num1.im() num2.doubleValue()) Complex: num1.div(num2) ArrayList: 对于num2中每个元素都执行Complex/Number操作 ArrayList: 对于num1中每个元素都执行Number/Number操作 ArrayList: 对于num1中每个元素都执行Complex/Number操作 / / Complex Vector Vector Number Complex 注:其他的情况下,将会返回null

IDivOperator:nc.vo.pub.formulaset.operator.IDivOperator

6.8 ^操作 公式含义

返回x的y次方

对应类:nc.vo.pub.formulaset.function.Power

类型返回值表

参数x Number 参数y Number 返回值 如果x<0并且y的doubleValue与intValue不等,返回Complex:new Complex(x.doubleValue(), 0.0) .power(y.doubleValue());否则返回Double: new Double(Math.pow(x.doubleValue(),y.doubleValue())) Number Complex Complex Complex new Complex(x.doubleValue(), 0.0).power(y)判断结果的虚部是否为0,如果为0返回Double:计算结果的实部;否则返回计算结果Complex Number num1.power(num2.doubleValue())判断结果的虚部是否为0,如果为0返回Double:计算结果的实部;否则返回计算结果Complex Complex num1.power(num2) 判断结果的虚部是否为0,如果为0返回Double:计算结果的实部;否则返回计算结果Complex 注:其他情况会抛出异常

6.9 %操作 公式含义

求模运算

对应类:nc.vo.pub.formulaset.function.Modulus

类型返回值表

参数x Integer Number 参数y Integer Number 返回值 Integer: x.intValue()%y.intValue() Double: x.doubleValue()%y.doubleValue() 注:其他情况会抛出异常

7. 关于公式解析的返回值

在FormulaParseFather中有几个方法都是用于获得返回值的,下面就对这些方法进行一

一说明,并给出其应用场景。 方法名称 getValueOArray() 含义 其中最基础的方法,返回二维数组,第一维对应公式数组的个数,第二位对应公式参数的长度 比如有公式: \"a->b+c;d->4*a\" 其中b=[1,2,3,4],c=[2,2,2,2] 那么返回值为一个2*4的二维数组,每一个元素为Integer: 第一维为a = [3,4, 5, 6] 第二维为c = [4,8,12,16] 其中调用了getValueOArray()方法,将其中的结果均转换成了String返回(toString()方法,如果为null返回””) 此方法返回单个公式的执行结果,即getValueOArray()[0] 此方法返回单个公式的执行结果,即getValueSArray()[0] 此方法用于返回单个公式且参数不是数组情况下的运算结果,以字符串方式返回,getValueS()[0] 此方法用于返回单个公式且参数不是数组情况下的运算结果,以对象方式返回,getValueO()[0] getValueSArray() getValueO() getValueS() getValue() getValueAsObject()

因篇幅问题不能全部显示,请点此查看更多更全内容