Просмотр исходного кода

添加查询语句相关API方法

unknown 5 лет назад
Родитель
Сommit
0a1130917e

+ 56 - 11
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;

+ 56 - 11
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;

+ 56 - 11
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;

+ 49 - 4
o2web/source/o2_core/o2/xScript/ViewEnvironment.js

@@ -669,18 +669,63 @@ MWF.xScript.ViewEnvironment = function (ev) {
 
     this.statement = {
         "execute": function (statement, callback, async) {
-            var obj = { "filterList": (statement.filter || []), 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,

+ 3 - 0
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", {

+ 1 - 0
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-------------------------------

+ 3 - 2
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,