基本函数

<< Click to Display Table of Contents >>

当前位置:  制作可视化报告 > 脚本 > 永洪脚本函数 > 全局函数 

基本函数

复制链接

函数

语法

说明

举例

aggregates

aggregates( Scriptable scope, Object cgrid, Object odims, Object omeasures)

从数据结果中提取出N列来计算分组和汇总的数据结果。

参数1:运行此脚本的作用域,通常用this,表示当前作用域。

参数2:DataGrid对象。

参数3:指定DimCol,定义分组列,是一个数组。

参数4:指定MeasureCol,定义合计列,是一个数组。

var data = execute(this, SQL, "Coffee");

var bcol1 = new BCol("TYPE", STRING, true);

var bcol2 = new BCol("Sum_ID", DOUBLE, false);

var dimCol1 = new DimCol(bcol1);

var meaCol1 = new MeasureCol(SUM, bcol2, null);

var data1 = aggregates(this, data, [dimCol1], [meaCol1]);

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)

复制一个Java的日期。

var d = new Date("July 21, 1983 01:15:00");

var a=cloneDate(d);

formatDate

formatDate(Object val, String fmtstr);

把日期按照指定的格式转化为字符串。

参数1:指定日期。

参数2:指定格式。

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)

根据指定格式,解析字符串,返回日期对象。

参数1:指定日期。

参数2:指定格式。

var str = "1991-10-01";

parseDate(str, "yyyy-MM-dd");

dateAdd

dateAdd(Object date, String 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)

计算两个日期之间的时间差,时间间隔包括: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)

根据给定参数取出年、月、日等各部分的数值,参数有: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

toDate

toDate(Object  javaDate)

将指定值转换为日期对象。

var a = param["date"];

toDate(a);

split

split(String str, String delim, Object limit);

将字符串分割为字符串数组。

参数1:待分割的字符串。

参数2:用于标识子字符串边界的字符串字符。

参数3:要返回的子字符串数,–1表示返回所有的子字符串。

var str="How are you doing today?";

var b=str.split(" ");

结果为How,are,you,doing,today?

split2Array

split2Array(String str, int dataType)

将字符串分割为指定对象的数组。

参数1:待分割的字符串,用","分割。

参数2:数组元素的数据类型。

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);

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

execute(Scriptable scope, int type, String path, [Object allCols])

运行一个数据集。

参数1:运行此脚本的作用域,通常用this,表示当前作用域。

参数2:数据集的类型,支持的有:SQL,EXCEL,SCRIPT,CUSTOM,CLOUD,EMBED,COMPOSITE,MONGO,DATA_FLOW,MDX,RESTFUL。

参数3:数据集的路径及名称。如果有目录就用'/' 连接起来。

参数4:可选。为true 时,数据集的表达式列可见;缺省值为false 时,数据集的表达式列不可见。

var data=execute(this, Embed, "query1");

preExecute

preExecute(Scriptable script, int type, String path, [Object allcols])

预运行一个数据集,返回ID以获取数据集结果。

参数1:运行此脚本的作用域,通常用this,表示当前作用域。

参数2:查询的类型,支持的有:SQL,EXCEL,SCRIPT,CUSTOM,CLOUD,EMBED,COMPOSITE,MONGO,DATA_FLOW,MDX,RESTFUL。

参数3:数据集的路径及名称。如果有目录就用'/' 连接起来。

参数4:可选。为true 时,数据集的表达式列可见;缺省值为false 时, 数据集的表达式列不可见。

var a=preExecute(this,SQL,"data",true);

var b=executed(a);

setData("表1", b, DATA);

executed

executed(Object executedID)

根据给定ID,获取数据集的数据结果。

var a=preExecute(this,SQL,"data",true);

var b=executed(a);

setData("表1", b, DATA);

removeExecuted

removeExecuted(Object executedID)

删除预运行数据集结果对应的ID。

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)

将两个数据结果连接。

参数1:运行此脚本的作用域,通常用this,表示当前作用域。

参数2:join 的提示。LEFT_MAIN:左表为主,RIGHT_MAIN:右表为主,FINAL_JOIN:是最终表,TEMP_JOIN:是个临时表,会被回收的表。

