mwf.xdesktop.requireapp("process.xform", "$module", null, false);
mwf.xdesktop.requireapp("process.xform", "viewselector", null, false);
/** @class statementselector 查询视图选择组件。
* @o2cn 查询视图选择
* @example
* //可以在脚本中获取该组件
* //方法1:
* var statementselector = this.form.get("fieldid"); //获取组件
* //方法2
* var statementselector = this.target; //在组件本身的脚本中获取
* @extends mwf.xapplication.process.xform.viewselector
* @o2category formcomponents
* @o2range {process|cms}
* @hideconstructor
*/
mwf.xapplication.process.xform.statementselector = mwf.appstatementselector = new class({
implements: [events],
extends: mwf.xapplication.process.xform.viewselector,
options: {
/**
* 视图参数(options)已经准备好,还未加载视图时执行。可以通过this.event得到视图参数,并可修改this.event修改视图的加载。
* @since v8.2
* @event mwf.xapplication.process.xform.statementselector#beforeloadview
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zts|组件事件说明}
*/
/**
* 视图设计已经获取,容器也已经准备好。
* @event mwf.xapplication.process.xform.statementselector#loadviewlayout
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zts|组件事件说明}
*/
/**
* 异步加载查询视图后执行。
* @since v8.2
* @event mwf.xapplication.process.xform.statementselector#loadview
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zts|组件事件说明}
*/
/**
* 选中查询视图中的一条记录后执行。
* @since v8.2
* @event mwf.xapplication.process.xform.statementselector#select
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zts|组件事件说明}
*/
/**
* 取消选中查询视图中的一条记录后执行。
* @since v8.2
* @event mwf.xapplication.process.xform.statementselector#unselect
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zts|组件事件说明}
*/
/**
* 打开查询视图中的一条记录后执行。
* @event mwf.xapplication.process.xform.statementselector#opendocument,可以通过this.event得到打开的文档参数
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zts|组件事件说明}
*/
"moduleevents": ["load", "beforeloadview", "loadviewlayout", "loadview", "queryload", "postload", "select", "unselect", "opendocument"]
},
doresult: function(data){
if (this.json.result === "script"){
this.selecteddata = data;
return (this.json.selectedscript.code) ? this.form.macro.exec(this.json.selectedscript.code, this) : "";
}else{
object.each(this.json.selectedsetvalues, function(v, k){
var value = "";
data.each(function(d, idx){
// object.each(d, function(dv, dk){
// if (dk===v) value = (value) ? (value ", " dv) : dv;
// }.bind(this));
var pathlist = v.split(".");
for( var i=0; i