From 8aa99f59a4ab4fba762c072b210620aa9f6a8ddd Mon Sep 17 00:00:00 2001 From: "Ocke Janssen [oj]" Date: Thu, 7 Jan 2010 09:16:59 +0100 Subject: check already quoted expression --- reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java | 4 ++-- reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'reportbuilder') diff --git a/reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java b/reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java index 5c3032e3a7f9..cbd215220bc9 100644 --- a/reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java +++ b/reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java @@ -210,7 +210,7 @@ public class SDBCReportDataFactory implements DataSourceFactory final Boolean escapeProcessing = (Boolean) parameters.get(ESCAPE_PROCESSING); final String filter = (String) parameters.get(UNO_FILTER); final Integer maxRows = (Integer) parameters.get("MaxRows"); - RowSetProperties rowSetProps = new RowSetProperties(escapeProcessing, commandType, command, filter, maxRows); + final RowSetProperties rowSetProps = new RowSetProperties(escapeProcessing, commandType, command, filter, maxRows); final Object[] p = createRowSet(rowSetProps, parameters); final XRowSet rowSet = (XRowSet) p[0]; @@ -260,7 +260,7 @@ public class SDBCReportDataFactory implements DataSourceFactory final Object[] pair = (Object[]) groupExpressions.get(i); String expression = (String) pair[0]; - if (columns.hasByName(expression)) + if (!expression.startsWith(quote) && columns.hasByName(expression)) { expression = quote + expression + quote; } diff --git a/reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java b/reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java index 23f959e05943..6641092ca6ee 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java @@ -257,6 +257,11 @@ public class PentahoReportJob implements ReportJob if (parameters.length > 0) { String name = parameters[0].toString(); + if (parameters[0] instanceof ContextLookup) + { + final ContextLookup context = (ContextLookup) parameters[0]; + name = context.getName(); + } for (int j = 0; j < reportFunctions.length; j++) { if (reportFunctions[j] instanceof FormulaExpression) -- cgit From 1ddcd1caed5fa7b63df12385839f6f4c15b883ed Mon Sep 17 00:00:00 2001 From: "Ocke Janssen [oj]" Date: Fri, 8 Jan 2010 09:23:27 +0100 Subject: dba33e: #i107472# correct class param for ConnectionTools --- .../com/sun/star/report/SDBCReportDataFactory.java | 268 ++------------------- .../sun/star/report/pentaho/PentahoReportJob.java | 2 +- 2 files changed, 27 insertions(+), 243 deletions(-) (limited to 'reportbuilder') diff --git a/reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java b/reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java index cbd215220bc9..8653d0ba6e3d 100644 --- a/reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java +++ b/reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java @@ -254,33 +254,35 @@ public class SDBCReportDataFactory implements DataSourceFactory final String quote = connection.getMetaData().getIdentifierQuoteString(); final XComponent[] hold = new XComponent[1]; final XNameAccess columns = getFieldsByCommandDescriptor(commandType, command, hold); - - for (int i = 0; i < count; i++) + if (columns != null) { - final Object[] pair = (Object[]) groupExpressions.get(i); - String expression = (String) pair[0]; - - if (!expression.startsWith(quote) && columns.hasByName(expression)) + for (int i = 0; i < count; i++) { - expression = quote + expression + quote; - } - expression = expression.trim(); // Trim away white spaces + final Object[] pair = (Object[]) groupExpressions.get(i); + String expression = (String) pair[0]; - if (expression.length() > 0) - { - order.append(expression); - if (order.length() > 0) + if (!expression.startsWith(quote) && columns.hasByName(expression)) { - order.append(' '); + expression = quote + expression + quote; } - final String sorting = (String) pair[1]; - if (sorting == null || sorting.equals(OfficeToken.FALSE)) - { - order.append("DESC"); - } - if ((i + 1) < count) + expression = expression.trim(); // Trim away white spaces + + if (expression.length() > 0) { - order.append(", "); + order.append(expression); + if (order.length() > 0) + { + order.append(' '); + } + final String sorting = (String) pair[1]; + if (sorting == null || sorting.equals(OfficeToken.FALSE)) + { + order.append("DESC"); + } + if ((i + 1) < count) + { + order.append(", "); + } } } } @@ -296,7 +298,7 @@ public class SDBCReportDataFactory implements DataSourceFactory private XNameAccess getFieldsByCommandDescriptor(final int commandType, final String command, final XComponent[] out) throws SQLException { final Class[] parameter = new Class[3]; - parameter[0] = Integer.class; + parameter[0] = int.class; parameter[1] = String.class; parameter[2] = out.getClass(); final XConnectionTools tools = (XConnectionTools) UnoRuntime.queryInterface(XConnectionTools.class, connection); @@ -309,171 +311,7 @@ public class SDBCReportDataFactory implements DataSourceFactory { } - XNameAccess xFields = null; - // some kind of state machine to ease the sharing of code - int eState = FAILED; - switch (commandType) - { - case CommandType.TABLE: - eState = HANDLE_TABLE; - break; - case CommandType.QUERY: - eState = HANDLE_QUERY; - break; - case CommandType.COMMAND: - eState = HANDLE_SQL; - break; - } - - // needed in various states: - XNameAccess xObjectCollection = null; - XColumnsSupplier xSupplyColumns = null; - - try - { - // go! - while ((DONE != eState) && (FAILED != eState)) - { - switch (eState) - { - case HANDLE_TABLE: - { - // initial state for handling the tables - - // get the table objects - final XTablesSupplier xSupplyTables = (XTablesSupplier) UnoRuntime.queryInterface(XTablesSupplier.class, connection); - if (xSupplyTables != null) - { - xObjectCollection = xSupplyTables.getTables(); - // if something went wrong 'til here, then this will be handled in the next state - - // next state: get the object - } - eState = RETRIEVE_OBJECT; - } - break; - - case HANDLE_QUERY: - { - // initial state for handling the tables - - // get the table objects - final XQueriesSupplier xSupplyQueries = (XQueriesSupplier) UnoRuntime.queryInterface(XQueriesSupplier.class, connection); - if (xSupplyQueries != null) - { - xObjectCollection = xSupplyQueries.getQueries(); - // if something went wrong 'til here, then this will be handled in the next state - - // next state: get the object - } - eState = RETRIEVE_OBJECT; - } - break; - - case RETRIEVE_OBJECT: - // here we should have an object (aka query or table) collection, and are going - // to retrieve the desired object - - // next state: default to FAILED - eState = FAILED; - - if (xObjectCollection != null && xObjectCollection.hasByName(command)) - { - xSupplyColumns = (XColumnsSupplier) UnoRuntime.queryInterface(XColumnsSupplier.class, xObjectCollection.getByName(command)); - - // next: go for the columns - eState = RETRIEVE_COLUMNS; - } - break; - - case RETRIEVE_COLUMNS: - // next state: default to FAILED - eState = FAILED; - - if (xSupplyColumns != null) - { - xFields = xSupplyColumns.getColumns(); - // that's it - eState = DONE; - } - break; - - case HANDLE_SQL: - { - String sStatementToExecute = command; - - // well, the main problem here is to handle statements which contain a parameter - // If we would simply execute a parametrized statement, then this will fail because - // we cannot supply any parameter values. - // Thus, we try to analyze the statement, and to append a WHERE 0=1 filter criterion - // This should cause every driver to not really execute the statement, but to return - // an empty result set with the proper structure. We then can use this result set - // to retrieve the columns. - - try - { - final XMultiServiceFactory xComposerFac = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, connection); - - if (xComposerFac != null) - { - final XSingleSelectQueryComposer xComposer = (XSingleSelectQueryComposer) UnoRuntime.queryInterface(XSingleSelectQueryComposer.class, xComposerFac.createInstance("com.sun.star.sdb.SingleSelectQueryComposer")); - if (xComposer != null) - { - xComposer.setQuery(sStatementToExecute); - - // Now set the filter to a dummy restriction which will result in an empty - // result set. - xComposer.setFilter("0=1"); - - sStatementToExecute = xComposer.getQuery(); - } - } - } - catch (com.sun.star.uno.Exception ex) - { - // silent this error, this was just a try. If we're here, we did not change sStatementToExecute, - // so it will still be _rCommand, which then will be executed without being touched - } - - // now execute - final XPreparedStatement xStatement = connection.prepareStatement(sStatementToExecute); - // transfer ownership of this temporary object to the caller - out[0] = (XComponent) UnoRuntime.queryInterface(XComponent.class, xStatement); - - // set the "MaxRows" to 0. This is just in case our attempt to append a 0=1 filter - // failed - in this case, the MaxRows restriction should at least ensure that there - // is no data returned (which would be potentially expensive) - final XPropertySet xStatementProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xStatement); - try - { - if (xStatementProps != null) - { - xStatementProps.setPropertyValue("MaxRows", Integer.valueOf(0)); - } - } - catch (com.sun.star.uno.Exception ex) - { - // oh damn. Not much of a chance to recover, we will no retrieve the complete - // full blown result set - } - - xSupplyColumns = (XColumnsSupplier) UnoRuntime.queryInterface(XColumnsSupplier.class, xStatement.executeQuery()); - // this should have given us a result set which does not contain any data, but - // the structural information we need - - // so the next state is to get the columns - eState = RETRIEVE_COLUMNS; - } - break; - default: - eState = FAILED; - } - } - } - catch (com.sun.star.uno.Exception ex) - { - } - return xFields; + throw new SQLException(); } private XSingleSelectQueryComposer getComposer(final XConnectionTools tools, @@ -504,61 +342,7 @@ public class SDBCReportDataFactory implements DataSourceFactory // should not happen // assert False } - try - { - final XMultiServiceFactory factory = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, connection); - final XSingleSelectQueryComposer out = (XSingleSelectQueryComposer) UnoRuntime.queryInterface(XSingleSelectQueryComposer.class, factory.createInstance("com.sun.star.sdb.SingleSelectQueryAnalyzer")); - final String quote = connection.getMetaData().getIdentifierQuoteString(); - String statement = command; - switch (commandType) - { - case CommandType.TABLE: - statement = "SELECT * FROM " + quote + command + quote; - break; - case CommandType.QUERY: - { - final XQueriesSupplier xSupplyQueries = (XQueriesSupplier) UnoRuntime.queryInterface(XQueriesSupplier.class, connection); - final XNameAccess queries = xSupplyQueries.getQueries(); - if (queries.hasByName(command)) - { - final XPropertySet prop = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, queries.getByName(command)); - final Boolean escape = (Boolean) prop.getPropertyValue(ESCAPEPROCESSING); - if (escape) - { - statement = (String) prop.getPropertyValue(UNO_COMMAND); - final XSingleSelectQueryComposer composer = getComposer(tools, statement, CommandType.COMMAND); - if (composer != null) - { - final String order = (String) prop.getPropertyValue(UNO_ORDER); - if (order != null && order.length() != 0) - { - composer.setOrder(order); - } - final Boolean applyFilter = (Boolean) prop.getPropertyValue(UNO_APPLY_FILTER); - if (applyFilter) - { - final String filter = (String) prop.getPropertyValue(UNO_FILTER); - if (filter != null && filter.length() != 0) - { - composer.setFilter(filter); - } - } - statement = composer.getQuery(); - } - } - } - break; - } - case CommandType.COMMAND: - statement = command; - break; - } - out.setElementaryQuery(statement); - return out; - } - catch (Exception e) - { - } + return null; } diff --git a/reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java b/reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java index 6641092ca6ee..6889e3100f92 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java @@ -375,7 +375,7 @@ public class PentahoReportJob implements ReportJob catch (final Exception e) { String message = e.getMessage(); - if (message.length() == 0) + if (message == null || message.length() == 0) { message = "Failed to process the report"; } -- cgit From ed6a92553b678c64d7c6c0f8b3259e014a4851b3 Mon Sep 17 00:00:00 2001 From: "Ocke Janssen [oj]" Date: Fri, 8 Jan 2010 10:16:56 +0100 Subject: dba33e: #i108092# set NAN when double value is NULL --- .../sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java | 2 +- .../report/pentaho/layoutprocessor/TableCellLayoutController.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'reportbuilder') diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java index 405fe4a2815b..79c946c9643d 100755 --- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java @@ -57,7 +57,7 @@ public class FormatValueUtility private static final String BOOLEAN_VALUE = "boolean-value"; private static final String STRING_VALUE = "string-value"; public static final String VALUE_TYPE = "value-type"; - private static final String VALUE = "value"; + public static final String VALUE = "value"; private static SimpleDateFormat dateFormat; private static SimpleDateFormat timeFormat; diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java index 5393a5e13a15..baba6c9aafe5 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java @@ -80,6 +80,10 @@ public class TableCellLayoutController extends SectionLayoutController { FormatValueUtility.applyValueForCell(value.getValue(), attributeMap, valueType); } + else if ( "float".equals(valueType)) + { + attributeMap.setAttribute(OfficeNamespaces.OFFICE_NS, FormatValueUtility.VALUE, "1.#NAN"); + } } catch (Exception e) { -- cgit From 75877a17a64411bd6bbad536f0d6885d69b5f149 Mon Sep 17 00:00:00 2001 From: Vladimir Glazunov Date: Mon, 29 Mar 2010 16:24:13 +0200 Subject: native0ext:#161688# rebranding extensions - transplanted from 28f77bc32e70@native0 --- reportbuilder/images/em42.png | Bin 1965 -> 1814 bytes reportbuilder/images/em42_hc.png | Bin 1160 -> 3119 bytes reportbuilder/util/component.txt | 2 +- reportbuilder/util/description.xml | 9 ++++++--- reportbuilder/util/makefile.mk | 6 +++--- reportbuilder/util/manifest.xml | 2 -- 6 files changed, 10 insertions(+), 9 deletions(-) mode change 100644 => 100755 reportbuilder/images/em42.png mode change 100644 => 100755 reportbuilder/images/em42_hc.png (limited to 'reportbuilder') diff --git a/reportbuilder/images/em42.png b/reportbuilder/images/em42.png old mode 100644 new mode 100755 index 31f48ea8fb69..4906707257bf Binary files a/reportbuilder/images/em42.png and b/reportbuilder/images/em42.png differ diff --git a/reportbuilder/images/em42_hc.png b/reportbuilder/images/em42_hc.png old mode 100644 new mode 100755 index 3870cc4709d4..f04df059c4ae Binary files a/reportbuilder/images/em42_hc.png and b/reportbuilder/images/em42_hc.png differ diff --git a/reportbuilder/util/component.txt b/reportbuilder/util/component.txt index 17f312c8ea72..3b6ba3156efc 100644 --- a/reportbuilder/util/component.txt +++ b/reportbuilder/util/component.txt @@ -1 +1 @@ -Create with the Sun Report Builder stylish, smart-looking database reports. The flexible report editor can define group and page headers as well as group and page footers and even calculation fields are available to accomplish complex database reports. +Create with the Oracle Report Builder stylish, smart-looking database reports. The flexible report editor can define group and page headers as well as group and page footers and even calculation fields are available to accomplish complex database reports. diff --git a/reportbuilder/util/description.xml b/reportbuilder/util/description.xml index c254d5bd1a73..9a495af0fd71 100644 --- a/reportbuilder/util/description.xml +++ b/reportbuilder/util/description.xml @@ -3,11 +3,11 @@ xmlns:d="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink"> - Sun Report Builder + Oracle Report Builder - + @@ -17,11 +17,14 @@ - Sun Microsystems, Inc. + Oracle, Inc. + + + diff --git a/reportbuilder/util/makefile.mk b/reportbuilder/util/makefile.mk index f36b1f50406c..1c69f01333cf 100644 --- a/reportbuilder/util/makefile.mk +++ b/reportbuilder/util/makefile.mk @@ -28,7 +28,7 @@ PRJ=.. PRJNAME=reportbuilder TARGET=rpt -EXTENSION_VERSION_BASE=1.2.0 +EXTENSION_VERSION_BASE=1.2.1 .IF "$(CWS_WORK_STAMP)" == "" EXTENSION_VERSION=$(EXTENSION_VERSION_BASE) @@ -41,8 +41,8 @@ EXTENSION_VERSION_BASE=1.2.0 .IF "$(L10N_framework)"=="" # ------------------------------------------------------------------ # calready set in util$/makefile.pmk -# EXTENSIONNAME:=sun-report-builder -EXTENSION_ZIPNAME:=sun-report-builder +# EXTENSIONNAME:=oracle-report-builder +EXTENSION_ZIPNAME:=oracle-report-builder # create Extension ----------------------------- diff --git a/reportbuilder/util/manifest.xml b/reportbuilder/util/manifest.xml index 8ea30b6ad08e..1a5a0f84623b 100644 --- a/reportbuilder/util/manifest.xml +++ b/reportbuilder/util/manifest.xml @@ -3,5 +3,3 @@ - -- cgit From 32a41d0d54881f6b0b2c878adce9e31a2287db87 Mon Sep 17 00:00:00 2001 From: Vladimir Glazunov Date: Mon, 29 Mar 2010 16:47:49 +0200 Subject: native0ext:#161688# rebranding extensions, part 2 - transplanted from 3d9497740c41@native0 --- reportbuilder/images/em42.png | Bin 1814 -> 0 bytes reportbuilder/images/em42_hc.png | Bin 3119 -> 0 bytes reportbuilder/images/em47.png | Bin 0 -> 5448 bytes reportbuilder/images/em47_hc.png | Bin 0 -> 3182 bytes reportbuilder/util/description.xml | 6 +++--- reportbuilder/util/makefile.mk | 4 ++-- 6 files changed, 5 insertions(+), 5 deletions(-) delete mode 100755 reportbuilder/images/em42.png delete mode 100755 reportbuilder/images/em42_hc.png create mode 100644 reportbuilder/images/em47.png create mode 100644 reportbuilder/images/em47_hc.png (limited to 'reportbuilder') diff --git a/reportbuilder/images/em42.png b/reportbuilder/images/em42.png deleted file mode 100755 index 4906707257bf..000000000000 Binary files a/reportbuilder/images/em42.png and /dev/null differ diff --git a/reportbuilder/images/em42_hc.png b/reportbuilder/images/em42_hc.png deleted file mode 100755 index f04df059c4ae..000000000000 Binary files a/reportbuilder/images/em42_hc.png and /dev/null differ diff --git a/reportbuilder/images/em47.png b/reportbuilder/images/em47.png new file mode 100644 index 000000000000..a018f1710ea5 Binary files /dev/null and b/reportbuilder/images/em47.png differ diff --git a/reportbuilder/images/em47_hc.png b/reportbuilder/images/em47_hc.png new file mode 100644 index 000000000000..418cd1479298 Binary files /dev/null and b/reportbuilder/images/em47_hc.png differ diff --git a/reportbuilder/util/description.xml b/reportbuilder/util/description.xml index 9a495af0fd71..186b7a443c74 100644 --- a/reportbuilder/util/description.xml +++ b/reportbuilder/util/description.xml @@ -17,11 +17,11 @@ - Oracle, Inc. + Oracle. - - + + diff --git a/reportbuilder/util/makefile.mk b/reportbuilder/util/makefile.mk index 1c69f01333cf..7ff8f64e7938 100644 --- a/reportbuilder/util/makefile.mk +++ b/reportbuilder/util/makefile.mk @@ -76,8 +76,8 @@ COMPONENT_OTR_FILES= \ $(EXTENSIONDIR)$/template$/en-US$/wizard$/report$/default.otr COMPONENT_IMAGES= \ - $(EXTENSIONDIR)$/images$/em42.png \ - $(EXTENSIONDIR)$/images$/em42_hc.png + $(EXTENSIONDIR)$/images$/em47.png \ + $(EXTENSIONDIR)$/images$/em47_hc.png COMPONENT_HTMLFILES = $(EXTENSIONDIR)$/THIRDPARTYREADMELICENSE.html \ $(EXTENSIONDIR)$/readme_en-US.html \ -- cgit From 401c922376c122b51189cd017162a8ddfb46799a Mon Sep 17 00:00:00 2001 From: Vladimir Glazunov Date: Tue, 30 Mar 2010 11:19:24 +0200 Subject: native0ext:#161688# rebranding extensions, part 2 - transplanted from 7e1d416e40bf@native0 --- reportbuilder/util/description.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'reportbuilder') diff --git a/reportbuilder/util/description.xml b/reportbuilder/util/description.xml index 186b7a443c74..82ae8544b48b 100644 --- a/reportbuilder/util/description.xml +++ b/reportbuilder/util/description.xml @@ -17,7 +17,7 @@ - Oracle. + Oracle -- cgit