公式升级

This commit is contained in:
钱涛 2023-05-08 11:21:09 +08:00
parent 0f38b6cbaa
commit ccec800a75
2 changed files with 10 additions and 609 deletions

View File

@ -454,258 +454,6 @@
"infinite": false
}
]
},
{
"name": "ISJSON",
"chineseName": "JSON字符格式化",
"description": "判断是不是JSON字符串参数可以是数组也可以是字符串参数为数组时数组中必须只包含一个字符串。",
"example": "假设文本控件={a:123},ISJSON({文本控件})",
"result": "true",
"paramDescs": [
"*变量或常量*(必选)"
],
"formatString": "ISJSON({变量})",
"paramArray": [],
"paramData": [],
"returnType": "boolean",
"type": "function",
"validForm": "current_data",
"paramCount": 1,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "GETJSONVALUE",
"chineseName": "JSON字符取值",
"description": "获取JSON值。第一个参数为json可以是数组也可以是对象第二个参数为json对象的键值返回键值对应的值json为数组时返回的多个值以逗号分隔",
"example": "假设文本控件={a:123}GetJSONValue('{文本控件}','a')",
"result": "123",
"paramDescs": [
"*变量或常量*(必选)",
"*变量或常量*(必选)"
],
"formatString": "GETJSONVALUE({变量1},变量2)",
"paramArray": [],
"paramData": [],
"returnType": "string",
"type": "function",
"validForm": "current_data",
"paramCount": 2,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "ISINT",
"chineseName": "字符内容是否是整数",
"description": "判断字符内容是否是整数",
"example": "ISINT( 2.123 )",
"result": "false",
"paramDescs": [
"*字符*(必选)"
],
"formatString": "ISINT({字符})",
"paramArray": [],
"paramData": [],
"returnType": "boolean",
"type": "function",
"validForm": "current_data",
"paramCount": 1,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "ISNUMBER",
"chineseName": "字符内容是否是数字",
"description": "判断字符内容是否是数字。",
"example": "ISNUMBER('2.123')",
"result": "true",
"paramDescs": [
"*字符*(必选)"
],
"formatString": "ISNUMBER({字符})",
"paramArray": [],
"paramData": [],
"returnType": "boolean",
"type": "function",
"validForm": "current_data",
"paramCount": 1,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "SPLIT",
"chineseName": "字符分割",
"description": "字符分割函数,将字符以指定字符为依据分割字符为一组字符",
"example": "假设文本控件=ABC#DEFSPLIT('{文本控件}','#')",
"result": "[ABC,DEF]",
"paramDescs": [
"*字符*(必选)",
"*分割符*(必选)"
],
"formatString": "SPLIT({字符},{字符})",
"paramArray": [],
"paramData": [],
"returnType": "string",
"type": "function",
"validForm": "current_data",
"paramCount": 2,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "LOWER",
"chineseName": "字符转小写",
"description": "将字符中的字母转为小写。",
"example": "LOWER('ABC')",
"result": "abc",
"paramDescs": [
"*字符*(必选)"
],
"formatString": "LOWER({字符})",
"paramArray": [],
"paramData": [],
"returnType": "String",
"type": "function",
"validForm": "current_data",
"paramCount": 1,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "UPPER",
"chineseName": "字符转大写",
"description": "将字符中的字母转为大写。",
"example": "UPPER('abc')",
"result": "ABC",
"paramDescs": [
"*字符*(必选)"
],
"formatString": "UPPER({字符})",
"paramArray": [],
"paramData": [],
"returnType": "String",
"type": "function",
"validForm": "current_data",
"paramCount": 1,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "TEXTBEFORE",
"chineseName": "截取N个分割符之前的字符",
"description": "截取N个分割符之前的字符",
"example": "TEXTBEFORE('abc-12','-',1)",
"result": "abc",
"paramDescs": [
"*字符*(必选)",
"*字符*(必选)",
"*变量或常量*(必选)"
],
"formatString": "TEXTBEFORE({目标文本},{分隔符},{索引下标})",
"paramArray": [],
"paramData": [],
"returnType": "String",
"type": "function",
"validForm": "current_data",
"paramCount": 3,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "number",
"must": true,
"infinite": false
}
]
},
{
"name": "TEXTAFTER",
"chineseName": "截取N个分隔符之后的字符",
"description": "截取N个分隔符之后的字符",
"example": "TEXTAFTER('abc-12','-',1)",
"result": "12",
"paramDescs": [
"*字符*(必选)",
"*字符*(必选)",
"*变量或常量*(必选)"
],
"formatString": "TEXTAFTER({目标文本},{分隔符},{索引下标})",
"paramArray": [],
"paramData": [],
"returnType": "String",
"type": "function",
"validForm": "current_data",
"paramCount": 3,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "number",
"must": true,
"infinite": false
}
]
}
],
"dataType": "char",
@ -1232,159 +980,6 @@
"infinite": true
}
]
},
{
"name": "COMPAREDATE",
"chineseName": "返回两个日期指定时间的差值",
"description": "日期比较,返回两个日期指定时间域的差值。可比较的时间域包括'Y'-比较年;'M'-比较月;'D'-比较日;'H'-比较小时;'I'-比较分钟;'S'-比较秒。",
"example": "假设 日期1=2022-04-03、日期2=2022-04-04COMPAREDATE({日期1},{日期2},'D')",
"result": "1",
"paramDescs": [
"*日期1*(必选)",
"*日期2*(必选)",
"*比较类型*(可选)"
],
"formatString": "COMPAREDATE(日期1日期2[比较类型])",
"paramArray": [],
"paramData": [],
"returnType": "date",
"type": "function",
"validForm": "current_data",
"paramCount": 3,
"paramStatuses": [
{
"dataType": "date",
"must": true,
"infinite": false
},
{
"dataType": "date",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "TIMESTAMPTODATE",
"chineseName": "返回时间戳转换后的日期",
"description": "将时间戳按指定格式转换成日期。",
"example": "TIMESTAMPTODATE('1671172579', 'yyyy-MM-dd HH:mm:ss')",
"result": "2022-12-16 14:36:19",
"paramDescs": [
"*时间戳*(必选)",
"*日期格式*可选默认yyyy-MM-dd HH:mm:ss"
],
"formatString": "TIMESTAMPTODATE(时间戳,日期格式)",
"paramArray": [],
"paramData": [],
"returnType": "string",
"type": "function",
"validForm": "current_data",
"paramCount": 2,
"paramStatuses": [
{
"dataType": "date",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": false,
"infinite": false
}
]
},
{
"name": "DATETOTIMESTAMP",
"chineseName": "返回日期转换后的时间戳",
"description": "将日期转换成时间戳。",
"example": "DATETOTIMESTAMP('2022-12-16 14:36:19'",
"result": "'1671172579'",
"paramDescs": [
"*日期*(必选)"
],
"formatString": "DATETOTIMESTAMP(日期)",
"paramArray": [],
"paramData": [],
"returnType": "string",
"type": "function",
"validForm": "current_data",
"paramCount": 1,
"paramStatuses": [
{
"dataType": "date",
"must": true,
"infinite": false
}
]
},
{
"name": "DATE",
"chineseName": "拼接日期字符串",
"description": "拼接日期",
"example": "DATE('2022','12','16')",
"result": "'2022-12-16'",
"paramDescs": [
"*日期字符*(必选)"
],
"formatString": "DATE({年},{月},{日})",
"paramArray": [],
"paramData": [],
"returnType": "string",
"type": "function",
"validForm": "current_data",
"paramCount": 3,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": true,
"infinite": false
}
]
},
{
"name": "DAYS",
"chineseName": "计算两个日期自建的间隔天数",
"description": "计算两个日期的间隔天数",
"example": "DAYS('2022-12-16','2022-12-18')",
"result": "2",
"paramDescs": [
"*日期字符*(必选)"
],
"formatString": "DAYS({日期},{日期})",
"paramArray": [],
"paramData": [],
"returnType": "number",
"type": "function",
"validForm": "current_data",
"paramCount": 2,
"paramStatuses": [
{
"dataType": "string",
"must": true,
"infinite": false
},
{
"dataType": "string",
"must": true,
"infinite": false
}
]
}
],
"dataType": "date",
@ -1698,62 +1293,6 @@
"infinite": false
}
]
},
{
"name": "SORT",
"chineseName": "条件排序",
"description": "根据排序条件进行字符和数字的排序,UP为升序DOWN为降序。",
"example": "SORT(1,2,5,4,3,'UP')",
"result": "[1,2,3,4,5]",
"paramDescs": [
"*字符或数字*(必选)",
"*字符或数字*(可选)",
"......",
"*排序方式*"
],
"formatString": "SORT({变量1},{变量2},{变量3}...{排序方式})",
"paramArray": [],
"paramData": [],
"returnType": "all",
"type": "function",
"validForm": "current_data",
"paramCount": -1,
"paramStatuses": [
{
"dataType": "array",
"must": true,
"infinite": false
},
{
"dataType": "number",
"must": true,
"infinite": false
}
]
},
{
"name": "IFERROR",
"chineseName": "异常处理",
"description": "异常处理函数",
"example": "IFERROR(10/0,'0')",
"result": "0",
"paramDescs": [
"*公式内容*"
],
"formatString": "IFERROR({变量},{变量})",
"paramArray": [],
"paramData": [],
"returnType": "all",
"type": "function",
"validForm": "current_data",
"paramCount": -1,
"paramStatuses": [
{
"dataType": "all",
"must": true,
"infinite": false
}
]
}
],
"dataType": "logic",
@ -1947,144 +1486,6 @@
"infinite": false
}
]
},
{
"name": "CALDTROW",
"chineseName": "明细逐行计算函数",
"description": "明细逐行计算",
"example": "假设明细有金额1、金额2、金额3等三个控件明细行数为2第一行值分别为5、6、10第二行的值分别为1、1、9。CALDTROW({金额3}==10,{金额1}+{金额2})",
"result": "当金额3等于10的时候运算加法只有第一行的金额3等于10明细第一行的金额3赋值为11",
"paramDescs": [
"*字段*(必选)",
"*公式或字段*(必选)"
],
"formatString": "CALDTROW({字段},{公式或字段})",
"paramArray": [],
"paramData": [],
"returnType": "all",
"type": "function",
"validForm": "current_data",
"paramCount": 2,
"paramStatuses": [
{
"dataType": "boolean",
"must": true,
"infinite": false
},
{
"dataType": "all",
"must": true,
"infinite": false
}
]
},
{
"name": "ABS",
"chineseName": "绝对值",
"description": "绝对值",
"example": "ABS(-9)",
"result": "9",
"paramDescs": [
"*字段*(必选)"
],
"formatString": "ABS({字段})",
"paramArray": [],
"paramData": [],
"returnType": "all",
"type": "function",
"validForm": "current_data",
"paramCount": 1,
"paramStatuses": [
{
"dataType": "number",
"must": true,
"infinite": false
}
]
},
{
"name": "RANDOM",
"chineseName": "随机数生成",
"description": "随机数生成",
"example": "RANDOM(5,'NUM')",
"result": "26489",
"paramDescs": [
"*数字*(必选)",
"*文本*(必选)[NUM数字、CHAR字符、FIX字符与数字混合]"
],
"formatString": "RANDOM({随机数长度},{随机类型})",
"paramArray": [],
"paramData": [],
"returnType": "all",
"type": "function",
"validForm": "current_data",
"paramCount": 2,
"paramStatuses": [
{
"dataType": "boolean",
"must": true,
"infinite": false
},
{
"dataType": "all",
"must": true,
"infinite": false
}
]
},
{
"name": "POWER",
"chineseName": "N次方",
"description": "计算数值的N次方",
"example": "POWER(2, 2) <br/> POWER(4, 1/2)",
"result": "4 <br/> 2",
"paramDescs": [
"*数字*(必选)",
"*数字*必选N次方的N"
],
"formatString": "POWER({数字}, {数字})",
"paramArray": [],
"paramData": [],
"returnType": "all",
"type": "function",
"validForm": "current_data",
"paramCount": 2,
"paramStatuses": [
{
"dataType": "number",
"must": true,
"infinite": false
},
{
"dataType": "number",
"must": true,
"infinite": false
}
]
},
{
"name": "SQRT",
"chineseName": "根号",
"description": "将数值开根号",
"example": "SQRT(4)",
"result": "2",
"paramDescs": [
"*数字*(必选)"
],
"formatString": "SQRT({数字})",
"paramArray": [],
"paramData": [],
"returnType": "all",
"type": "function",
"validForm": "current_data",
"paramCount": 1,
"paramStatuses": [
{
"dataType": "number",
"must": true,
"infinite": false
}
]
}
],
"dataType": "math",