参数3:连接操作符。JOIN:是内连接,LEFT_JOIN:左连接,RIGHT_JOIN:右连接,FULL_JOIN:全连接。

参数4:左表,是一个DataGrid对象。

参数5:右表,是一个DataGrid对象。

参数6:左表的连接的字段,是一个整数数组或字符串数组,数组成员可以是列的index或名字。

参数7:右表的连接的字段,是一个整数数组或字符串数组,数组成员可以是列的index或名字。

参数8:左表的留下哪些字段,null表示所有字段,是一个整数数组或字符串数组,数组成员可以是列的index或名字。

参数9:右表的留下哪些字段,null表示所有字段,是一个整数数组或字符串数组,数组成员可以是列的index或名字。

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)

将两个数据结果联合。

参数1:运行此脚本的作用域,通常用this,表示当前作用域。

参数2:DataGrid数组。

union(this, [a, b]);

// 将a和b进行合并。

columns

columns  (Scriptable scope, Object cgrid, Object ccols)

从数据结果中提取出N列组成新的数据结果。

参数1:运行此脚本的作用域,通常用this,表示当前作用域。

参数2:DataGrid对象。

参数3:指定哪些列被提取,是一个整数数组或字符串数组,数组成员可以是列的index或名字。

columns(this, query1, [3,1] );

//把query1中的第3和第1列取出形成新的数据网

sort

sort (Scriptable scope, Object sgrid, Object scols, Object sascs)

对数据结果的指定列进行排序。

参数1:运行此脚本的作用域,通常用this,表示当前作用域。

参数2:DataGrid对象。

参数3:指定排序的列,是一个整数数组或字符串数组,数组成员可以是列的index或名字。

参数4:指定排序类型,是一个布尔数组,数组成员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 支持的时间戳。

参数1:日期值。

参数2:DType.DATE_TIME,DType.DATE,DType.TIME。

var  a=new Date("January 12,2006 22:19:35");

var b=toSQLDate(a, DType.TIME).toString();

substring

substring(String str, Integer idx, Object end)

返回某个指定位置的字符串的子集。

参数1:给定的字符串。

参数2:一个非负的整数,规定要提取的子串的第一个字符在给定的字符串中的位置。

参数3:可选,非负的整数。如果省略该参数,那么返回的子串会一直到字符串的结尾。

var b="Hello world";

var a =b.substring(0,3);

indexOf

indexOf(String str, String istr, Object idx])

返回某个指定的字符串值在源字符串中首次出现处的索引。

str:源字符串。

istr:要查找的字符串。

idx: 可选,从idx位置开始查找。

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);

getDataMartUpdateTime

getDataMartUpdateTime(String queryPath, int Type )

获取集市数据的更新时间,包括集市数据集使用的集市数据和抽取数据到集市的数据集使用的集市数据。

参数1:数据集的路径及名称。如果有目录就用'/' 连接起来。

参数2:数据集的类型,支持的有:SQL,SCRIPT,EXCEL,CUSTOM,CLOUD,COMPOSITE,MONGO,DATA_FLOW,RESTFUL。

getDataMartUpdateTime("咖啡销售统计",SQL)

getDataMartDataSize

getDataMartDataSize(String queryPath, int Type )

获取集市数据的数据大小(单位:MB),包括集市数据集使用的集市数据和抽取数据到集市的数据集使用的集市数据。

参数1:数据集的路径及名称。如果有目录就用'/' 连接起来。

参数2:数据集的类型,支持的有:SQL,EXCEL,SCRIPT,CUSTOM,CLOUD,COMPOSITE,MONGO,DATA_FLOW,RESTFUL。

getDataMartDataSize("咖啡销售统计",SQL)

getDataMartDataRows

getDataMartDataRows(String queryPath, int Type )

获取集市数据的数据行数,包括集市数据集使用的集市数据和抽取数据到集市的数据集使用的集市数据。

参数1:数据集的路径及名称。如果有目录就用'/' 连接起来。

参数2:数据集的类型,支持的有:SQL,SCRIPT,EXCEL,CUSTOM,CLOUD,COMPOSITE,MONGO,DATA_FLOW,RESTFUL。

getDataMartDataRows("咖啡销售统计",SQL)