diff --git a/reportdesign/source/ui/report/InsertFunctions.cxx b/reportdesign/source/ui/report/InsertFunctions.cxx new file mode 100644 index 000000000000..45d116e381eb --- /dev/null +++ b/reportdesign/source/ui/report/InsertFunctions.cxx @@ -0,0 +1,182 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: InsertFunctions.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: kz $ $Date: 2008-03-05 18:12:28 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_reportdesign.hxx" + +#ifndef _COM_SUN_STAR_EMBED_NOVISUALAREASIZEEXCEPTION_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_EMBED_ASPECTS_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include +#endif + +//------------------------------------------------------------------------ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef SVTOOLS_URIHELPER_HXX +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace ::com::sun::star; + +#include "InsertFunctions.hxx" +#include "RptObject.hxx" + +namespace rptui +{ +//------------------------------------------------------------------------ +void InitializeChart( const uno::Reference< frame::XModel>& _xModel, + const uno::Reference < embed::XEmbeddedObject >& xObj) +{ + //ScDocShell* pDocShell = pViewData->GetDocShell(); + //ScDocument* pScDoc = pDocShell->GetDocument(); + + //rtl::OUString aRangeString( rRangeParam ); + //if ( !aRangeString.getLength() ) + //{ + // SCCOL nCol1 = 0; + // SCROW nRow1 = 0; + // SCTAB nTab1 = 0; + // SCCOL nCol2 = 0; + // SCROW nRow2 = 0; + // SCTAB nTab2 = 0; + + // ScMarkData& rMark = pViewData->GetMarkData(); + // if ( !rMark.IsMarked() ) + // pViewData->GetView()->MarkDataArea( TRUE ); + + // if ( pViewData->GetSimpleArea( nCol1,nRow1,nTab1, nCol2,nRow2,nTab2 ) ) + // { + // PutInOrder( nCol1, nCol2 ); + // PutInOrder( nRow1, nRow2 ); + // if ( nCol2>nCol1 || nRow2>nRow1 ) + // { + // ScDocument* pDoc = pViewData->GetDocument(); + // pDoc->LimitChartArea( nTab1, nCol1,nRow1, nCol2,nRow2 ); + + // String aStr; + // ScRange aRange( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); + // aRange.Format( aStr, SCR_ABS_3D, pScDoc ); + // aRangeString = aStr; + // } + // } + //} + + //if ( rRangeParam.getLength() ) + { + // connect to Calc data (if no range string, leave chart alone, with its own data) + + uno::Reference< chart2::data::XDataReceiver > xReceiver; + uno::Reference< embed::XComponentSupplier > xCompSupp( xObj, uno::UNO_QUERY ); + if( xCompSupp.is()) + xReceiver.set( xCompSupp->getComponent(), uno::UNO_QUERY ); + OSL_ASSERT( xReceiver.is()); + if( xReceiver.is() ) + { + // lock the model to suppress any internal updates + uno::Reference< frame::XModel > xChartModel( xReceiver, uno::UNO_QUERY ); + if( xChartModel.is() ) + xChartModel->lockControllers(); + + uno::Reference< lang::XMultiServiceFactory> xFac(_xModel,uno::UNO_QUERY_THROW); + uno::Reference< chart2::data::XDatabaseDataProvider > xDataProvider( xFac->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.chart2.data.DataProvider"))),uno::UNO_QUERY); + xReceiver->attachDataProvider( xDataProvider.get() ); + + uno::Reference< util::XNumberFormatsSupplier > xNumberFormatsSupplier( _xModel, uno::UNO_QUERY ); + xReceiver->attachNumberFormatsSupplier( xNumberFormatsSupplier ); + + 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_False ), 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 ); + + if( xChartModel.is() ) + xChartModel->unlockControllers(); + } + } +} +// ----------------------------------------------------------------------------- +} // namespace rptui +// ----------------------------------------------------------------------------- +