<< Click to Display Table of Contents >> 基本函数复制链接 |
函数 |
语法 |
说明 |
举例 |
newInstance |
newInstance(String classname); |
创建一个对象实例。 |
var a=newInstance(query); |
isNull |
isNull (Object obj); |
检测对象是否为空。 |
var a=isNull(query); |
isNumber |
isNumber(Object val); |
检测对象是否是数值类型的。 |
var a=isNumber(query); |
isDate |
isDate(Object val) |
检测对象是否是日期类型的。 |
var a=isDate(sell_date); |
getWeek |
getWeek(Object date) |
从Date对象返回一年中的第几周。 |
var d = new Date("July 10, 2012 01:15:00"); var a=getWeek(d); 输出a=28 |
getDate |
getDate(Object date) |
返回一个java的日期。 |
var d = new Date("July 21, 1983 01:15:00"); var a=getDate(d); |
cloneDate |
cloneDate(Object date) |
复制日期。 |
var d = new Date("July 21, 1983 01:15:00"); var a=cloneDate(d); |
formatDate |
formatDate(Object val, String fmtstr); |
给日期设定显示格式。 |
var date= new Date("July 21, 1983 01:15:00"); var a=formatDate(date, "yyyy-MM-dd mm:hh"); |
parseDate |
parseDate(String str, String fmt) |
根据指定格式,解析字符串,返回日期对象。 |
var str = "1991-10-01"; parseDate(str, "yyyy-MM-dd"); |
dateAdd |
dateAdd(Object date, String option) |
用来给日期添加指定时间间隔。 时间间隔option包括:year,quarter,month,weekofyear,dayofyear,dayofmonth,dayofweek,hour,minute,second。 |
var date= new Date("July 21, 1983 01:15:00"); var d=dateAdd(date,"month",1);//增加一月 |
dateGap |
dateGap(Object startDate, Object endDate, String option) |
两个日期之间的时间差。 时间间隔option包括:year,quarter,month,weekofyear,dayofyear,dayofmonth,dayofweek,hour,minute,second。 |
var date= new Date("July 21, 2012 01:15:00"); var date2= new Date("June 10, 2012 01:15:00"); var a =dateGap(date,date2,"month"); |
datePart |
datePart(Object date, String option) |
取出年、月、日等各部分的数值 时间间隔option包括:year,quarter,month,weekofyear,dayofyear,dayofmonth,dayofweek,hour,minute,second。 |
var date= new Date("July 21, 1983 01:15:00"); var a=datePart(date,"year");//a=1983 |
split |
split(String str, String delim, Object limit); |
把字符串分割为字符串数组。 |
var str="How are you doing today?"; var b=str.split(" "); 结果为How,are,you,doing,today? |
split2Array |
split2Array(String str, int dataType) |
将字符串分割为字符串数组。 |
var a ="How are you"; var b=split2Array(a,2); |
formatNumber |
formatNumber(double number, String fmt); |
将数字按照指定的格式转化为字符串。 |
var a =formatNumber(498.8573945,"#,##0.##");就可以输出:498.86 |
toString |
toString(Object val) |
将任意对象转换为字符串。 |
var b=2.34; var a =toString(b); |
substring |
substring(String str, Integer idx, Object end) |
返回某个指定位置的字符串的子集。 参数1:给定的字符串。 参数2:一个非负的整数,规定要提取的子串的第一个字符在给定的字符串中的位置。 参数3:可选,非负的整数。如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
var b=”Hello world”; var a =b.substring(0,3); |
sqr |
sqr(Object val); |
对数据求平方。 |
var a=sqr(2);//a=4 |
sqrt |
sqrt(Object val); |
返回给定数据的平方根。 |
var a=sqrt(9);//a=3 |
abs |
abs(Object val) |
返回给定数据的绝对值。 |
var a=abs(-7);//a=7 |
debug |
debug(Object msg);l |
用来调试,向前台和日志文件输出信息。 |
debug("msg"); |
execute(Scriptable scope, int type, String path, [Object allCols]) |
运行一个数据集。 参数1:运行此脚本的作用域,通常用this,表示当前作用域。 参数2:数据集的类型,支持的8 种类型:SQL,EXCEL,SCRIPT,CUSTOM,CLOUD,EMBED,COMPOSITE,MONGO,DATA_FLOW,MDX。 path是指数据集的路径及名称。如果有目录就用“/”连接起来。 allCols是指当为true时,数据集的表达式列可见,当为false时 , 数据集的表达式列不可见。 |
var data=execute(this, Embed, "query1"); |
|
preExecute |
preExecute(Scriptable script, int type, String path, [Object allcols]) |
先预编译一个查询。 |
var a=preExecute(this,SQL,"data",true); var b=executed(a); setData("表1", b, DATA); |
executed |
executed(Object executedID) |
运行预编译的一个查询。 |
var a=preExecute(this,SQL,"data",true); var b=executed(a); setData("表1", b, DATA); |
removeExecuted |
removeExecuted(Object executedID) |
删除预编译的查询。 |
var a=preExecute(this,SQL,"data",true); var b=removeExecuted(a); var c=executed(a); setData("表1", c, DATA); |
join |
join(Scriptable scope, int jhint, int jop, Object jleft, Object jright, Object jlkeys, Object jrkeys, Object jlcols, Object jrcols) |
将两个任意的数据集执行后的查询结果做联接,并返回新的查询结果。要求做映射的关键字段的数据类型要匹配。 scope 是指运行此脚本的作用域,通常用 this表示当前作用域。 jhint是join的提示。LEFT_MAIN左表为主,RIGHT_MAIN右表为主,FINAL_JOIN是最终表, TEMP_JOIN是个临时表,会被回收的表。 jop是连接操作符。JOIN是内连接;LEFT_JOIN左连接; RIGHT_JOIN右连接; FULL_JOIN全连接。 jleft:左表。 jright:右表。 jlkeys:左表连接的字段。 jrkeys:右表连接的字段。 jlcols: 左表留下哪些字段。 jrcols:右表留下哪些字段。 |
join(this, FINAL_JOIN | LEFT_MAIN, LEFT_JOIN, query1, query2, [1], [3], [1,2], [3,1]); // 左表query1的第1列和右表 query2的第3列连接,留下 query1的1和2列, query2的3 和1列。 |
union |
union (Scriptable scope, Object ugrids) |
将两个任意的数据集执行后的查询结果进行合并,并返回新的查询结果。两个数据集的字段个数是匹配的,而且数据类型也是匹配的。 scope是指运行此脚本的作用域,通常用this表示当前作用域。 ugrids哪些表求交集。如果列不匹配会出错。此参数是个数组。 |
union(this, [a, b]); // 将a和b进行合并。 |
columns |
columns (Scriptable scope, Object cgrid, Object ccols) |
将某些列的数据从一个数据集结果里提取出来,并返回一个新的查询结果。 scope是指运行此脚本的作用域,通常用this表示当前作用域。 cgrid是指哪个数据集结果被提取。 ccols是指哪些列被提取。 |
columns(this, query1, [3,1] ); //把query1中的第3和第1列取出形成新的数据网 |
sort |
sort (Scriptable scope, Object sgrid, Object scols, Object sascs) |
将数据集结果中的某些列做排序,并返回一个新的查询结果。 scope是指运行此脚本的作用域,通常用this表示当前作用域。 sgrid是指哪个查询结果被排序。 scols是指哪些字段被排序。 sascs是指各字段用什么排序类型:true(升序), false(降序)。 |
sort(this, query1, [3,1], [SORT_DESC, SORT_ASC]); //先第3列降序,再第1列升序。 |
embed |
embed(Object val) |
数组转换为内嵌查询。 |
var a=[["编号","2","3"],["姓","wang","yao"]]; var b=embed(a); setData("表1",b,DATA); |
toArray |
toArray(Object gobj,Object cobj) |
查询中的列转换为数组。 |
var query1=execute(this,SQL, 'coffee3'); var a=toArray(query1,"product"); data=compare("Decaf Espresso",a[0]); |
position |
position(Object ox, Object oy) |
把经度和纬度转化为一个长整型来存储。 |
position(10, 10); |
putGlobal |
putGlobal(String key,Object val) |
全局常量。 |
putGlobal("a",1) var c=a; |
toSQLDate |
toSQLDate(Object val, int ctype) |
普通日期转换为SQL支持的时间戳。 |
var a=new Date("January 12,2006 22:19:35"); var b=toSQLDate(a, DType.TIME).toString(); |
indexOf |
indexOf(String str, String istr, [Object cidx]) |
返回某个指定的字符串值在字符串中首次出现处的索引。 str:源字符串。 istr:要查找的字符串。 cidx:从cidx位置开始查找。 |
var a = "my hello world!" var b = indexOf(a, "hello"); |
toDate |
toDate(Object javaDate) |
将后台取到的时间转换为另一种时间。 |
var a= param["date"]; var b= toDate(a).toString().substring(0,10); |
aggregates |
aggregates(Script scope, Object cgrid, Object odims, Object omeasures) |
对数据结果进行小计,组成新的数据结果。 scope是指运行此脚本的作用域,通常用this表示当前作用域。 cgrid DataGrid对象,是指对哪个查询结果进行小计。 odims指定DimCol,定义分组列,是一个数组。。 omeasure指定MeasureCol,定义合计列,是一个数组。 |
var a = execute(this, SQL, "Coffee"); var bcol1 = new BCol("TYPE", STRING, true); var bcol2 = new BCol("COGS", DOUBLE, false); var dimCol = new DimCol(bcol1); var meaCol = new MeasureCol(SUM, bcol2, null); var b = aggregates(this, a,[dimCol],[meaCol]) setData("表1", b, DATA); |