在加工/整理/计算数据、生成数据图时,可以输入JavaScript表达式作为数据值。
若脚本为空,则返回空字符串。
脚本可以包含Nashorn可以解析的任何合法元素(ECMAScript 5.1)。
脚本应当最终是一个数值。
脚本可以包含以下占位符:
#{表行号}
#{数据行号}
#{<列名>}
#{<列名>-<统计名>}
左边显示所有合法的占位符。
点击"编辑"按钮以保存脚本。
悬停或点击按钮"示例",可以粘贴示例代码。
悬停或点击按钮"历史",可以粘贴历史代码。
在MyBox计算表达式时:
占位符被数据行的实际值替换。
统计值是用所有数据来计算的。
’#{xxx}’被处理为字符串而#{xxx}被处理为数字。
当处理所有数据时,若脚本包含"#{表行号}"则它会失败。
行表达式 | 含义 |
---|---|
#{数据行号} | 整个数据的行号 |
#{表行号} | 当前页的行号 |
Math.abs(#{字段1}) + Math.PI * Math.sqrt(#{字段2}) | 数学计算 |
‘#{字段1}’.replace(/hello/ig, ‘Hello’) | 把列"字段1"的值中所有"hello"(忽略大小写)替换"Hello" |
‘#{字段1}’.toLowerCase() | 列"字段1"的值的小写 |
‘#{字段1}’.split(‘,’) | 把列"字段1"的值按逗号分隔 |
#{字段1} - #{字段1-均值} | 列"字段1"的值与列"字段1"的平均值之间的差值 |
new Date(‘#{时间}’.replace(/-/g,‘/’)).getFullYear() | 列"时间"的值的年份 |
“行过滤"是特殊的"行表达式”,用来作为过滤数据行的条件。
脚本应当最终是一个布尔值(“true"或"false”)。
可以设置取用数据的最多行数。
可以保存为树形。
行过滤 | 含义 |
---|---|
#{数据行号} % 2 == 0 | 数据行号为偶数 |
#{表行号} % 2 == 1 | 当前页的奇数行 |
Math.abs(#{字段1}) >= 0 | 列"字段1"的值是数值 |
#{字段1}) > 0 | 列"字段1"的值大于零 |
#{字段1} - #{字段2} < 100 | 列"字段1"与"字段2"的值差小于100 |
‘#{字段1}’ == '' | 列"字段1"的值为null或empty |
‘#{字段1}’.length > 0 | 列"字段1"的值不为空值 |
‘#{字段1}’.search(/Hello/ig) >= 0 | 列"字段1"的值包含字符串"Hello"(忽略大小写) |
‘#{字段1}’.startsWith(‘Hello’) | 列"字段1"的值以"Hello"开头 |
var array = [ ‘A’, ‘B’, ‘C’]; array.includes(‘#{字段1}’) | 列"字段1"的值为’A’或’B’或’C’ |
#{字段1} < #{字段1-均值} | 列"字段1"的值小于列"字段1"的平均值 |
new Date(‘#{时间}’.replace(/-/g,‘/’)).getTime() > new Date(‘2016/05/19 09:23:12’).getTime() | 列"时间"的值晚于’2016/05/19 09:23:12’ |