您可以通过statement对象,获取执行查询语句或者对查询结果进行选择。
syntax
//您可以在流程表单、内容管理表单、门户页面或视图中,通过this来获取statement对象,如下:
var statement = this.statement;
methods
static
execute(statement, callback, asyncopt)
执行指定的查询语句。
syntax
this.statement.execute(statement, callback, async);
parameters
-
statement
object
要执行的查询语句的信息。数据格式如下:
以下的filter参数参考statementfilter, parameter参数参考statementparameter{ "name" : "tesstatement", //(string)必选,查询配置的名称、别名或id "mode" : "all", //(string)必选,“all”、“data”或者“count”,all表示同时执行查询语句和总数语句,data表示执行查询语句,count表示执行总数语句 "page" : 1, //(number)可选,当前页码,默认为1 "pagesize" : 20, //(number)可选,每页的数据条数,默认为20 "filter": [ //(array)可选,对查询进行过滤的条件。json数组格式,每个数组元素描述一个过滤条件,每个元素数据格式如下: { "path":"o.title", //查询语句格式为jpql使用o.title,为原生sql中使用xtitle "comparison":"like", "value":"关于", "formattype":"textvalue" } ], parameter : { "person" : "", //参数名称为下列值时,后台默认赋值,person(当前人),identitylist(当前人身份列表),unitlist(当前人所在直接组织), unitalllist(当前人所在所有组织), grouplist(当前人所在群组) "starttime" : (new date("2020-01-01")), //如果对比的是日期,需要传入 date 类型 "applicationname" : "%test%", //如果运算符用的是 like, nolike,模糊查询 "processname" : "test流程", //其他写确定的值 "?1": "关于" //v8.0后查询语句支持问号加数字的传参 } }
-
callback
function
访问成功后的回调函数
-
async
boolean
同步或异步调用。true:异步;false:同步。默认为true。
example
//获取“task”查询中的数据
//查询语句为 select o from task o where (o.person = :person) and (o.starttime > :starttime) and (o.applicationname like :applicationname) and (o.processname = :processname)
//总数语句为 select count(o.id) from task o where (o.person = :person) and (o.starttime > :starttime) and (o.applicationname like :applicationname) and (o.processname = :processname)
//过滤条件为标题o.title包含包含(like))“7月”。
this.statement.execute({
"name": "task",
"mode" : "all",
"filter": [
{
"path":"o.title", //查询语句格式为jpql使用o.title,为原生sql中使用xtitle
"comparison":"like",
"value":"7月",
"formattype":"textvalue"
}
],
"parameter" : {
"person" : "", //参数名称为下列值时,后台默认赋值,person(当前人),identitylist(当前人身份列表),unitlist(当前人所在直接组织), unitalllist(当前人所在所有组织), grouplist(当前人所在群组)
"starttime" : (new date("2020-01-01")), //如果对比的是日期,需要传入 date 类型
"applicationname" : "%test%", //如果运算符用的是 like, nolike,模糊查询
"processname" : "test流程", //其他写确定的值
"?1": "关于" //v8.0后查询语句支持问号加数字的传参
}
}, function(json){
var count = json.count; //总数语句执行后返回的数字
var list = json.data; //查询语句后返回的数组
//......
});