summaryrefslogtreecommitdiff
path: root/sc/inc
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc')
-rw-r--r--sc/inc/autoform.hxx26
-rw-r--r--sc/inc/chart2uno.hxx8
-rw-r--r--sc/inc/chartlis.hxx4
-rw-r--r--sc/inc/column.hxx2
-rw-r--r--sc/inc/datauno.hxx6
-rw-r--r--sc/inc/dociter.hxx106
-rw-r--r--sc/inc/document.hxx16
-rw-r--r--sc/inc/dpcachetable.hxx1
-rw-r--r--sc/inc/dpshttab.hxx1
-rw-r--r--sc/inc/drawattr.hxx2
-rw-r--r--sc/inc/editsrc.hxx2
-rw-r--r--sc/inc/editutil.hxx2
-rw-r--r--sc/inc/fielduno.hxx2
-rw-r--r--sc/inc/forbiuno.hxx2
-rw-r--r--sc/inc/global.hxx41
-rw-r--r--sc/inc/patattr.hxx2
-rw-r--r--sc/inc/pch/precompiled_sc.hxx6
-rw-r--r--sc/inc/queryparam.hxx142
-rw-r--r--sc/inc/reftokenhelper.hxx8
-rw-r--r--sc/inc/scextopt.hxx2
-rw-r--r--sc/inc/servuno.hxx3
-rw-r--r--sc/inc/sheetdata.hxx2
-rw-r--r--sc/inc/table.hxx7
-rw-r--r--sc/inc/textuno.hxx2
24 files changed, 295 insertions, 100 deletions
diff --git a/sc/inc/autoform.hxx b/sc/inc/autoform.hxx
index 79b357c46..1fce4cbe3 100644
--- a/sc/inc/autoform.hxx
+++ b/sc/inc/autoform.hxx
@@ -47,22 +47,22 @@ JP 20.07.95:
**************************************************************************/
#include "scitems.hxx"
-#include <svx/adjitem.hxx>
+#include <editeng/adjitem.hxx>
#include <svx/algitem.hxx>
-#include <svx/boxitem.hxx>
-#include <svx/brshitem.hxx>
-#include <svx/cntritem.hxx>
-#include <svx/colritem.hxx>
-#include <svx/crsditem.hxx>
-#include <svx/fhgtitem.hxx>
-#include <svx/fontitem.hxx>
-#include <svx/postitem.hxx>
-#include <svx/shdditem.hxx>
-#include <svx/udlnitem.hxx>
-#include <svx/wghtitem.hxx>
+#include <editeng/boxitem.hxx>
+#include <editeng/brshitem.hxx>
+#include <editeng/cntritem.hxx>
+#include <editeng/colritem.hxx>
+#include <editeng/crsditem.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/fontitem.hxx>
+#include <editeng/postitem.hxx>
+#include <editeng/shdditem.hxx>
+#include <editeng/udlnitem.hxx>
+#include <editeng/wghtitem.hxx>
#include <svx/rotmodit.hxx>
#include <svl/intitem.hxx>
-#include <svx/bolnitem.hxx>
+#include <editeng/bolnitem.hxx>
#include "scdllapi.h"
#include "collect.hxx"
#include "global.hxx"
diff --git a/sc/inc/chart2uno.hxx b/sc/inc/chart2uno.hxx
index 42cc23a55..b7e189710 100644
--- a/sc/inc/chart2uno.hxx
+++ b/sc/inc/chart2uno.hxx
@@ -530,6 +530,14 @@ private:
};
::std::list<Item> m_aDataArray;
+
+ /**
+ * Cached data for getData. We may also need to cache data for the
+ * numerical and textural data series if they turn out to be bottlenecks
+ * under certain scenarios.
+ */
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > m_aMixedDataCache;
+
::com::sun::star::uno::Sequence<sal_Int32> m_aHiddenValues;
// properties
diff --git a/sc/inc/chartlis.hxx b/sc/inc/chartlis.hxx
index 654105d30..f41321fea 100644
--- a/sc/inc/chartlis.hxx
+++ b/sc/inc/chartlis.hxx
@@ -46,7 +46,7 @@ class ScChartUnoData;
#include <com/sun/star/chart/XChartData.hpp>
#include <com/sun/star/chart/XChartDataChangeEventListener.hpp>
-class ScChartListener : public StrData, public SvtListener
+class SC_DLLPUBLIC ScChartListener : public StrData, public SvtListener
{
public:
class ExternalRefListener : public ScExternalRefManager::LinkListener
@@ -183,7 +183,7 @@ public:
const com::sun::star::uno::Reference< com::sun::star::chart::XChartData >& rSource );
void StartTimer();
void UpdateDirtyCharts();
- void SetDirty();
+ void SC_DLLPUBLIC SetDirty();
void SetDiffDirty( const ScChartListenerCollection&,
BOOL bSetChartRangeLists = FALSE );
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index f77de29ec..aa2cd9cbb 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -111,7 +111,7 @@ private:
friend class ScDocument; // fuer FillInfo
friend class ScDocumentIterator;
friend class ScValueIterator;
-friend class ScQueryValueIterator;
+friend class ScDBQueryDataIterator;
friend class ScColumnIterator;
friend class ScQueryCellIterator;
friend class ScMarkedDataIter;
diff --git a/sc/inc/datauno.hxx b/sc/inc/datauno.hxx
index 1cb1f3c19..03d0edc1c 100644
--- a/sc/inc/datauno.hxx
+++ b/sc/inc/datauno.hxx
@@ -29,8 +29,8 @@
#define SC_DATAUNO_HXX
#include "global.hxx"
-#include <svl/itemprop.hxx>
-#include <svl/lstner.hxx>
+#include "queryparam.hxx"
+
#include <com/sun/star/sheet/TableFilterField.hpp>
#include <com/sun/star/sheet/GeneralFunction.hpp>
#include <com/sun/star/sheet/XCellRangeReferrer.hpp>
@@ -53,6 +53,8 @@
#include <cppuhelper/implbase4.hxx>
#include <cppuhelper/implbase5.hxx>
#include <cppuhelper/implbase6.hxx>
+#include "svl/itemprop.hxx"
+#include "svl/lstner.hxx"
class ScDBData;
class ScDocShell;
diff --git a/sc/inc/dociter.hxx b/sc/inc/dociter.hxx
index 4d9db4f63..749e6745b 100644
--- a/sc/inc/dociter.hxx
+++ b/sc/inc/dociter.hxx
@@ -32,6 +32,9 @@
#include <tools/solar.h>
#include "global.hxx"
#include "scdllapi.h"
+#include "queryparam.hxx"
+
+#include <memory>
class ScDocument;
class ScBaseCell;
@@ -124,34 +127,97 @@ public:
}
};
-class ScQueryValueIterator // alle Zahlenwerte in einem Bereich durchgehen
+// ============================================================================
+
+class ScDBQueryDataIterator
{
+public:
+ struct Value
+ {
+ ::rtl::OUString maString;
+ double mfValue;
+ sal_uInt16 mnError;
+ bool mbIsNumber;
+
+ Value();
+ };
+
private:
- ScQueryParam aParam;
- ScDocument* pDoc;
- const ScAttrArray* pAttrArray;
- ULONG nNumFormat; // fuer CalcAsShown
- ULONG nNumFmtIndex;
- SCCOL nCol;
- SCROW nRow;
- SCSIZE nColRow;
- SCROW nAttrEndRow;
- SCTAB nTab;
- short nNumFmtType;
- BOOL bCalcAsShown;
+ static SCROW GetRowByColEntryIndex(ScDocument& rDoc, SCTAB nTab, SCCOL nCol, SCSIZE nColRow);
+ static ScBaseCell* GetCellByColEntryIndex(ScDocument& rDoc, SCTAB nTab, SCCOL nCol, SCSIZE nColRow);
+ static ScAttrArray* GetAttrArrayByCol(ScDocument& rDoc, SCTAB nTab, SCCOL nCol);
+ static bool IsQueryValid(ScDocument& rDoc, const ScQueryParam& rParam, SCTAB nTab, SCROW nRow, ScBaseCell* pCell);
+ static SCSIZE SearchColEntryIndex(ScDocument& rDoc, SCTAB nTab, SCROW nRow, SCCOL nCol);
+
+ class DataAccess
+ {
+ public:
+ DataAccess(const ScDBQueryDataIterator* pParent);
+ virtual ~DataAccess() = 0;
+ virtual bool getCurrent(Value& rValue) = 0;
+ virtual bool getFirst(Value& rValue) = 0;
+ virtual bool getNext(Value& rValue) = 0;
+ protected:
+ const ScDBQueryDataIterator* mpParent;
+ };
+
+ class DataAccessInternal : public DataAccess
+ {
+ public:
+ DataAccessInternal(const ScDBQueryDataIterator* pParent, ScDBQueryParamInternal* pParam, ScDocument* pDoc);
+ virtual ~DataAccessInternal();
+ virtual bool getCurrent(Value& rValue);
+ virtual bool getFirst(Value& rValue);
+ virtual bool getNext(Value& rValue);
+
+ private:
+ ScDBQueryParamInternal* mpParam;
+ ScDocument* mpDoc;
+ const ScAttrArray* pAttrArray;
+ ULONG nNumFormat; // for CalcAsShown
+ ULONG nNumFmtIndex;
+ SCCOL nCol;
+ SCROW nRow;
+ SCSIZE nColRow;
+ SCROW nAttrEndRow;
+ SCTAB nTab;
+ short nNumFmtType;
+ bool bCalcAsShown;
+ };
+
+ class DataAccessMatrix : public DataAccess
+ {
+ public:
+ DataAccessMatrix(const ScDBQueryDataIterator* pParent, ScDBQueryParamMatrix* pParam);
+ virtual ~DataAccessMatrix();
+ virtual bool getCurrent(Value& rValue);
+ virtual bool getFirst(Value& rValue);
+ virtual bool getNext(Value& rValue);
+
+ private:
+ bool isValidQuery(SCROW mnRow, const ScMatrix& rMat) const;
+
+ ScDBQueryParamMatrix* mpParam;
+ SCROW mnCurRow;
+ SCROW mnRows;
+ SCCOL mnCols;
+ };
+
+ ::std::auto_ptr<ScDBQueryParamBase> mpParam;
+ ::std::auto_ptr<DataAccess> mpData;
+
+ bool GetThis(Value& rValue);
- BOOL GetThis(double& rValue, USHORT& rErr);
public:
- ScQueryValueIterator(ScDocument* pDocument, SCTAB nTable,
- const ScQueryParam& aParam);
+ ScDBQueryDataIterator(ScDocument* pDocument, ScDBQueryParamBase* pParam);
/// Does NOT reset rValue if no value found!
- BOOL GetFirst(double& rValue, USHORT& rErr);
+ bool GetFirst(Value& rValue);
/// Does NOT reset rValue if no value found!
- BOOL GetNext(double& rValue, USHORT& rErr);
- void GetCurNumFmtInfo( short& nType, ULONG& nIndex )
- { nType = nNumFmtType; nIndex = nNumFmtIndex; }
+ bool GetNext(Value& rValue);
};
+// ============================================================================
+
class ScCellIterator // alle Zellen in einem Bereich durchgehen
{ // bei SubTotal aber keine ausgeblendeten und
private: // SubTotalZeilen
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index d7bf3edda..d779a53a4 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -66,7 +66,9 @@ class SvxBoxInfoItem;
class SvxBoxItem;
class SvxBrushItem;
class SvxForbiddenCharactersTable;
-class SvxLinkManager;
+namespace sfx2 {
+ class LinkManager;
+ }
class SvxSearchItem;
class SvxShadowItem;
class Window;
@@ -224,7 +226,7 @@ class ScDocument
{
friend class ScDocumentIterator;
friend class ScValueIterator;
-friend class ScQueryValueIterator;
+friend class ScDBQueryDataIterator;
friend class ScCellIterator;
friend class ScQueryCellIterator;
friend class ScHorizontalCellIterator;
@@ -257,7 +259,7 @@ private:
ScChartCollection* pChartCollection;
std::auto_ptr< ScTemporaryChartLock > apTemporaryChartLock;
ScPatternAttr* pSelectionAttr; // Attribute eines Blocks
- mutable SvxLinkManager* pLinkManager;
+ mutable sfx2::LinkManager* pLinkManager;
ScFormulaCell* pFormulaTree; // Berechnungsbaum Start
ScFormulaCell* pEOFormulaTree; // Berechnungsbaum Ende, letzte Zelle
ScFormulaCell* pFormulaTrack; // BroadcastTrack Start
@@ -288,6 +290,7 @@ private:
mxFormulaParserPool; /// Pool for all external formula parsers used by this document.
String aDocName; // opt: Dokumentname
+ String aDocCodeName; // opt: Dokumentname
ScRangePairListRef xColNameRanges;
ScRangePairListRef xRowNameRanges;
@@ -417,6 +420,7 @@ private:
public:
SC_DLLPUBLIC ULONG GetCellCount() const; // alle Zellen
+ SCSIZE GetCellCount(SCTAB nTab, SCCOL nCol) const;
ULONG GetWeightedCount() const; // Formeln und Edit staerker gewichtet
ULONG GetCodeCount() const; // RPN-Code in Formeln
DECL_LINK( GetUserDefinedColor, USHORT * );
@@ -432,13 +436,15 @@ public:
SC_DLLPUBLIC const String& GetName() const { return aDocName; }
void SetName( const String& r ) { aDocName = r; }
+ const String& GetCodeName() const { return aDocCodeName; }
+ void SetCodeName( const String& r ) { aDocCodeName = r; }
void GetDocStat( ScDocStat& rDocStat );
SC_DLLPUBLIC void InitDrawLayer( SfxObjectShell* pDocShell = NULL );
XColorTable* GetColorTable();
- SC_DLLPUBLIC SvxLinkManager* GetLinkManager() const;
+ SC_DLLPUBLIC sfx2::LinkManager* GetLinkManager() const;
SC_DLLPUBLIC const ScDocOptions& GetDocOptions() const;
SC_DLLPUBLIC void SetDocOptions( const ScDocOptions& rOpt );
@@ -517,6 +523,8 @@ public:
SC_DLLPUBLIC BOOL HasTable( SCTAB nTab ) const;
SC_DLLPUBLIC BOOL GetName( SCTAB nTab, String& rName ) const;
+ SC_DLLPUBLIC BOOL GetCodeName( SCTAB nTab, String& rName ) const;
+ SC_DLLPUBLIC BOOL SetCodeName( SCTAB nTab, String& rName );
SC_DLLPUBLIC BOOL GetTable( const String& rName, SCTAB& rTab ) const;
SC_DLLPUBLIC inline SCTAB GetTableCount() const { return nMaxTableNumber; }
SvNumberFormatterIndexTable* GetFormatExchangeList() const { return pFormatExchangeList; }
diff --git a/sc/inc/dpcachetable.hxx b/sc/inc/dpcachetable.hxx
index c8a500eb9..c56694d5b 100644
--- a/sc/inc/dpcachetable.hxx
+++ b/sc/inc/dpcachetable.hxx
@@ -56,6 +56,7 @@ class ScDPDimension;
class ScDPCollection;
struct ScDPCacheCell;
struct ScDPItemData;
+struct ScQueryParam;
class Date;
// ----------------------------------------------------------------------------
diff --git a/sc/inc/dpshttab.hxx b/sc/inc/dpshttab.hxx
index 35935ea5b..f9ee695d2 100644
--- a/sc/inc/dpshttab.hxx
+++ b/sc/inc/dpshttab.hxx
@@ -32,6 +32,7 @@
#include "global.hxx"
#include "address.hxx"
#include "scdllapi.h"
+#include "queryparam.hxx"
#include <vector>
diff --git a/sc/inc/drawattr.hxx b/sc/inc/drawattr.hxx
index 3e9138f3c..fefc32caf 100644
--- a/sc/inc/drawattr.hxx
+++ b/sc/inc/drawattr.hxx
@@ -28,7 +28,7 @@
#define _IDLITEMS_HXX
#include <svl/eitem.hxx>
-#include <svx/svxenum.hxx>
+#include <editeng/svxenum.hxx>
class SvxDrawToolItem : public SfxEnumItem
diff --git a/sc/inc/editsrc.hxx b/sc/inc/editsrc.hxx
index 02646656f..32756a41a 100644
--- a/sc/inc/editsrc.hxx
+++ b/sc/inc/editsrc.hxx
@@ -29,7 +29,7 @@
#define SC_EDITSRC_HXX
#include "address.hxx"
-#include <svx/unoedsrc.hxx>
+#include <editeng/unoedsrc.hxx>
#include <svl/lstner.hxx>
#include <memory>
diff --git a/sc/inc/editutil.hxx b/sc/inc/editutil.hxx
index ca90d1470..974ceef28 100644
--- a/sc/inc/editutil.hxx
+++ b/sc/inc/editutil.hxx
@@ -30,7 +30,7 @@
#include "scdllapi.h"
#include "address.hxx"
-#include <svx/editeng.hxx>
+#include <editeng/editeng.hxx>
#include <svx/pageitem.hxx>
#include <tools/date.hxx>
#include <tools/time.hxx>
diff --git a/sc/inc/fielduno.hxx b/sc/inc/fielduno.hxx
index 501d018d2..6f57383ed 100644
--- a/sc/inc/fielduno.hxx
+++ b/sc/inc/fielduno.hxx
@@ -33,7 +33,7 @@
#include <svl/lstner.hxx>
#include <svl/itemprop.hxx>
-#include <svx/editdata.hxx>
+#include <editeng/editdata.hxx>
#include <com/sun/star/text/XTextField.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/container/XContainer.hpp>
diff --git a/sc/inc/forbiuno.hxx b/sc/inc/forbiuno.hxx
index 1f4d15032..c191ca187 100644
--- a/sc/inc/forbiuno.hxx
+++ b/sc/inc/forbiuno.hxx
@@ -28,7 +28,7 @@
#ifndef SC_FORBIUNO_HXX
#define SC_FORBIUNO_HXX
-#include <svx/UnoForbiddenCharsTable.hxx>
+#include <editeng/UnoForbiddenCharsTable.hxx>
#include <svl/lstner.hxx>
class ScDocShell;
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index 2c02929d3..282c363b8 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -814,47 +814,6 @@ struct ScQueryEntry
BOOL operator==( const ScQueryEntry& r ) const;
};
-struct SC_DLLPUBLIC ScQueryParam
-{
- SCCOL nCol1;
- SCROW nRow1;
- SCCOL nCol2;
- SCROW nRow2;
- SCTAB nTab;
- BOOL bHasHeader;
- BOOL bByRow;
- BOOL bInplace;
- BOOL bCaseSens;
- BOOL bRegExp;
- BOOL bMixedComparison; // whether numbers are smaller than strings
- BOOL bDuplicate;
- BOOL bDestPers; // nicht gespeichert
- SCTAB nDestTab;
- SCCOL nDestCol;
- SCROW nDestRow;
-
-private:
- SCSIZE nEntryCount;
- ScQueryEntry* pEntries;
-
-public:
- ScQueryParam();
- ScQueryParam( const ScQueryParam& r );
- ~ScQueryParam();
-
- SCSIZE GetEntryCount() const { return nEntryCount; }
- ScQueryEntry& GetEntry(SCSIZE n) const { return pEntries[n]; }
- void Resize(SCSIZE nNew);
-
- ScQueryParam& operator= ( const ScQueryParam& r );
- BOOL operator== ( const ScQueryParam& rOther ) const;
- void Clear ();
- void DeleteQuery( SCSIZE nPos );
-
- void MoveToDest();
- void FillInExcelSyntax(String& aCellStr, SCSIZE nIndex);
-};
-
// -----------------------------------------------------------------------
struct SC_DLLPUBLIC ScSubTotalParam
diff --git a/sc/inc/patattr.hxx b/sc/inc/patattr.hxx
index de6f9aa42..84bb51d58 100644
--- a/sc/inc/patattr.hxx
+++ b/sc/inc/patattr.hxx
@@ -31,7 +31,7 @@
#include <svl/poolitem.hxx>
#include <svl/itemset.hxx>
#include <unotools/fontcvt.hxx>
-#include <svx/svxenum.hxx>
+#include <editeng/svxenum.hxx>
#include "scdllapi.h"
class Font;
diff --git a/sc/inc/pch/precompiled_sc.hxx b/sc/inc/pch/precompiled_sc.hxx
index a6f25f2b1..0b69bf5f7 100644
--- a/sc/inc/pch/precompiled_sc.hxx
+++ b/sc/inc/pch/precompiled_sc.hxx
@@ -159,10 +159,10 @@
#include <unotools/pathoptions.hxx>
#include <svl/solar.hrc>
#include <unotools/useroptions.hxx>
-#include <svx/editobj.hxx>
-#include <svx/eeitem.hxx>
+#include <editeng/editobj.hxx>
+#include <editeng/eeitem.hxx>
#include <svx/fmglob.hxx>
-#include <svx/outlobj.hxx>
+#include <editeng/outlobj.hxx>
#include <svx/sdangitm.hxx>
#include <svx/sderitm.hxx>
#include <svx/sdmetitm.hxx>
diff --git a/sc/inc/queryparam.hxx b/sc/inc/queryparam.hxx
new file mode 100644
index 000000000..bc5023728
--- /dev/null
+++ b/sc/inc/queryparam.hxx
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: interpre.hxx,v $
+ * $Revision: 1.35.44.2 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SC_QUERYPARAM_HXX
+#define SC_QUERYPARAM_HXX
+
+#include "global.hxx"
+#include "scmatrix.hxx"
+
+#include <vector>
+
+struct ScDBQueryParamInternal;
+
+struct ScQueryParamBase
+{
+ bool bHasHeader;
+ bool bByRow;
+ bool bInplace;
+ bool bCaseSens;
+ bool bRegExp;
+ bool bDuplicate;
+ bool bMixedComparison; // whether numbers are smaller than strings
+
+ virtual ~ScQueryParamBase();
+
+ SC_DLLPUBLIC SCSIZE GetEntryCount() const;
+ SC_DLLPUBLIC ScQueryEntry& GetEntry(SCSIZE n) const;
+ void Resize(SCSIZE nNew);
+ SC_DLLPUBLIC void DeleteQuery( SCSIZE nPos );
+ void FillInExcelSyntax(String& aCellStr, SCSIZE nIndex);
+
+protected:
+ ScQueryParamBase();
+ ScQueryParamBase(const ScQueryParamBase& r);
+
+ mutable ::std::vector<ScQueryEntry> maEntries;
+};
+
+// ============================================================================
+
+struct ScQueryParamTable
+{
+ SCCOL nCol1;
+ SCROW nRow1;
+ SCCOL nCol2;
+ SCROW nRow2;
+ SCTAB nTab;
+
+ ScQueryParamTable();
+ ScQueryParamTable(const ScQueryParamTable& r);
+ virtual ~ScQueryParamTable();
+};
+
+// ============================================================================
+
+struct SC_DLLPUBLIC ScQueryParam : public ScQueryParamBase, public ScQueryParamTable
+{
+ BOOL bDestPers; // nicht gespeichert
+ SCTAB nDestTab;
+ SCCOL nDestCol;
+ SCROW nDestRow;
+
+ ScQueryParam();
+ ScQueryParam( const ScQueryParam& r );
+ ScQueryParam( const ScDBQueryParamInternal& r );
+ virtual ~ScQueryParam();
+
+ ScQueryParam& operator= ( const ScQueryParam& r );
+ BOOL operator== ( const ScQueryParam& rOther ) const;
+ void Clear();
+ void ClearDestParams();
+ void MoveToDest();
+};
+
+// ============================================================================
+
+struct ScDBQueryParamBase : public ScQueryParamBase
+{
+ enum DataType { INTERNAL, MATRIX };
+
+ SCCOL mnField; /// the field in which the values are processed during iteration.
+ bool mbSkipString;
+
+ DataType GetType() const;
+
+ virtual ~ScDBQueryParamBase();
+
+protected:
+ ScDBQueryParamBase(DataType eType);
+
+private:
+ ScDBQueryParamBase();
+
+ DataType meType;
+};
+
+// ============================================================================
+
+struct ScDBQueryParamInternal : public ScDBQueryParamBase, public ScQueryParamTable
+{
+ ScDBQueryParamInternal();
+ virtual ~ScDBQueryParamInternal();
+};
+
+// ============================================================================
+
+struct ScDBQueryParamMatrix : public ScDBQueryParamBase
+{
+ ScMatrixRef mpMatrix;
+
+ ScDBQueryParamMatrix();
+ virtual ~ScDBQueryParamMatrix();
+};
+
+#endif
diff --git a/sc/inc/reftokenhelper.hxx b/sc/inc/reftokenhelper.hxx
index 8c014fc9c..4a1e47ccc 100644
--- a/sc/inc/reftokenhelper.hxx
+++ b/sc/inc/reftokenhelper.hxx
@@ -67,12 +67,12 @@ public:
static void getTokensFromRangeList(::std::vector<ScSharedTokenRef>& pTokens, const ScRangeList& rRanges);
- static bool isRef(const ScSharedTokenRef& pToken);
- static bool isExternalRef(const ScSharedTokenRef& pToken);
+ static bool SC_DLLPUBLIC isRef(const ScSharedTokenRef& pToken);
+ static bool SC_DLLPUBLIC isExternalRef(const ScSharedTokenRef& pToken);
- static bool intersects(const ::std::vector<ScSharedTokenRef>& rTokens, const ScSharedTokenRef& pToken);
+ static bool SC_DLLPUBLIC intersects(const ::std::vector<ScSharedTokenRef>& rTokens, const ScSharedTokenRef& pToken);
- static void join(::std::vector<ScSharedTokenRef>& rTokens, const ScSharedTokenRef& pToken);
+ static void SC_DLLPUBLIC join(::std::vector<ScSharedTokenRef>& rTokens, const ScSharedTokenRef& pToken);
static bool getDoubleRefDataFromToken(ScComplexRefData& rData, const ScSharedTokenRef& pToken);
};
diff --git a/sc/inc/scextopt.hxx b/sc/inc/scextopt.hxx
index a5c6a67b1..7a3080334 100644
--- a/sc/inc/scextopt.hxx
+++ b/sc/inc/scextopt.hxx
@@ -121,6 +121,8 @@ public:
const String& GetCodeName( size_t nIdx ) const;
/** Appends a codename for a sheet. */
void AppendCodeName( const String& rCodeName );
+ void SetCodeName( const String& rCodeName, size_t nIdx );
+ void DeleteCodeName( size_t nIdx );
private:
::std::auto_ptr< ScExtDocOptionsImpl > mxImpl;
diff --git a/sc/inc/servuno.hxx b/sc/inc/servuno.hxx
index 21c3a9f7a..900bfaec8 100644
--- a/sc/inc/servuno.hxx
+++ b/sc/inc/servuno.hxx
@@ -90,8 +90,9 @@ class ScDocShell;
#define SC_SERVICE_FORMULAPARS 38
#define SC_SERVICE_OPCODEMAPPER 39
+#define SC_SERVICE_VBACODENAMEPROVIDER 40
-#define SC_SERVICE_COUNT 40
+#define SC_SERVICE_COUNT 41
#define SC_SERVICE_INVALID USHRT_MAX
diff --git a/sc/inc/sheetdata.hxx b/sc/inc/sheetdata.hxx
index 96c1c0fbb..05c0a16cb 100644
--- a/sc/inc/sheetdata.hxx
+++ b/sc/inc/sheetdata.hxx
@@ -29,7 +29,7 @@
#define SC_SHEETDATA_HXX
#include <xmloff/maptype.hxx>
-#include <svx/editdata.hxx>
+#include <editeng/editdata.hxx>
#include <vector>
#include <hash_set>
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 40bd58646..e81aa4166 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -86,6 +86,7 @@ private:
ScColumn aCol[MAXCOLCOUNT];
String aName;
+ String aCodeName;
String aComment;
BOOL bScenario;
BOOL bLayoutRTL;
@@ -158,7 +159,7 @@ private:
friend class ScDocument; // fuer FillInfo
friend class ScDocumentIterator;
friend class ScValueIterator;
-friend class ScQueryValueIterator;
+friend class ScDBQueryDataIterator;
friend class ScCellIterator;
friend class ScQueryCellIterator;
friend class ScHorizontalCellIterator;
@@ -174,6 +175,7 @@ public:
ScOutlineTable* GetOutlineTable() { return pOutlineTable; }
+ SCSIZE GetCellCount(SCCOL nCol) const;
ULONG GetCellCount() const;
ULONG GetWeightedCount() const;
ULONG GetCodeCount() const; // RPN-Code in Formeln
@@ -226,6 +228,9 @@ public:
void GetName( String& rName ) const;
void SetName( const String& rNewName );
+ void GetCodeName( String& rName ) const { rName = aCodeName; }
+ void SetCodeName( const String& rNewName ) { aCodeName = rNewName; }
+
const String& GetUpperName() const;
const String& GetPageStyle() const { return aPageStyle; }
diff --git a/sc/inc/textuno.hxx b/sc/inc/textuno.hxx
index 9ab11809e..d7a701e00 100644
--- a/sc/inc/textuno.hxx
+++ b/sc/inc/textuno.hxx
@@ -30,7 +30,7 @@
#include "global.hxx" // ScRange, ScAddress
#include "address.hxx"
-#include <svx/unotext.hxx>
+#include <editeng/unotext.hxx>
#include <svl/brdcst.hxx>
#include <svl/lstner.hxx>
#include <com/sun/star/text/XTextFieldsSupplier.hpp>