diff --git a/o2web/source/o2_core/o2/xScript/CMSEnvironment.js b/o2web/source/o2_core/o2/xScript/CMSEnvironment.js index 3a664b902c2ded71ae20fbacdf401e6cca2b8d71..3093adb7043fd60bbeb18a0a62863b4af0cd2c4e 100644 --- a/o2web/source/o2_core/o2/xScript/CMSEnvironment.js +++ b/o2web/source/o2_core/o2/xScript/CMSEnvironment.js @@ -697,22 +697,67 @@ MWF.xScript.CMSEnvironment = function(ev){ this.statement = { "execute": function (statement, callback, async) { - var filterList = { "filterList": (statement.filter || null) }; - MWF.Actions.get("x_query_assemble_surface").executeStatement(statement.view, statement.application, filterList, function (json) { - var data = { - "grid": json.data.grid, - }; - if (callback) callback(data); - }, null, async); + var parameter = this.parseParameter(statement.parameter); + var filterList = this.parseFilter(statement.filter, parameter); + var obj = { + "filterList": filterList, + "parameter" : parameter + }; + MWF.Actions.load("x_query_assemble_surface").StatementAction.executeV2( + statement.name, statement.mode || "data", statement.page || 1, statement.pageSize || 20, obj, + function (json) { + if (callback) callback(json); + }, null, async); + }, + parseFilter : function( filter, parameter ){ + if( typeOf(filter) !== "array" )return []; + var filterList = []; + ( filter || [] ).each( function (d) { + var parameterName = d.path.replace(/\./g, "_"); + var value = d.value; + if( d.comparison === "like" || d.comparison === "notLike" ){ + if( value.substr(0, 1) !== "%" )value = "%"+value; + if( value.substr(value.length-1,1) !== "%" )value = value+"%"; + parameter[ parameterName ] = value; //"%"+value+"%"; + }else{ + if( d.formatType === "dateTimeValue" || d.formatType === "datetimeValue"){ + value = "{ts '"+value+"'}" + }else if( d.formatType === "dateValue" ){ + value = "{d '"+value+"'}" + }else if( d.formatType === "timeValue" ){ + value = "{t '"+value+"'}" + } + parameter[ parameterName ] = value; + } + d.value = parameterName; + + filterList.push( d ); + }.bind(this)); + return filterList; + }, + parseParameter : function( obj ){ + if( typeOf(obj) !== "object" )return {}; + var parameter = {}; + //传入的参数 + for( var p in obj ){ + var value = obj[p]; + if( typeOf( value ) === "date" ){ + value = "{ts '"+value.format("db")+"'}" + } + parameter[ p ] = value; + } + return parameter; }, "select": function (statement, callback, options) { - if (statement.statement) { + if (statement.name) { + // var parameter = this.parseParameter(statement.parameter); + // var filterList = this.parseFilter(statement.filter, parameter); var statementJson = { - "application": statement.application || _form.json.application, - "statementName": statement.statement || "", + "statementId": statement.name || "", "isTitle": (statement.isTitle === false) ? "no" : "yes", "select": (statement.isMulti === false) ? "single" : "multi", - "filter": statement.filter + "filter": statement.filter, + "parameter": statement.parameter }; if (!options) options = {}; options.width = statement.width; diff --git a/o2web/source/o2_core/o2/xScript/Environment.js b/o2web/source/o2_core/o2/xScript/Environment.js index 4e540f3350ee209e46d54f3360ce5b4b3b5ebaf4..2c743146f47916ca26a3dcb3632416e27ae55d18 100644 --- a/o2web/source/o2_core/o2/xScript/Environment.js +++ b/o2web/source/o2_core/o2/xScript/Environment.js @@ -866,22 +866,67 @@ MWF.xScript.Environment = function(ev){ this.statement = { "execute": function (statement, callback, async) { - var filterList = { "filterList": (statement.filter || null) }; - MWF.Actions.get("x_query_assemble_surface").execute(statement.view, statement.application, filterList, function (json) { - var data = { - "grid": json.data.grid, - }; - if (callback) callback(data); - }, null, async); + var parameter = this.parseParameter(statement.parameter); + var filterList = this.parseFilter(statement.filter, parameter); + var obj = { + "filterList": filterList, + "parameter" : parameter + }; + MWF.Actions.load("x_query_assemble_surface").StatementAction.executeV2( + statement.name, statement.mode || "data", statement.page || 1, statement.pageSize || 20, obj, + function (json) { + if (callback) callback(json); + }, null, async); + }, + parseFilter : function( filter, parameter ){ + if( typeOf(filter) !== "array" )return []; + var filterList = []; + ( filter || [] ).each( function (d) { + var parameterName = d.path.replace(/\./g, "_"); + var value = d.value; + if( d.comparison === "like" || d.comparison === "notLike" ){ + if( value.substr(0, 1) !== "%" )value = "%"+value; + if( value.substr(value.length-1,1) !== "%" )value = value+"%"; + parameter[ parameterName ] = value; //"%"+value+"%"; + }else{ + if( d.formatType === "dateTimeValue" || d.formatType === "datetimeValue"){ + value = "{ts '"+value+"'}" + }else if( d.formatType === "dateValue" ){ + value = "{d '"+value+"'}" + }else if( d.formatType === "timeValue" ){ + value = "{t '"+value+"'}" + } + parameter[ parameterName ] = value; + } + d.value = parameterName; + + filterList.push( d ); + }.bind(this)); + return filterList; + }, + parseParameter : function( obj ){ + if( typeOf(obj) !== "object" )return {}; + var parameter = {}; + //传入的参数 + for( var p in obj ){ + var value = obj[p]; + if( typeOf( value ) === "date" ){ + value = "{ts '"+value.format("db")+"'}" + } + parameter[ p ] = value; + } + return parameter; }, "select": function (statement, callback, options) { - if (statement.statement) { + if (statement.name) { + // var parameter = this.parseParameter(statement.parameter); + // var filterList = this.parseFilter(statement.filter, parameter); var statementJson = { - "application": statement.application || _form.json.application, - "statementName": statement.statement || "", + "statementId": statement.name || "", "isTitle": (statement.isTitle === false) ? "no" : "yes", "select": (statement.isMulti === false) ? "single" : "multi", - "filter": statement.filter + "filter": statement.filter, + "parameter": statement.parameter }; if (!options) options = {}; options.width = statement.width; diff --git a/o2web/source/o2_core/o2/xScript/PageEnvironment.js b/o2web/source/o2_core/o2/xScript/PageEnvironment.js index 7761a67a7690512b3376d36604c5a260a557844c..4e8277ec6099dd1e8af008235966b3e6c7a91b2f 100644 --- a/o2web/source/o2_core/o2/xScript/PageEnvironment.js +++ b/o2web/source/o2_core/o2/xScript/PageEnvironment.js @@ -753,22 +753,67 @@ MWF.xScript.PageEnvironment = function (ev) { this.statement = { "execute": function (statement, callback, async) { - var filterList = { "filterList": (statement.filter || null) }; - MWF.Actions.get("x_query_assemble_surface").execute(statement.view, statement.application, filterList, function (json) { - var data = { - "grid": json.data.grid, - }; - if (callback) callback(data); - }, null, async); + var parameter = this.parseParameter(statement.parameter); + var filterList = this.parseFilter(statement.filter, parameter); + var obj = { + "filterList": filterList, + "parameter" : parameter + }; + MWF.Actions.load("x_query_assemble_surface").StatementAction.executeV2( + statement.name, statement.mode || "data", statement.page || 1, statement.pageSize || 20, obj, + function (json) { + if (callback) callback(json); + }, null, async); + }, + parseFilter : function( filter, parameter ){ + if( typeOf(filter) !== "array" )return []; + var filterList = []; + ( filter || [] ).each( function (d) { + var parameterName = d.path.replace(/\./g, "_"); + var value = d.value; + if( d.comparison === "like" || d.comparison === "notLike" ){ + if( value.substr(0, 1) !== "%" )value = "%"+value; + if( value.substr(value.length-1,1) !== "%" )value = value+"%"; + parameter[ parameterName ] = value; //"%"+value+"%"; + }else{ + if( d.formatType === "dateTimeValue" || d.formatType === "datetimeValue"){ + value = "{ts '"+value+"'}" + }else if( d.formatType === "dateValue" ){ + value = "{d '"+value+"'}" + }else if( d.formatType === "timeValue" ){ + value = "{t '"+value+"'}" + } + parameter[ parameterName ] = value; + } + d.value = parameterName; + + filterList.push( d ); + }.bind(this)); + return filterList; + }, + parseParameter : function( obj ){ + if( typeOf(obj) !== "object" )return {}; + var parameter = {}; + //传入的参数 + for( var p in obj ){ + var value = obj[p]; + if( typeOf( value ) === "date" ){ + value = "{ts '"+value.format("db")+"'}" + } + parameter[ p ] = value; + } + return parameter; }, "select": function (statement, callback, options) { - if (statement.statement) { + if (statement.name) { + // var parameter = this.parseParameter(statement.parameter); + // var filterList = this.parseFilter(statement.filter, parameter); var statementJson = { - "application": statement.application || _form.json.application, - "statementName": statement.statement || "", + "statementId": statement.name || "", "isTitle": (statement.isTitle === false) ? "no" : "yes", "select": (statement.isMulti === false) ? "single" : "multi", - "filter": statement.filter + "filter": statement.filter, + "parameter": statement.parameter }; if (!options) options = {}; options.width = statement.width; diff --git a/o2web/source/o2_core/o2/xScript/ViewEnvironment.js b/o2web/source/o2_core/o2/xScript/ViewEnvironment.js index 5f0230f7f09ddef5c647e498eed35ae1a126d859..ea0e233913799988bc80d875663b365c0ff2012a 100644 --- a/o2web/source/o2_core/o2/xScript/ViewEnvironment.js +++ b/o2web/source/o2_core/o2/xScript/ViewEnvironment.js @@ -669,21 +669,67 @@ MWF.xScript.ViewEnvironment = function (ev) { this.statement = { "execute": function (statement, callback, async) { - var obj = { "filterList": (statement.filterList || []), parameter : (statement.parameter || {}) }; + var parameter = this.parseParameter(statement.parameter); + var filterList = this.parseFilter(statement.filter, parameter); + var obj = { + "filterList": filterList, + "parameter" : parameter + }; MWF.Actions.load("x_query_assemble_surface").StatementAction.executeV2( statement.name, statement.mode || "data", statement.page || 1, statement.pageSize || 20, obj, function (json) { if (callback) callback(json); }, null, async); }, + parseFilter : function( filter, parameter ){ + if( typeOf(filter) !== "array" )return []; + var filterList = []; + ( filter || [] ).each( function (d) { + var parameterName = d.path.replace(/\./g, "_"); + var value = d.value; + if( d.comparison === "like" || d.comparison === "notLike" ){ + if( value.substr(0, 1) !== "%" )value = "%"+value; + if( value.substr(value.length-1,1) !== "%" )value = value+"%"; + parameter[ parameterName ] = value; //"%"+value+"%"; + }else{ + if( d.formatType === "dateTimeValue" || d.formatType === "datetimeValue"){ + value = "{ts '"+value+"'}" + }else if( d.formatType === "dateValue" ){ + value = "{d '"+value+"'}" + }else if( d.formatType === "timeValue" ){ + value = "{t '"+value+"'}" + } + parameter[ parameterName ] = value; + } + d.value = parameterName; + + filterList.push( d ); + }.bind(this)); + return filterList; + }, + parseParameter : function( obj ){ + if( typeOf(obj) !== "object" )return {}; + var parameter = {}; + //传入的参数 + for( var p in obj ){ + var value = obj[p]; + if( typeOf( value ) === "date" ){ + value = "{ts '"+value.format("db")+"'}" + } + parameter[ p ] = value; + } + return parameter; + }, "select": function (statement, callback, options) { - if (statement.statement) { + if (statement.name) { + // var parameter = this.parseParameter(statement.parameter); + // var filterList = this.parseFilter(statement.filter, parameter); var statementJson = { - "application": statement.application || _form.json.application, - "statementName": statement.statement || "", + "statementId": statement.name || "", "isTitle": (statement.isTitle === false) ? "no" : "yes", "select": (statement.isMulti === false) ? "single" : "multi", - "filter": statement.filter + "filter": statement.filter, + "parameter": statement.parameter }; if (!options) options = {}; options.width = statement.width; @@ -872,7 +918,8 @@ MWF.xScript.ViewEnvironment = function (ev) { "selectAll" : function () { return _form.selectAll(); }, "unSelectAll" : function () { return _form.unSelectAll(); }, "getSelectedData" : function () { return _form.getSelectedData(); }, - "setFilter" : function ( filter ) { return _form.setFilter(filter); }, + "setFilter" : function ( filter, callback ) { return _form.setFilter(filter, callback); }, + "setStatementFilter" : function ( filter , parameter, callback) { return _form.setFilter(filter, parameter, callback); }, "switchView" : function ( options ) { return _form.switchView(options); }, "switchStatement" : function ( options ) { if(_form.switchStatement)_form.switchStatement(options) ; }, "reload" : function () { _form.reload(); }, diff --git a/o2web/source/x_component_query_Query/Statement.js b/o2web/source/x_component_query_Query/Statement.js index afab88ef5706b6418071068633b27afdf3b72e34..1bdffdfd5115a985f42ffded0ed7ba6b3df66994 100644 --- a/o2web/source/x_component_query_Query/Statement.js +++ b/o2web/source/x_component_query_Query/Statement.js @@ -53,6 +53,7 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({ if (this.json.view){ this.viewJson = JSON.decode(this.json.view); this.statementJson = this.json; + this.statementJson.viewJson = this.viewJson; if (callback) callback(); }else{ this.getView(callback); @@ -181,6 +182,7 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({ }, loadParameter : function(){ this.parameter = {}; + debugger; var parameter = this.json.parameter ? Object.clone(this.json.parameter) : {}; //系统默认的参数 ( this.viewJson.parameterList || [] ).each( function (f) { @@ -189,36 +191,31 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({ value = parameter[ f.parameter ]; delete parameter[ f.parameter ]; } - debugger; if( typeOf( value ) === "date" ){ value = value.format("db"); } if( f.valueType === "script" ){ value = this.Macro.exec( f.valueScript ? f.valueScript.code : "", this); }else{ - //var user = layout.user; + var user = layout.user; switch ( f.value ) { case "@person": - case "person": - //value = user.distinguishedName; + value = user.distinguishedName; break; case "@identityList": - case "identityList": - //value = user.identityList.map( function (d) { - // return d.distinguishedName; - //}); + value = user.identityList.map( function (d) { + return d.distinguishedName; + }); break; case "@unitList": - case "unitList": - //o2.Actions.load("x_organization_assemble_express").UnitAction.listWithPerson({ "personList" : [user.distinguishedName] }, function (json) { - // value = json.unitList; - //}, null, false); + o2.Actions.load("x_organization_assemble_express").UnitAction.listWithPerson({ "personList" : [user.distinguishedName] }, function (json) { + value = json.unitList; + }, null, false); break; case "@unitAllList": - case "unitAllList": - //o2.Actions.load("x_organization_assemble_express").UnitAction.listWithIdentitySupNested({ "personList" : [user.distinguishedName] }, function (json) { - // value = json.unitList; - //}, null, false); + o2.Actions.load("x_organization_assemble_express").UnitAction.listWithIdentitySupNested({ "personList" : [user.distinguishedName] }, function (json) { + value = json.unitList; + }, null, false); break; case "@year": value = (new Date().getFullYear()).toString(); @@ -260,9 +257,9 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({ for( var p in parameter ){ var value = parameter[p]; if( typeOf( value ) === "date" ){ - value = "{ts '"+value+"'}" + value = "{ts '"+value.format("db")+"'}" } - parameter[ p ] = value; + this.parameter[ p ] = value; } }, loadCurrentPageData: function( callback, async, type ){ @@ -332,6 +329,7 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({ this.json.application = json.data.query; //this.json = Object.merge(this.json, json.data); this.statementJson = json.data; + this.statementJson.viewJson = this.viewJson; if (callback) callback(); }.bind(this)); }, @@ -480,7 +478,15 @@ MWF.xApplication.query.Query.Statement = MWF.QStatement = new Class({ }, //搜索相关结束 getStatementInfor : function () { - return this.json; + debugger; + return this.statementJson; + }, + getPageInfor : function(){ + return { + pages : this.pages, + perPageCount : this.json.pageSize, + currentPageNumber : this.currentPage + }; }, switchStatement : function (json) { this.switchView(json); diff --git a/o2web/source/x_component_query_StatementDesigner/Main.js b/o2web/source/x_component_query_StatementDesigner/Main.js index d541c3ca3df4ff76ddd8f518fa0c0dab6f72379d..7dc533b9ec88f353eda2cc71565782424e38b2fa 100644 --- a/o2web/source/x_component_query_StatementDesigner/Main.js +++ b/o2web/source/x_component_query_StatementDesigner/Main.js @@ -112,12 +112,15 @@ MWF.xApplication.query.StatementDesigner.Main = new Class({ this.statementListNode = new Element("div", { "styles": this.css.statementListNode }).inject(this.node); + this.designerNode = new Element("div", { "styles": this.css.designerNode }).inject(this.node); + this.contentNode = new Element("div", { "styles": this.css.contentNode }).inject(this.node); + this.formContentNode = this.contentNode; }, loadStatementListNodes: function(){ this.statementListTitleNode = new Element("div", { diff --git a/o2web/source/x_component_query_ViewDesigner/Main.js b/o2web/source/x_component_query_ViewDesigner/Main.js index 83abed6ac2228d01bf7e99de64925051300fe7bb..da3039917ff437d48fb880d97bf6139d2bcd6136 100644 --- a/o2web/source/x_component_query_ViewDesigner/Main.js +++ b/o2web/source/x_component_query_ViewDesigner/Main.js @@ -231,6 +231,7 @@ MWF.xApplication.query.ViewDesigner.Main = new Class({ this.contentNode = new Element("div", { "styles": this.css.contentNode }).inject(this.node); + this.formContentNode = this.contentNode; }, //loadViewListNodes------------------------------- diff --git a/o2web/source/x_component_query_ViewDesigner/Property.js b/o2web/source/x_component_query_ViewDesigner/Property.js index 61962d6fc1dea501d1931848bcfb759fabe06324..b88d4529a7d913b9e579295f6b7b87d509b261f7 100644 --- a/o2web/source/x_component_query_ViewDesigner/Property.js +++ b/o2web/source/x_component_query_ViewDesigner/Property.js @@ -929,6 +929,7 @@ MWF.xApplication.query.ViewDesigner.Property = MWF.FVProperty = new Class({ } }, loadActionArea: function () { + debugger; MWF.xApplication.process = MWF.xApplication.process || {}; MWF.APPFD = MWF.xApplication.process.FormDesigner = MWF.xApplication.process.FormDesigner || {}; MWF.xDesktop.requireApp("process.FormDesigner", "lp." + o2.language, null, false); @@ -952,7 +953,7 @@ MWF.xApplication.query.ViewDesigner.Property = MWF.FVProperty = new Class({ // actionEditor.load(this.module.defaultToolBarsData); var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, this.data, { - "maxObj": this.propertyNode.parentElement.parentElement.parentElement, + "maxObj": this.propertyNode.parentElement.parentElement, "noEditShow": true, "noReadShow": true, "onChange": function () { @@ -972,7 +973,7 @@ MWF.xApplication.query.ViewDesigner.Property = MWF.FVProperty = new Class({ MWF.xDesktop.requireApp("process.FormDesigner", "widget.ActionsEditor", function () { var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, this.data, { - "maxObj": this.propertyNode.parentElement.parentElement.parentElement, + "maxObj": this.propertyNode.parentElement.parentElement, "isSystemTool": true, "systemToolsAddress": "../x_component_query_ViewDesigner/$View/toolbars.json", "noCreate": true,