diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-06-25 13:28:18 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-06-25 13:28:18 +0000 |
commit | 84298c18d66b417b73e958b003eb181be199f461 (patch) | |
tree | b92c93f233f53bb7a4f19091c1fb0c30c3d51cdf /wizards/com/sun/star/wizards/db | |
parent | b7f1a299ab0cce3fd2df32098636bf9912882341 (diff) |
INTEGRATION: CWS rptwizard01 (1.10.104); FILE MERGED
2008/06/03 09:45:25 lla 1.10.104.4: #i86092# problem with sorting fixed
2008/05/21 10:13:16 lla 1.10.104.3: RESYNC: (1.10-1.11); FILE MERGED
2008/05/20 10:54:36 lla 1.10.104.2: #i86092# fix a wrong '==' with java strings, we must use 'equals()'
2008/02/14 13:14:57 lla 1.10.104.1: #i86092# cleanups
Diffstat (limited to 'wizards/com/sun/star/wizards/db')
-rw-r--r-- | wizards/com/sun/star/wizards/db/SQLQueryComposer.java | 62 |
1 files changed, 45 insertions, 17 deletions
diff --git a/wizards/com/sun/star/wizards/db/SQLQueryComposer.java b/wizards/com/sun/star/wizards/db/SQLQueryComposer.java index b1e8985dabe4..18ac74a3bb83 100644 --- a/wizards/com/sun/star/wizards/db/SQLQueryComposer.java +++ b/wizards/com/sun/star/wizards/db/SQLQueryComposer.java @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: SQLQueryComposer.java,v $ - * $Revision: 1.11 $ + * $Revision: 1.12 $ * * This file is part of OpenOffice.org. * @@ -26,7 +26,8 @@ * <http://www.openoffice.org/license.html> * for a copy of the LGPLv3 License. * - ************************************************************************/package com.sun.star.wizards.db; + ************************************************************************/ +package com.sun.star.wizards.db; import java.util.Vector; @@ -144,13 +145,13 @@ public class SQLQueryComposer { public void prependSortingCriteria() throws SQLException{ XIndexAccess xColumnIndexAccess = xQueryAnalyzer.getOrderColumns(); xQueryComposer.setOrder(""); - for (int i = 0; i < CurDBMetaData.SortFieldNames.length; i++) + for (int i = 0; i < CurDBMetaData.getSortFieldNames().length; i++) appendSortingCriterion(i, false); for (int i = 0; i < xColumnIndexAccess.getCount(); i++){ try { XPropertySet xColumnPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xColumnIndexAccess.getByIndex(i)); String sName = (String) xColumnPropertySet.getPropertyValue("Name"); - if (JavaTools.FieldInTable(CurDBMetaData.SortFieldNames, sName) == -1){ + if (JavaTools.FieldInTable(CurDBMetaData.getSortFieldNames(), sName) == -1){ boolean bascend = AnyConverter.toBoolean(xColumnPropertySet.getPropertyValue("IsAscending")); xQueryComposer.appendOrderByColumn(xColumnPropertySet, bascend); } @@ -160,9 +161,13 @@ public class SQLQueryComposer { } } - private void appendSortingCriterion(int _SortIndex, boolean _baddAliasFieldNames ) throws SQLException{ - XPropertySet xColumn = CurDBMetaData.getColumnObjectByFieldName(CurDBMetaData.SortFieldNames[_SortIndex][0], _baddAliasFieldNames); - boolean bascend = (CurDBMetaData.SortFieldNames[_SortIndex][1] == "ASC"); + private void appendSortingCriterion(int _SortIndex, boolean _baddAliasFieldNames ) throws SQLException + { + String sSortValue = CurDBMetaData.getSortFieldNames()[_SortIndex][0]; + XPropertySet xColumn = CurDBMetaData.getColumnObjectByFieldName(sSortValue, _baddAliasFieldNames); + + String sSort = CurDBMetaData.getSortFieldNames()[_SortIndex][1]; + boolean bascend = ( sSort.equals( "ASC" )); xQueryComposer.appendOrderByColumn(xColumn, bascend); } @@ -170,20 +175,30 @@ public class SQLQueryComposer { public void appendSortingcriteria(boolean _baddAliasFieldNames) throws SQLException { String sOrder = ""; xQueryComposer.setOrder(""); - for (int i = 0; i < CurDBMetaData.SortFieldNames.length; i++) { - int iAggregate = CurDBMetaData.getAggregateIndex(CurDBMetaData.SortFieldNames[i][0]); - if (iAggregate > -1){ + for (int i = 0; i < CurDBMetaData.getSortFieldNames().length; i++) + { + String sSortValue = CurDBMetaData.getSortFieldNames()[i][0]; + int iAggregate = CurDBMetaData.getAggregateIndex(sSortValue); + if (iAggregate > -1) + { sOrder = xQueryAnalyzer.getOrder(); if (sOrder.length() > 0) + { sOrder += ", "; + } sOrder += CurDBMetaData.AggregateFieldNames[iAggregate][1] + "(" + CurDBMetaData.AggregateFieldNames[iAggregate][0] + ")"; - sOrder += " " + CurDBMetaData.SortFieldNames[i][1]; + sOrder += " " + CurDBMetaData.getSortFieldNames()[i][1]; xQueryComposer.setOrder(sOrder); } else + { appendSortingCriterion(i, _baddAliasFieldNames); + } sOrder = xQueryAnalyzer.getOrder(); } + // just for debug! + sOrder = xQueryComposer.getOrder(); + int dummy = 0; } public void appendGroupByColumns(boolean _baddAliasFieldNames) throws SQLException { @@ -213,37 +228,50 @@ public class SQLQueryComposer { public boolean setQueryCommand(String QueryName, XWindow _xParentWindow, boolean _bincludeGrouping, boolean _baddAliasFieldNames) { - try { + try + { String s; bincludeGrouping = _bincludeGrouping; fromclause = "FROM"; String[] sCommandNames = CurDBMetaData.getIncludedCommandNames(); - for (int i = 0; i < sCommandNames.length; i++){ + for (int i = 0; i < sCommandNames.length; i++) + { CommandName curCommandName = new CommandName(CurDBMetaData, sCommandNames[i]); //(setComposedCommandName) curCommandName.setAliasName(getuniqueAliasName(curCommandName.getTableName())); fromclause += " " + curCommandName.getComposedName() + " " + quoteName(curCommandName.getAliasName()); if (i < sCommandNames.length - 1) + { fromclause += ", "; + } composedCommandNames.add(curCommandName); } appendSelectClause(_baddAliasFieldNames); String queryclause = selectclause + " " + fromclause; xQueryAnalyzer.setQuery(queryclause); - if (CurDBMetaData.FilterConditions != null){ - if (CurDBMetaData.FilterConditions.length > 0) { + if (CurDBMetaData.FilterConditions != null) + { + if (CurDBMetaData.FilterConditions.length > 0) + { CurDBMetaData.FilterConditions = replaceConditionsByAlias(CurDBMetaData.FilterConditions); xQueryComposer.setStructuredFilter(CurDBMetaData.FilterConditions); } } s = xQueryAnalyzer.getQuery(); - if (_bincludeGrouping){ + if (_bincludeGrouping) + { appendGroupByColumns(_baddAliasFieldNames); if (CurDBMetaData.GroupByFilterConditions.length > 0) + { xQueryComposer.setStructuredHavingClause(CurDBMetaData.GroupByFilterConditions); + } } appendSortingcriteria(_baddAliasFieldNames); + + s = xQueryAnalyzer.getQuery(); return true; - } catch (Exception exception) { + } + catch (Exception exception) + { exception.printStackTrace(System.out); displaySQLErrorDialog(exception, _xParentWindow); return false; |