details: https://code.openbravo.com/erp/devel/pi/rev/e10bc2fc5f83 changeset: 31751:e10bc2fc5f83 user: Inigo Sanchez <inigo.sanchez <at> openbravo.com> date: Tue Mar 28 17:55:09 2017 +0200 summary: Fixed issue 35536: Deactivated summary function in computed columns.
The summary functions didn't work as expected in computed columns. As computed columns allow to be defined with any arbitrary sql statement, the risk of underperformance when included in a summary function is much bigger. Because of this, to avoid this problem, it has been resolved by blocking the use of the summary functions in computed columns. diffstat: modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl | 5 ++- modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java | 20 ++++++++++ modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js | 4 +- 3 files changed, 26 insertions(+), 3 deletions(-) diffs (108 lines): diff -r 8e2360637c67 -r e10bc2fc5f83 modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl --- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl Wed Mar 29 09:15:58 2017 +0200 +++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl Tue Mar 28 17:55:09 2017 +0200 @@ -12,7 +12,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2010-2015 Openbravo SLU + * All portions are Copyright (C) 2010-2017 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -123,6 +123,9 @@ summaryFunction: 'sum', </#if> </#if> + <#if field.isComputedColumn> + isComputedColumn: true, + </#if> </@compress> </#if> <#if field.type = "OBSectionItem" || field.type = "OBNoteSectionItem" || field.type = "OBLinkedItemSectionItem" || field.type = "OBAttachmentsSectionItem" || field.type = "OBAuditSectionItem"> diff -r 8e2360637c67 -r e10bc2fc5f83 modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java --- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java Wed Mar 29 09:15:58 2017 +0200 +++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java Tue Mar 28 17:55:09 2017 +0200 @@ -631,6 +631,8 @@ public boolean getHasDefaultValue(); public String getDisplayLogicGrid(); + + public boolean getIsComputedColumn(); } public class OBViewFieldAudit implements OBViewFieldDefinition { @@ -905,6 +907,9 @@ return null; } + public boolean getIsComputedColumn() { + return false; + } } public class OBClientClassField implements OBViewFieldDefinition { @@ -1170,6 +1175,10 @@ public String getId() { return null; } + + public boolean getIsComputedColumn() { + return false; + } } public class OBViewField implements OBViewFieldDefinition { @@ -1185,6 +1194,10 @@ private int gridSort = 0; private String id; + public boolean getIsComputedColumn() { + return property.isComputedColumn(); + } + public String getClientClass() { return field.getClientclass() == null ? "" : field.getClientclass(); } @@ -1798,6 +1811,10 @@ public String getId() { return null; } + + public boolean getIsComputedColumn() { + return false; + } } public class OBViewFieldGroup extends DefaultVirtualField { @@ -2237,6 +2254,9 @@ return null; } + public boolean getIsComputedColumn() { + return false; + } } public static class FormFieldComparator implements Comparator<Field> { diff -r 8e2360637c67 -r e10bc2fc5f83 modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js --- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js Wed Mar 29 09:15:58 2017 +0200 +++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js Tue Mar 28 17:55:09 2017 +0200 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2010-2016 Openbravo SLU + * All portions are Copyright (C) 2010-2017 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -701,7 +701,7 @@ } } - if (field && this.allowSummaryFunctions) { + if (field && this.allowSummaryFunctions && !field.isComputedColumn) { type = isc.SimpleType.getType(field.type); isDate = isc.SimpleType.inheritsFrom(type, 'date'); isNumber = isc.SimpleType.inheritsFrom(type, 'integer') || isc.SimpleType.inheritsFrom(type, 'float'); ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits