# 函数库列表
[TOC]
### 系统函数
| 函数名称 | 说明 |
| --- | --- |
| assert(predicate, \[msg\]) | 断言函数,当 predicate 的结果为 false 的时候抛出 AssertFailed 异常, msg 错误信息可选。 |
| sysdate() | 返回当前日期对象 java.util.Date |
| rand() | 返回一个介于 \[0, 1) 的随机数,结果为 double 类型 |
| rand(n) | 返回一个介于 \[0, n) 的随机数,结果为 long 类型 |
| cmp(x, y) | 比较 x 和 y 大小,返回整数,0 表示相等, 1 表达式 x > y,负数则 x < y。 |
| print(\[out\],obj) | 打印对象,如果指定 out 输出流,向 out 打印, 默认输出到标准输出 |
| println(\[out\],obj) | 与 print 类似,但是在输出后换行 |
| 或者 | |
| p(\[out\], obj) | |
| pst(\[out\], e); | 等价于 e.printStackTrace(),打印异常堆栈,out 是可选的输出流,默认是标准错误输出 |
| now() | 返回 System.currentTimeMillis() 调用值 |
| long(v) | 将值转为 long 类型 |
| double(v) | 将值转为 double 类型 |
| boolean(v) | 将值的类型转为 boolean,除了 nil 和 false,其他都值都将转为布尔值 true。 |
| str(v) | 将值转为 string 类型,如果是 nil(或者 java null),会转成字符串 'null' |
| bigint(x) | 将值转为 bigint 类型 |
| decimal(x) | 将值转为 decimal 类型 |
| identity(v) | 返回参数 v 自身,用于跟 seq 库的高阶函数配合使用。 |
| type(x) | 返回参数 x 的类型,结果为字符串,如 string, long, double, bigint, decimal, function 等。Java 类则返回完整类名。 |
| is\_a(x, class) | 当 x 是类 class 的一个实例的时候,返回 true,例如 is\_a("a", String) ,class 是类名。 |
| is\_def(x) | 返回变量 x 是否已定义(包括定义为 nil),结果为布尔值 |
| undef(x) | “遗忘”变量 x,如果变量 x 已经定义,将取消定义。 |
| range(start, end, \[step\]) | 创建一个范围,start 到 end 之间的整数范围,不包括 end, step 指定递增或者递减步幅。 |
| tuple(x1, x2, ...) | 创建一个 Object 数组,元素即为传入的参数列表。 |
| eval(script, \[bindings\], \[cached\]) | 对一段脚本文本 script 进行求值,等价于 AviatorEvaluator.execute(script, env, cached) |
| comparator(pred) | 将一个谓词(返回布尔值)转化为 java.util.Comparator 对象,通常用于 sort 函数。 |
| max(x1, x2, x3, ...) | 取所有参数中的最大值,比较规则遵循逻辑运算符规则。 |
| min(x1, x2, x3, ...) | 取所有参数中的最小值,比较规则遵循逻辑运算符规则。 |
| constantly(x) | 用于生成一个函数,它对任意(个数)参数的调用结果 x。 |
### 数学函数
| 函数名称 | 说明 |
| --- | --- |
| math.abs(d) | 求 d 的绝对值 |
| math.round(d) | 四舍五入 |
| math.floor(d) | 向下取整 |
| math.ceil(d) | 向上取整 |
| math.sqrt(d) | 求 d 的平方根 |
| math.pow(d1,d2) | 求 d1 的 d2 次方 |
| math.log(d) | 求 d 的自然对数 |
| math.log10(d) | 求 d 以 10 为底的对数 |
| math.sin(d) | 正弦函数 |
| math.cos(d) | 余弦函数 |
| math.tan(d) | 正切函数 |
| math.atan(d) | 反正切函数 |
| math.acos(d) | 反余弦函数 |
| math.asin(d) | 反正弦函数 |
### 字符串表达式
| 函数名称 | 说明 |
| --- | --- |
| date\_to\_string(date,format) | 将 Date 对象转化化特定格式的字符串 |
| string\_to\_date(source,format) | 将特定格式的字符串转化为 Date 对 象 |
| string.contains(s1,s2) | 判断 s1 是否包含 s2,返回 Boolean |
| string.length(s) | 求字符串长度,返回 Long |
| string.startsWith(s1,s2) | s1 是否以 s2 开始,返回 Boolean |
| string.endsWith(s1,s2) | s1 是否以 s2 结尾,返回 Boolean |
| string.substring(s,begin\[,end\]) | 截取字符串 s,从 begin 到 end,如果忽略 end 的话,将从 begin 到结尾,与 java.util.String.substring 一样。 |
| string.indexOf(s1,s2) | java 中的 s1.indexOf(s2),求 s2 在 s1 中 的起始索引位置,如果不存在为-1 |
| string.split(target,regex,\[limit\]) | Java 里的 String.split 方法一致 |
| string.join(seq,seperator) | 将集合 seq 里的元素以 seperator 为间隔 连接起来形成字符串 |
| string.replace\_first(s,regex,replacement) | Java 里的 String.replaceFirst 方法 |
| string.replace\_all(s,regex,replacement) | Java 里的 String.replaceAll 方法 |
### Sequence 函数(集合处理)
| 函数名称 | 说明 |
| --- | --- |
| repeat(n, x) | 返回一个 List,将元素 x 重复 n 次组合而成。 |
| repeatedly(n, f) | 返回一个 List,将函数 f 重复调用 n 次的结果组合而成。 |
| seq.array(clazz, e1, e2,e3, ...) | 创建一个指定 clazz 类型的数组,并添加参数 e1,e2,e3 ...到这个数组并返回。 clazz 可以是类似 java.lang.String 的类型,也可以是原生类型,如 int/long/float 等 |
| seq.array\_of(clazz, size1, size2, ...sizes) | 创建 clazz 类型的一维或多维数组,维度大小为 sizes 指定。clazz 同 seq.array 定义。 |
| seq.list(p1, p2, p3, ...) | 创建一个 java.util.ArrayList 实例,添加参数到这个集合并返回。 |
| seq.set(p1, p2, p3, ...) | 创建一个 java.util.HashSet 实例,添加参数到这个集合并返回。 |
| seq.map(k1, v1, k2, v2, ...) | 创建一个 java.util.HashMap 实例,参数要求偶数个,类似 k1,v1 这样成对作为 key-value 存入 map,返回集合。 |
| seq.entry(key, value) | 创建 Map.Entry 对象,用于 map, filter 等函数 |
| seq.keys(m) | 返回 map 的 key 集合 |
| seq.vals(m) | 返回 map 的 value 集合 |
| into(to\_seq, from\_seq) | 用于 sequence 转换,将 from sequence 的元素使用 seq.add 函数逐一添加到了 to sequence 并返回最终的 to\_seq |
| seq.contains\_key(map, key) | 当 map 中存在 key 的时候(可能为 null),返回 true。对于数组和链表,key 可以是 index,当 index 在有效范围\[0..len-1\],返回 true,否则返回 false |
| seq.add(coll, element) | 往集合 coll 添加元素,集合可以是 java.util.Collection,也可以是 java.util.Map(三参数版本) |
| seq.add(m, key, value) | |
| seq.put(coll, key, value) | 类似 List.set(i, v)。用于设置 seq 在 key 位置的值为 value,seq 可以是 map ,数组或者 List。 map 就是键值对, 数组或者 List 的时候, key 为索引位置整数,value 即为想要放入该索引位置的值。 |
| seq.remove(coll, element) | 从集合或者 hash map 中删除元素或者 key |
| seq.get(coll, element) | 从 list、数组或者 hash-map 获取对应的元素值,对于 list 和数组, element 为元素的索引位置(从 0 开始),对于 hash map 来说, element 为 key。 |
| map(seq,fun) | 将函数 fun 作用到集合 seq 每个元素上, 返回新元素组成的集合 |
| filter(seq,predicate) | 将谓词 predicate 作用在集合的每个元素 上,返回谓词为 true 的元素组成的集合 |
| count(seq) | 返回集合大小,seq 可以是数组,字符串,range ,List 等等 |
| is\_empty(seq) | 等价于 count(seq) == 0,当集合为空或者 nil,返回 true |
| distinct(seq) | 返回 seq 去重后的结果集合。 |
| is\_distinct(seq) | 当 seq 没有重复元素的时候,返回 true,否则返回 false |
| concat(seq1, seq2) | 将 seq1 和 seq2 “连接”,返回连接后的结果,复杂度 O(m+n), m 和 n 分别是两个集合的长度。 |
| include(seq,element) | 判断 element 是否在集合 seq 中,返回 boolean 值,对于 java.uitl.Set 是 O(1) 时间复杂度,其他为 O(n) |
| sort(seq, \[comparator\]) | 排序集合,仅对数组和 List 有效,返回排序后的新集合,comparator 是一个 java.util.Comparator 实例,可选排序方式。 |
| reverse(seq) | 将集合元素逆序,返回新的集合。 |
| reduce(seq,fun,init) | fun 接收两个参数,第一个是集合元素, 第二个是累积的函数,本函数用于将 fun 作用在结果值(初始值为 init 指定)和集合的每个元素上面,返回新的结果值;函数返回最终的结果值 |
| take\_while(seq, pred) | 遍历集合 seq,对每个元素调用 pred(x),返回 true则加入结果集合,最终返回收集的结果集合。也就是说从集合 seq 收集 pred 调用为 true 的元素。 |
| drop\_while(seq, pred) | 与 take\_while 相反,丢弃任何 pred(x) 为 true 的元素并返回最终的结果集合。 |
| group\_by(seq, keyfn) | 对集合 seq 的元素按照 keyfn(x) 的调用结果做分类,返回最终映射 map。具体使用见文档。 |
| zipmap(keys, values) | 返回一个 HashMap,其中按照 keys 和 values 两个集合的顺序映射键值对。具体使用见文档。 |
| seq.every(seq, fun) | fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的每个元素调用 fun 后都返回 true 的时候,整个调用结果为 true,否则为 false。 |
| seq.not\_any(seq, fun) | fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的每个元素调用 fun 后都返回 false 的时候,整个调用结果为 true,否则为 false。 |
| seq.some(seq, fun) | fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的只要有一个元素调用 fun 后返回 true 的时候,整个调用结果立即为该元素,否则为 nil。 |
| seq.eq(value) | 返回一个谓词,用来判断传入的参数是否跟 value 相等,用于 filter 函数,如filter(seq,seq.eq(3)) 过滤返回等于3 的元素组成的集合 |
| seq.neq(value) | 与 seq.eq 类似,返回判断不等于的谓词 |
| [seq.gt](http://seq.gt/)(value) | 返回判断大于 value 的谓词 |
| [seq.ge](http://seq.ge/)(value) | 返回判断大于等于 value 的谓词 |
| [seq.lt](http://seq.lt/)(value) | 返回判断小于 value 的谓词 |
| seq.le(value) | 返回判断小于等于 value 的谓词 |
| seq.nil() | 返回判断是否为 nil 的谓词 |
| seq.exists() | 返回判断不为 nil 的谓词 |
| seq.and(p1, p2, p3, ...) | 组合多个谓词函数,返回一个新的谓词函数,当今仅当 p1、p2、p3 ...等所有函数都返回 true 的时候,新函数返回 true |
| seq.or(p1, p2, p3, ...) | 组合多个谓词函数,返回一个新的谓词函数,当 p1, p2, p3... 其中一个返回 true 的时候,新函数立即返回 true,否则返回 false。 |
| seq.min(coll) | 返回集合中的最小元素,要求集合元素可比较(实现 Comprable 接口),比较规则遵循 aviator 规则。 |
| seq.max(coll) | 返回集合中的最大元素,要求集合元素可比较(实现 Comprable 接口),比较规则遵循 aviator 规则。 |
- 安装步骤
- 1.nacos配置文件
- 2.容器部署
- 3. 初始化数据库
- 操作手册
- 一、基础操作
- 1. 鉴权
- 2. 创建报表
- 3. 编辑报表
- 4. 背景设置
- 5. 复制、粘贴、剪切
- 6. 行操作
- 7. 添加数据源
- 8. 报表数据集
- 8.1 SQL数据集配置
- 8.2 API数据集配置
- 8.3 JavaBean数据集
- 8.4 对象数据集配置
- 8.5 集合数据集配置
- 8.6 JSON数据集配置
- 8.7 sql数据源解析失败弹窗
- 8.8 存储过程
- 8.9 Redis数据集
- 8.10 MongoDB数据集
- 9. 插入数据
- 10. 数据格式化设置
- 11. 数据字典配置
- 12. 导入报表
- 13. 导出报表
- 14. 分页设置
- 15. 报表集成
- 16. 分享报表
- 17.报表模版库
- 18.数据源查询默认值配置
- 19.自定义分页条数
- 20.报表定时保存配置
- 21.补全空白行
- 22.预览页工具条设置
- 23.动态合并格
- 二、打印设计
- 1.打印设置规则_重要
- 2. 打印区域设置
- 3. 打印清晰度设置
- 4. 打印机样式设置
- 5. 套打怎样设置
- 6. 带背景打印
- 三、数据报表设计
- 1. 分组
- 1.1 纵向分组(相邻合并)
- 1.2 横向分组(相邻合并)
- 1.3 横向动态列分组
- 1.4 横向纵向组合动态列分组
- 1.5 横向分组小计
- 1.6 分组内合计
- 1.7 纵向分组小计
- 1.8 常用分组示例
- 1.9 分组数据排序设置
- 2.查询条件
- 2.1 API查询条件配置
- 2.2 API查询条件为时间
- 2.3 API自定义查询条件
- 2.4 SQL配置查询条件
- 2.5 API接口后台接收参数说明
- 2.6 API范围查询
- 3.条形码/二维码
- 3.1 二维码配置说明
- 3.2 条形码配置说明
- 3.3 条形码和二维码改值
- 4.交叉报表
- 5.明细报表
- 6.主子报表
- 6.1 主子表API数据源(新)
- 6.2 主子表SQL数据源(新)
- 7.联动钻取
- 7.1 报表联动(新)
- 7.2 报表钻取(新)
- 7.3 报表钻取带条件用法
- 7.4 图表钻取带条件用法
- 7.5 报表联动图表带条件用法
- 7.6 图表联动图表带条件用法
- 7.7 钻取联动条件规则
- 8.组件交互清单
- 9.循环块设置
- 10.分栏设置
- 11.分版设置
- 12.多表头复杂报表
- 四、表达式函数
- 1. 数据集表达式
- 2. 单元格表达式
- 3. 统计函数
- 4. 行号函数
- 5. 日期函数
- 6. 数学函数
- 7. 字符串函数
- 8. 条件表达式
- 9. 颜色表达式
- 10. 判断函数
- 11. 函数库列表(高级)
- 12. 基本运算符(高级)
- 13. 自定义报表函数
- 五、报表查询配置
- 1. 报表参数配置
- 2. 报表查询配置
- 3. 查询控件类型
- 4. 查询控件默认值
- 5. 时间控件设置说明
- 6. 时间控件默认值设置
- 7. SQL中条件表达式
- 8. 查询控件下拉树
- 9. 范围查询设置默认值
- 10. JS增强和CSS增强
- 11. 技巧说明
- 12. 参数公用示例
- 六、图形报表设计
- 1. 基本配置
- 1.1 图表背景设置
- 1.2 图表动态刷新
- 1.3 图表之间的联动
- 2. 柱形图配置
- 2.1 数据源配置
- 2.1.1 单数据源配置
- 2.1.2 多数据源配置
- 3. 折线图配置
- 3.1 数据源配置
- 3.1.1 单数据源配置
- 3.1.2 多数据源配置
- 4. 饼图配置
- 4.1 数据源配置
- 5. 折柱图配置
- 5.1 数据源配置
- 6. 散点图配置
- 6.1 普通散点图数据源配置
- 6.2 气泡散点图数据源配置
- 7. 漏斗图配置
- 7.1 数据源配置
- 8. 象形图配置
- 8.1 数据源配置
- 9. 地图配置
- 9.1 地图区配置
- 9.2 数据源配置
- 10. 仪表盘配置
- 10.1 数据源配置
- 11. 雷达图配置
- 11.1 数据源配置
- 12. 关系图配置
- 12.1 数据源配置
- 七、其他
- 1. sql数据集 in查询
- 2. 联动/钻取配置说明
- 3. 数据集字段字典配置
- 4. 传参渲染到报表上
- 5. 钻取、联动条件用法
- 6. 导出图片支持背景导出
- 7. 模板示例补充表
- 快速入门
- 1. 整体页面布局介绍
- 2. SQL数据源报表制作
- 3. SQL数据源报表带参制作
- 4. API数据源报表制作
- 5. API数据源报表带参制作
- JDEasyWorkflow