View File

@ -145,22 +145,25 @@ public class QlExpress {
runner.replaceOperator("*", new WOperatorMulti("*"));
runner.replaceOperator("/", new WOperatorDiv("/"));
//逻辑函数
runner.replaceOperator("IN", new InOperator("in"));
runner.replaceOperator("IF", new InOperator("IF"));
runner.addFunctionOfServiceMethod(FuncNames.AND.toString(), logicService, FuncNames.AND.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.OR.toString(), logicService, FuncNames.OR.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.NOT.toString(), logicService, FuncNames.NOT.getName(), new Class[]{Object[].class}, "");
runner.replaceOperator("IN", new InOperator("in"));
runner.addFunctionOfServiceMethod(FuncNames.LIKE.toString(), logicService, FuncNames.LIKE.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.ISEMPTY.toString(), logicService, FuncNames.ISEMPTY.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.TRUE.toString(), logicService, FuncNames.TRUE.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.FALSE.toString(), logicService, FuncNames.FALSE.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.ISEMPTY.toString(), logicService, FuncNames.ISEMPTY.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.NOT.toString(), logicService, FuncNames.NOT.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.IFS.toString(), logicService, FuncNames.IFS.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.FIND.toString(), logicService, FuncNames.FIND.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.SWITCH.toString(), logicService, FuncNames.SWITCH.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.FIND.toString(), logicService, FuncNames.FIND.getName(), new Class[]{Object[].class}, "");
//日期函数
runner.addFunctionOfServiceMethod("DATEDIFF", dateTimeService, "dateDiff", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("TODAY", dateTimeService, "today", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("NOW", dateTimeService, "now", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("DATEADD", dateTimeService, "dateAdd", new Class[]{Object[].class}, errorInfo);
runner.addFunctionOfServiceMethod("DATEDIFF", dateTimeService, "dateDiff", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("DATEFORMAT", dateTimeService, "dateFormat", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("YEAR", dateTimeService, "year", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("MONTH", dateTimeService, "month", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("DAY", dateTimeService, "day", new Class[]{Object[].class}, "");
@ -169,10 +172,6 @@ public class QlExpress {
runner.addFunctionOfServiceMethod("SECOND", dateTimeService, "seconds", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("WEEKNUM", dateTimeService, "weekNum", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("WEEKDAY", dateTimeService, "weekDay", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("NOW", dateTimeService, "now", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("TODAY", dateTimeService, "today", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("DATEFORMAT", dateTimeService, "dateFormat", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("DAYOFMONTH", dateTimeService, "dayOfMonth", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("EOMONTH", dateTimeService, "eoMonth", new Class[]{Object[].class}, "");
// runner.addFunctionOfServiceMethod("NETWORKDAYSPI", dateTimeService, "workdayIntl", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("CURRYEAR", dateTimeService, "currYear", new Class[]{Object[].class}, "");
@ -184,6 +183,7 @@ public class QlExpress {
runner.addFunctionOfServiceMethod("CURRSECOND", dateTimeService, "currSecond", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("MAXDATE", dateTimeService, "maxDate", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("MINDATE", dateTimeService, "minDate", new Class[]{Object[].class}, "");
// runner.addFunctionOfServiceMethod("DAYOFMONTH", dateTimeService, "dayOfMonth", new Class[]{Object[].class}, "");
//聚合函数
// runner.addFunctionOfServiceMethod("COUNT", aggregationFunc, "counts", new Class[]{Object[].class}, "COUNT参数错误");
@ -211,8 +211,8 @@ public class QlExpress {
//数学函数
runner.addFunctionOfServiceMethod("ROUNDUP", mathFuncsService, "roundUp", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("ROUNDDOWN", mathFuncsService, "roundDown", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("ROUND", mathFuncsService, "round", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod("ROUNDDOWN", mathFuncsService, "roundDown", new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.AGGREGATION.toString(), mathFuncsService, FuncNames.AGGREGATION.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.MOD.toString(), mathFuncsService, FuncNames.MOD.getName(), new Class[]{Object[].class}, "");
runner.addFunctionOfServiceMethod(FuncNames.TRUNC.toString(), mathFuncsService, FuncNames.TRUNC.getName(), new Class[]{Object.class, Object.class}, "");