diff options
-rw-r--r-- | dbaccess/source/core/api/KeySet.cxx | 2 | ||||
-rw-r--r-- | dbaccess/source/core/misc/dsntypes.cxx | 10 | ||||
-rw-r--r-- | dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx | 6 | ||||
-rw-r--r--[-rwxr-xr-x] | dbaccess/source/ui/dlg/admincontrols.cxx | 0 | ||||
-rw-r--r-- | reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx | 29 | ||||
-rw-r--r-- | reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx | 1 |
6 files changed, 32 insertions, 16 deletions
diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx index 1be6dffa6a75..f028dba66ae0 100644 --- a/dbaccess/source/core/api/KeySet.cxx +++ b/dbaccess/source/core/api/KeySet.cxx @@ -327,8 +327,8 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet) if ( sOldFilter.getLength() ) { FilterCreator aFilterCreator; - aFilterCreator.append( aFilter.makeStringAndClear() ); aFilterCreator.append( sOldFilter ); + aFilterCreator.append( aFilter.makeStringAndClear() ); aFilter = aFilterCreator.getComposedAndClear(); } xAnalyzer->setFilter(aFilter.makeStringAndClear()); diff --git a/dbaccess/source/core/misc/dsntypes.cxx b/dbaccess/source/core/misc/dsntypes.cxx index 672b88c810d4..90294dd59869 100644 --- a/dbaccess/source/core/misc/dsntypes.cxx +++ b/dbaccess/source/core/misc/dsntypes.cxx @@ -185,7 +185,7 @@ String ODsnTypeCollection::getMediaType(const ::rtl::OUString& _sURL) const // ----------------------------------------------------------------------------- String ODsnTypeCollection::getDatasourcePrefixFromMediaType(const ::rtl::OUString& _sMediaType,const ::rtl::OUString& _sExtension) { - String sURL; + String sURL, sFallbackURL; const uno::Sequence< ::rtl::OUString > aURLs = m_aDriverConfig.getURLs(); const ::rtl::OUString* pIter = aURLs.getConstArray(); const ::rtl::OUString* pEnd = pIter + aURLs.getLength(); @@ -195,13 +195,19 @@ String ODsnTypeCollection::getDatasourcePrefixFromMediaType(const ::rtl::OUStrin if ( aFeatures.getOrDefault("MediaType",::rtl::OUString()) == _sMediaType ) { const ::rtl::OUString sFileExtension = aFeatures.getOrDefault("Extension",::rtl::OUString()); - if ( (sFileExtension.getLength() && _sExtension == sFileExtension ) || !sFileExtension.getLength() || !_sExtension.getLength() ) + if ( _sExtension == sFileExtension ) { sURL = *pIter; break; } + if ( !sFileExtension.getLength() && _sExtension.getLength() ) + sFallbackURL = *pIter; } } // for(;pIter != pEnd;++pIter ) + + if ( !sURL.Len() && sFallbackURL.Len() ) + sURL = sFallbackURL; + sURL.EraseTrailingChars('*'); return sURL; } diff --git a/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx b/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx index 35b4b84e8b90..edfb331d5b59 100644 --- a/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx +++ b/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx @@ -102,7 +102,11 @@ OXMLFileBasedDatabase::OXMLFileBasedDatabase( ODBFilter& rImport, rtl::OUString sFileName = aPathOptions.SubstituteVariable(sValue); if ( sValue == sFileName ) { - sLocation = ::svt::OFileNotation(rImport.GetAbsoluteReference(sValue)).get( ::svt::OFileNotation::N_SYSTEM ); + const sal_Int32 nFileNameLength = sFileName.getLength(); + if ( ( nFileNameLength > 0 ) && ( sFileName.getStr()[ nFileNameLength - 1 ] == '/' ) ) + sFileName = sFileName.copy( 0, nFileNameLength - 1 ); + + sLocation = ::svt::OFileNotation( rImport.GetAbsoluteReference( sFileName ) ).get( ::svt::OFileNotation::N_SYSTEM ); } if ( sLocation.getLength() == 0 ) diff --git a/dbaccess/source/ui/dlg/admincontrols.cxx b/dbaccess/source/ui/dlg/admincontrols.cxx index 5139b1e77895..5139b1e77895 100755..100644 --- a/dbaccess/source/ui/dlg/admincontrols.cxx +++ b/dbaccess/source/ui/dlg/admincontrols.cxx diff --git a/reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx b/reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx index 4cf7c9c5abc9..930c7cb8ad12 100644 --- a/reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx +++ b/reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx @@ -33,6 +33,7 @@ #include <com/sun/star/sdb/CommandType.hpp> #include <com/sun/star/chart2/data/DatabaseDataProvider.hpp> #include <com/sun/star/chart2/data/XDataReceiver.hpp> +#include <com/sun/star/chart/ChartDataRowSource.hpp> #include <com/sun/star/reflection/XProxyFactory.hpp> #include <com/sun/star/sdb/CommandType.hpp> #include <comphelper/sequence.hxx> @@ -59,7 +60,6 @@ using namespace ::xmloff::token; ImportDocumentHandler::ImportDocumentHandler(uno::Reference< uno::XComponentContext > const & context) : m_xContext(context) - ,m_bOnlyOnce(true) { } // ----------------------------------------------------------------------------- @@ -124,7 +124,24 @@ void SAL_CALL ImportDocumentHandler::endDocument() throw (uno::RuntimeException, m_xDelegatee->endDocument(); uno::Reference< chart2::data::XDataReceiver > xReceiver(m_xModel,uno::UNO_QUERY_THROW); if ( xReceiver.is() ) + { xReceiver->attachDataProvider(m_xDatabaseDataProvider.get()); + // this fills the chart again + uno::Sequence< beans::PropertyValue > aArgs( 4 ); + aArgs[0] = beans::PropertyValue( + ::rtl::OUString::createFromAscii("CellRangeRepresentation"), -1, + uno::makeAny( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("all")) ), beans::PropertyState_DIRECT_VALUE ); + aArgs[1] = beans::PropertyValue( + ::rtl::OUString::createFromAscii("HasCategories"), -1, + uno::makeAny( sal_True ), beans::PropertyState_DIRECT_VALUE ); + aArgs[2] = beans::PropertyValue( + ::rtl::OUString::createFromAscii("FirstCellAsLabel"), -1, + uno::makeAny( sal_True ), beans::PropertyState_DIRECT_VALUE ); + aArgs[3] = beans::PropertyValue( + ::rtl::OUString::createFromAscii("DataRowSource"), -1, + uno::makeAny( chart::ChartDataRowSource_COLUMNS ), beans::PropertyState_DIRECT_VALUE ); + xReceiver->setArguments( aArgs ); + } } void SAL_CALL ImportDocumentHandler::startElement(const ::rtl::OUString & _sName, const uno::Reference< xml::sax::XAttributeList > & _xAttrList) throw (uno::RuntimeException, xml::sax::SAXException) @@ -257,16 +274,6 @@ void SAL_CALL ImportDocumentHandler::startElement(const ::rtl::OUString & _sName } } // for(;pArgIter != pArgEnd;++pArgIter) - if ( m_bOnlyOnce ) - { - try - { - m_xDatabaseDataProvider->createDataSource(m_aArguments); - m_bOnlyOnce = false; - } - catch(uno::Exception) - {} - } // if ( m_bOnlyOnce ) SvXMLAttributeList* pList = new SvXMLAttributeList(); xNewAttribs = pList; diff --git a/reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx b/reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx index 068fac8cb5f9..69772a71674d 100644 --- a/reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx +++ b/reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx @@ -100,7 +100,6 @@ private: ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDatabaseDataProvider > m_xDatabaseDataProvider; ::std::auto_ptr<SvXMLTokenMap> m_pReportElemTokenMap; - bool m_bOnlyOnce; }; // ----------------------------------------------------------------------------- } // namespace rptxml |