summaryrefslogtreecommitdiff
path: root/reportdesign/source/filter/xml/xmlExportDocumentHandler.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'reportdesign/source/filter/xml/xmlExportDocumentHandler.cxx')
-rw-r--r--reportdesign/source/filter/xml/xmlExportDocumentHandler.cxx18
1 files changed, 17 insertions, 1 deletions
diff --git a/reportdesign/source/filter/xml/xmlExportDocumentHandler.cxx b/reportdesign/source/filter/xml/xmlExportDocumentHandler.cxx
index 3fa6b42e625b..d3a557c3ff6b 100644
--- a/reportdesign/source/filter/xml/xmlExportDocumentHandler.cxx
+++ b/reportdesign/source/filter/xml/xmlExportDocumentHandler.cxx
@@ -29,6 +29,7 @@
#include "xmlExportDocumentHandler.hxx"
#include <com/sun/star/sdb/CommandType.hpp>
#include <com/sun/star/chart2/data/XDatabaseDataProvider.hpp>
+#include <com/sun/star/chart/XComplexDescriptionAccess.hpp>
#include <com/sun/star/reflection/XProxyFactory.hpp>
#include <com/sun/star/sdb/CommandType.hpp>
#include <comphelper/sequence.hxx>
@@ -338,12 +339,27 @@ void SAL_CALL ExportDocumentHandler::initialize( const uno::Sequence< uno::Any >
// set ourself as delegator
m_xProxy->setDelegator( *this );
-
const ::rtl::OUString sCommand = m_xDatabaseDataProvider->getCommand();
if ( sCommand.getLength() )
m_aColumns = ::dbtools::getFieldNamesByCommandDescriptor(m_xDatabaseDataProvider->getActiveConnection()
,m_xDatabaseDataProvider->getCommandType()
,sCommand);
+
+ uno::Reference< chart::XComplexDescriptionAccess > xDataProvider(m_xDatabaseDataProvider,uno::UNO_QUERY);
+ if ( xDataProvider.is() )
+ {
+ m_aColumns.realloc(1);
+ uno::Sequence< uno::Sequence< ::rtl::OUString > > aColumnNames = xDataProvider->getComplexColumnDescriptions();
+ for(sal_Int32 i = 0 ; i < aColumnNames.getLength();++i)
+ {
+ if ( aColumnNames[i].getLength() )
+ {
+ sal_Int32 nCount = m_aColumns.getLength();
+ m_aColumns.realloc(nCount+1);
+ m_aColumns[nCount] = aColumnNames[i][0];
+ }
+ }
+ }
}
// --------------------------------------------------------------------------------
uno::Any SAL_CALL ExportDocumentHandler::queryInterface( const uno::Type& _rType ) throw (uno::RuntimeException)