summaryrefslogtreecommitdiff
path: root/binfilter/bf_sc/source/core/tool/sc_dbcolect.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'binfilter/bf_sc/source/core/tool/sc_dbcolect.cxx')
-rw-r--r--binfilter/bf_sc/source/core/tool/sc_dbcolect.cxx979
1 files changed, 0 insertions, 979 deletions
diff --git a/binfilter/bf_sc/source/core/tool/sc_dbcolect.cxx b/binfilter/bf_sc/source/core/tool/sc_dbcolect.cxx
deleted file mode 100644
index 61bed284accb..000000000000
--- a/binfilter/bf_sc/source/core/tool/sc_dbcolect.cxx
+++ /dev/null
@@ -1,979 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * 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.
- *
- ************************************************************************/
-
-#ifdef _MSC_VER
-#pragma hdrstop
-#endif
-
-#include <tools/debug.hxx>
-#include <unotools/transliterationwrapper.hxx>
-
-#include "dbcolect.hxx"
-#include "rechead.hxx"
-#include "document.hxx"
-#include "globstr.hrc"
-namespace binfilter {
-
-
-//---------------------------------------------------------------------------------------
-
-/*N*/ ScDBData::ScDBData( const String& rName,
-/*N*/ USHORT nTab,
-/*N*/ USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2,
-/*N*/ BOOL bByR, BOOL bHasH) :
-/*N*/ aName (rName),
-/*N*/ nTable (nTab),
-/*N*/ nStartCol (nCol1),
-/*N*/ nStartRow (nRow1),
-/*N*/ nEndCol (nCol2),
-/*N*/ nEndRow (nRow2),
-/*N*/ bByRow (bByR),
-/*N*/ bDoSize (FALSE),
-/*N*/ bKeepFmt (FALSE),
-/*N*/ bStripData (FALSE),
-/*N*/ bHasHeader (bHasH),
-/*N*/ bDBSelection(FALSE),
-/*N*/ nIndex (0),
-/*N*/ nExportIndex(0),
-/*N*/ bIsAdvanced (FALSE),
-/*N*/ bAutoFilter (FALSE),
-/*N*/ bModified (FALSE)
-/*N*/ {
-/*N*/ USHORT i;
-/*N*/
-/*N*/ ScSortParam aSortParam;
-/*N*/ ScQueryParam aQueryParam;
-/*N*/ ScSubTotalParam aSubTotalParam;
-/*N*/ ScImportParam aImportParam;
-/*N*/
-/*N*/ for (i=0; i<MAXQUERY; i++)
-/*N*/ pQueryStr[i] = new String;
-/*N*/
-/*N*/ for (i=0; i<MAXSUBTOTAL; i++)
-/*N*/ {
-/*N*/ nSubTotals[i] = 0;
-/*N*/ pSubTotals[i] = NULL;
-/*N*/ pFunctions[i] = NULL;
-/*N*/ }
-/*N*/
-/*N*/ SetSortParam( aSortParam );
-/*N*/ SetQueryParam( aQueryParam );
-/*N*/ SetSubTotalParam( aSubTotalParam );
-/*N*/ SetImportParam( aImportParam );
-/*N*/ }
-
-/*N*/ ScDBData::ScDBData( SvStream& rStream, ScMultipleReadHeader& rHdr ) :
-/*N*/ // nicht in der Datei:
-/*N*/ bAutoFilter (FALSE),
-/*N*/ bModified (FALSE),
-/*N*/ nExportIndex (0),
-/*N*/ // nicht in alten Versionen:
-/*N*/ bDoSize (FALSE),
-/*N*/ bKeepFmt (FALSE),
-/*N*/ bStripData (FALSE),
-/*N*/ nIndex (0),
-/*N*/ bIsAdvanced (FALSE),
-/*N*/ bDBSelection (FALSE),
-/*N*/ bDBSql (TRUE),
-/*N*/ nDBType (ScDbTable),
-/*N*/ nSubUserIndex (0),
-/*N*/ bSortUserDef (FALSE),
-/*N*/ nSortUserIndex (0)
-/*N*/ {
-/*N*/ rHdr.StartEntry();
-/*N*/
-/*N*/ USHORT i;
-/*N*/ USHORT j;
-/*N*/ BYTE nDummy;
-/*N*/ rtl_TextEncoding eCharSet = rStream.GetStreamCharSet();
-/*N*/
-/*N*/ rStream.ReadByteString( aName, eCharSet );
-/*N*/ rStream >> nTable;
-/*N*/ rStream >> nStartCol;
-/*N*/ rStream >> nStartRow;
-/*N*/ rStream >> nEndCol;
-/*N*/ rStream >> nEndRow;
-/*N*/ rStream >> bByRow;
-/*N*/ rStream >> bHasHeader;
-/*N*/ rStream >> bSortCaseSens;
-/*N*/ rStream >> bIncludePattern;
-/*N*/ rStream >> bSortInplace;
-/*N*/ rStream >> nSortDestTab;
-/*N*/ rStream >> nSortDestCol;
-/*N*/ rStream >> nSortDestRow;
-/*N*/ rStream >> bQueryInplace;
-/*N*/ rStream >> bQueryCaseSens;
-/*N*/ rStream >> bQueryRegExp;
-/*N*/ rStream >> bQueryDuplicate;
-/*N*/ rStream >> nQueryDestTab;
-/*N*/ rStream >> nQueryDestCol;
-/*N*/ rStream >> nQueryDestRow;
-/*N*/ rStream >> bSubRemoveOnly;
-/*N*/ rStream >> bSubReplace;
-/*N*/ rStream >> bSubPagebreak;
-/*N*/ rStream >> bSubCaseSens;
-/*N*/ rStream >> bSubDoSort;
-/*N*/ rStream >> bSubAscending;
-/*N*/ rStream >> bSubIncludePattern;
-/*N*/ rStream >> bSubUserDef;
-/*N*/ rStream >> bDBImport;
-/*N*/
-/*N*/ rStream.ReadByteString( aDBName, eCharSet );
-/*N*/ rStream.ReadByteString( aDBStatement, eCharSet );
-/*N*/ rStream >> bDBNative;
-/*N*/
-/*N*/ for (i=0; i<MAXSORT; i++)
-/*N*/ {
-/*N*/ rStream >> bDoSort[i];
-/*N*/ rStream >> nSortField[i];
-/*N*/ rStream >> bAscending[i];
-/*N*/ }
-/*N*/ for (i=0; i<MAXQUERY; i++)
-/*N*/ {
-/*N*/ rStream >> bDoQuery[i];
-/*N*/ rStream >> nQueryField[i];
-/*N*/ rStream >> nDummy; eQueryOp[i] = (ScQueryOp) nDummy;
-/*N*/ rStream >> bQueryByString[i];
-/*N*/ pQueryStr[i] = new String;
-/*N*/ rStream.ReadByteString( *pQueryStr[i], eCharSet );
-/*N*/ rStream >> nQueryVal[i];
-/*N*/ rStream >> nDummy; eQueryConnect[i] = (ScQueryConnect) nDummy;
-/*N*/ }
-/*N*/ for (i=0; i<MAXSUBTOTAL; i++)
-/*N*/ {
-/*N*/ rStream >> bDoSubTotal[i];
-/*N*/ rStream >> nSubField[i];
-/*N*/
-/*N*/ USHORT nCount;
-/*N*/ rStream >> nCount;
-/*N*/ nSubTotals[i] = nCount;
-/*N*/
-/*N*/ pSubTotals[i] = nCount ? new USHORT [nCount] : NULL;
-/*N*/ pFunctions[i] = nCount ? new ScSubTotalFunc [nCount] : NULL;
-/*N*/
-/*N*/ for (j=0; j<nCount; j++)
-/*N*/ {
-/*N*/ rStream >> pSubTotals[i][j];
-/*N*/ rStream >> nDummy; pFunctions[i][j] = (ScSubTotalFunc)nDummy;
-/*N*/ }
-/*N*/ }
-/*N*/
-/*N*/ if (rHdr.BytesLeft())
-/*N*/ rStream >> nIndex;
-/*N*/
-/*N*/ if (rHdr.BytesLeft())
-/*N*/ rStream >> bDBSelection;
-/*N*/
-/*N*/ if (rHdr.BytesLeft())
-/*N*/ rStream >> bDBSql; // Default = TRUE
-/*N*/
-/*N*/ if (rHdr.BytesLeft())
-/*N*/ {
-/*N*/ rStream >> nSubUserIndex;
-/*N*/ rStream >> bSortUserDef;
-/*N*/ rStream >> nSortUserIndex;
-/*N*/ }
-/*N*/
-/*N*/ if (rHdr.BytesLeft())
-/*N*/ {
-/*N*/ rStream >> bDoSize;
-/*N*/ rStream >> bKeepFmt;
-/*N*/ }
-/*N*/
-/*N*/ if (rHdr.BytesLeft())
-/*N*/ rStream >> bStripData;
-/*N*/
-/*N*/ if (rHdr.BytesLeft())
-/*N*/ rStream >> nDBType; // Default = ScDbTable
-/*N*/
-/*N*/ if (rHdr.BytesLeft())
-/*N*/ {
-/*N*/ rStream >> bIsAdvanced; // Default = FALSE
-/*N*/ if (bIsAdvanced)
-/*N*/ rStream >> aAdvSource;
-/*N*/ }
-/*N*/
-/*N*/ // aSortLocale / aSortAlgorithm are not in binary file format
-/*N*/
-/*N*/ rHdr.EndEntry();
-/*N*/
-/*N*/ // #43070# rottes Dokument?!?
-/*N*/ // nEndCol war 258
-/*N*/ // und auch die CellInfo pPattern in ScOutputData FindRotated waren NULL
-/*N*/ if ( nStartCol > MAXCOL )
-/*N*/ {
-/*N*/ DBG_ERRORFILE( "nStartCol > MAXCOL" );
-/*N*/ nStartCol = MAXCOL;
-/*N*/ }
-/*N*/ if ( nStartRow > MAXROW )
-/*N*/ {
-/*N*/ DBG_ERRORFILE( "nStartRow > MAXROW" );
-/*N*/ nStartRow = MAXROW;
-/*N*/ }
-/*N*/ if ( nEndCol > MAXCOL )
-/*N*/ {
-/*N*/ DBG_ERRORFILE( "nEndCol > MAXCOL" );
-/*N*/ nEndCol = MAXCOL;
-/*N*/ }
-/*N*/ if ( nEndRow > MAXROW )
-/*N*/ {
-/*N*/ DBG_ERRORFILE( "nEndRow > MAXROW" );
-/*N*/ nEndRow = MAXROW;
-/*N*/ }
-/*N*/ if ( nQueryDestCol > MAXCOL )
-/*N*/ {
-/*N*/ DBG_ERRORFILE( "nQueryDestCol > MAXCOL" );
-/*N*/ nQueryDestCol = MAXCOL;
-/*N*/ }
-/*N*/ if ( nQueryDestRow > MAXROW )
-/*N*/ {
-/*N*/ DBG_ERRORFILE( "nQueryDestRow > MAXROW" );
-/*N*/ nQueryDestRow = MAXROW;
-/*N*/ }
-/*N*/ }
-
-/*N*/ BOOL ScDBData::Store( SvStream& rStream, ScMultipleWriteHeader& rHdr ) const
-/*N*/ {
-/*N*/ rHdr.StartEntry();
-/*N*/
-/*N*/ USHORT i;
-/*N*/ USHORT j;
-/*N*/ rtl_TextEncoding eCharSet = rStream.GetStreamCharSet();
-/*N*/
-/*N*/ rStream.WriteByteString( aName, eCharSet );
-/*N*/ rStream << nTable;
-/*N*/ rStream << nStartCol;
-/*N*/ rStream << nStartRow;
-/*N*/ rStream << nEndCol;
-/*N*/ rStream << nEndRow;
-/*N*/ rStream << bByRow;
-/*N*/ rStream << bHasHeader;
-/*N*/ rStream << bSortCaseSens;
-/*N*/ rStream << bIncludePattern;
-/*N*/ rStream << bSortInplace;
-/*N*/ rStream << nSortDestTab;
-/*N*/ rStream << nSortDestCol;
-/*N*/ rStream << nSortDestRow;
-/*N*/ rStream << bQueryInplace;
-/*N*/ rStream << bQueryCaseSens;
-/*N*/ rStream << bQueryRegExp;
-/*N*/ rStream << bQueryDuplicate;
-/*N*/ rStream << nQueryDestTab;
-/*N*/ rStream << nQueryDestCol;
-/*N*/ rStream << nQueryDestRow;
-/*N*/ rStream << bSubRemoveOnly;
-/*N*/ rStream << bSubReplace;
-/*N*/ rStream << bSubPagebreak;
-/*N*/ rStream << bSubCaseSens;
-/*N*/ rStream << bSubDoSort;
-/*N*/ rStream << bSubAscending;
-/*N*/ rStream << bSubIncludePattern;
-/*N*/ rStream << bSubUserDef;
-/*N*/ rStream << bDBImport;
-/*N*/
-/*N*/ rStream.WriteByteString( aDBName, eCharSet );
-/*N*/ rStream.WriteByteString( aDBStatement, eCharSet );
-/*N*/ rStream << bDBNative;
-/*N*/
-/*N*/ for (i=0; i<MAXSORT; i++)
-/*N*/ {
-/*N*/ rStream << bDoSort[i];
-/*N*/ rStream << nSortField[i];
-/*N*/ rStream << bAscending[i];
-/*N*/ }
-/*N*/ for (i=0; i<MAXQUERY; i++)
-/*N*/ {
-/*N*/ rStream << bDoQuery[i];
-/*N*/ rStream << nQueryField[i];
-/*N*/ rStream << (BYTE) eQueryOp[i];
-/*N*/ rStream << bQueryByString[i];
-/*N*/ rStream.WriteByteString( *pQueryStr[i], eCharSet );
-/*N*/ rStream << nQueryVal[i];
-/*N*/ rStream << (BYTE) eQueryConnect[i];
-/*N*/ }
-/*N*/ for (i=0; i<MAXSUBTOTAL; i++)
-/*N*/ {
-/*N*/ rStream << bDoSubTotal[i];
-/*N*/ rStream << nSubField[i];
-/*N*/
-/*N*/ USHORT nCount = nSubTotals[i];
-/*N*/ rStream << nCount;
-/*N*/ for (j=0; j<nCount; j++)
-/*N*/ {
-/*N*/ rStream << pSubTotals[i][j];
-/*N*/ rStream << (BYTE)pFunctions[i][j];
-/*N*/ }
-/*N*/ }
-/*N*/ rStream << nIndex; // seit 24.10.95
-/*N*/
-/*N*/ rStream << bDBSelection;
-/*N*/
-/*N*/ rStream << bDBSql; // seit 4.2.97
-/*N*/
-/*N*/ rStream << nSubUserIndex; // seit 5.2.97
-/*N*/ rStream << bSortUserDef;
-/*N*/ rStream << nSortUserIndex;
-/*N*/
-/*N*/ rStream << bDoSize; // seit 13.2.97
-/*N*/ rStream << bKeepFmt;
-/*N*/
-/*N*/ rStream << bStripData; // seit 23.2.97
-/*N*/
-/*N*/ if( rStream.GetVersion() > SOFFICE_FILEFORMAT_40 )
-/*N*/ {
-/*N*/ // folgendes gab's in der 4.0 noch nicht
-/*N*/
-/*N*/ // alte Versionen suchen immer nach Tables und Queries
-/*N*/ rStream << nDBType; // seit 20.11.97
-/*N*/
-/*N*/ // starting from 591, store advanced filter source range
-/*N*/ // only if set, to avoid unneccessary warnings
-/*N*/ if (bIsAdvanced)
-/*N*/ {
-/*?*/ rStream << (BOOL) TRUE;
-/*?*/ rStream << aAdvSource;
-/*N*/ }
-/*N*/ }
-/*N*/
-/*N*/ // aSortLocale / aSortAlgorithm are not in binary file format
-/*N*/
-/*N*/ rHdr.EndEntry();
-/*N*/ return TRUE;
-/*N*/ }
-
-/*N*/ ScDBData::ScDBData( const ScDBData& rData ) :
-/*N*/ ScRefreshTimer ( rData ),
-/*N*/ aName (rData.aName),
-/*N*/ nTable (rData.nTable),
-/*N*/ nStartCol (rData.nStartCol),
-/*N*/ nStartRow (rData.nStartRow),
-/*N*/ nEndCol (rData.nEndCol),
-/*N*/ nEndRow (rData.nEndRow),
-/*N*/ bByRow (rData.bByRow),
-/*N*/ bHasHeader (rData.bHasHeader),
-/*N*/ bDoSize (rData.bDoSize),
-/*N*/ bKeepFmt (rData.bKeepFmt),
-/*N*/ bStripData (rData.bStripData),
-/*N*/ bSortCaseSens (rData.bSortCaseSens),
-/*N*/ bIncludePattern (rData.bIncludePattern),
-/*N*/ bSortInplace (rData.bSortInplace),
-/*N*/ nSortDestTab (rData.nSortDestTab),
-/*N*/ nSortDestCol (rData.nSortDestCol),
-/*N*/ nSortDestRow (rData.nSortDestRow),
-/*N*/ bSortUserDef (rData.bSortUserDef),
-/*N*/ nSortUserIndex (rData.nSortUserIndex),
-/*N*/ aSortLocale (rData.aSortLocale),
-/*N*/ aSortAlgorithm (rData.aSortAlgorithm),
-/*N*/ bQueryInplace (rData.bQueryInplace),
-/*N*/ bQueryCaseSens (rData.bQueryCaseSens),
-/*N*/ bQueryRegExp (rData.bQueryRegExp),
-/*N*/ bQueryDuplicate (rData.bQueryDuplicate),
-/*N*/ nQueryDestTab (rData.nQueryDestTab),
-/*N*/ nQueryDestCol (rData.nQueryDestCol),
-/*N*/ nQueryDestRow (rData.nQueryDestRow),
-/*N*/ bIsAdvanced (rData.bIsAdvanced),
-/*N*/ aAdvSource (rData.aAdvSource),
-/*N*/ bSubRemoveOnly (rData.bSubRemoveOnly),
-/*N*/ bSubReplace (rData.bSubReplace),
-/*N*/ bSubPagebreak (rData.bSubPagebreak),
-/*N*/ bSubCaseSens (rData.bSubCaseSens),
-/*N*/ bSubDoSort (rData.bSubDoSort),
-/*N*/ bSubAscending (rData.bSubAscending),
-/*N*/ bSubIncludePattern (rData.bSubIncludePattern),
-/*N*/ bSubUserDef (rData.bSubUserDef),
-/*N*/ nSubUserIndex (rData.nSubUserIndex),
-/*N*/ bDBImport (rData.bDBImport),
-/*N*/ aDBName (rData.aDBName),
-/*N*/ aDBStatement (rData.aDBStatement),
-/*N*/ bDBNative (rData.bDBNative),
-/*N*/ bDBSelection (rData.bDBSelection),
-/*N*/ bDBSql (rData.bDBSql),
-/*N*/ nDBType (rData.nDBType),
-/*N*/ nIndex (rData.nIndex),
-/*N*/ nExportIndex (rData.nExportIndex),
-/*N*/ bAutoFilter (rData.bAutoFilter),
-/*N*/ bModified (rData.bModified)
-/*N*/ {
-/*N*/ USHORT i;
-/*N*/ USHORT j;
-/*N*/
-/*N*/ for (i=0; i<MAXSORT; i++)
-/*N*/ {
-/*N*/ bDoSort[i] = rData.bDoSort[i];
-/*N*/ nSortField[i] = rData.nSortField[i];
-/*N*/ bAscending[i] = rData.bAscending[i];
-/*N*/ }
-/*N*/ for (i=0; i<MAXQUERY; i++)
-/*N*/ {
-/*N*/ bDoQuery[i] = rData.bDoQuery[i];
-/*N*/ nQueryField[i] = rData.nQueryField[i];
-/*N*/ eQueryOp[i] = rData.eQueryOp[i];
-/*N*/ bQueryByString[i] = rData.bQueryByString[i];
-/*N*/ pQueryStr[i] = new String( *(rData.pQueryStr[i]) );
-/*N*/ nQueryVal[i] = rData.nQueryVal[i];
-/*N*/ eQueryConnect[i] = rData.eQueryConnect[i];
-/*N*/ }
-/*N*/ for (i=0; i<MAXSUBTOTAL; i++)
-/*N*/ {
-/*N*/ bDoSubTotal[i] = rData.bDoSubTotal[i];
-/*N*/ nSubField[i] = rData.nSubField[i];
-/*N*/
-/*N*/ USHORT nCount = rData.nSubTotals[i];
-/*N*/ nSubTotals[i] = nCount;
-/*N*/ pFunctions[i] = nCount ? new ScSubTotalFunc [nCount] : NULL;
-/*N*/ pSubTotals[i] = nCount ? new USHORT [nCount] : NULL;
-/*N*/
-/*N*/ for (j=0; j<nCount; j++)
-/*N*/ {
-/*N*/ pSubTotals[i][j] = rData.pSubTotals[i][j];
-/*N*/ pFunctions[i][j] = rData.pFunctions[i][j];
-/*N*/ }
-/*N*/ }
-/*N*/ }
-
-/*N*/ ScDBData& ScDBData::operator= (const ScDBData& rData)
-/*N*/ {
-/*N*/ USHORT i;
-/*N*/ USHORT j;
-/*N*/
-/*N*/ ScRefreshTimer::operator=( rData );
-/*N*/ aName = rData.aName;
-/*N*/ nTable = rData.nTable;
-/*N*/ nStartCol = rData.nStartCol;
-/*N*/ nStartRow = rData.nStartRow;
-/*N*/ nEndCol = rData.nEndCol;
-/*N*/ nEndRow = rData.nEndRow;
-/*N*/ bByRow = rData.bByRow;
-/*N*/ bHasHeader = rData.bHasHeader;
-/*N*/ bDoSize = rData.bDoSize;
-/*N*/ bKeepFmt = rData.bKeepFmt;
-/*N*/ bStripData = rData.bStripData;
-/*N*/ bSortCaseSens = rData.bSortCaseSens;
-/*N*/ bIncludePattern = rData.bIncludePattern;
-/*N*/ bSortInplace = rData.bSortInplace;
-/*N*/ nSortDestTab = rData.nSortDestTab;
-/*N*/ nSortDestCol = rData.nSortDestCol;
-/*N*/ nSortDestRow = rData.nSortDestRow;
-/*N*/ bSortUserDef = rData.bSortUserDef;
-/*N*/ nSortUserIndex = rData.nSortUserIndex;
-/*N*/ aSortLocale = rData.aSortLocale;
-/*N*/ aSortAlgorithm = rData.aSortAlgorithm;
-/*N*/ bQueryInplace = rData.bQueryInplace;
-/*N*/ bQueryCaseSens = rData.bQueryCaseSens;
-/*N*/ bQueryRegExp = rData.bQueryRegExp;
-/*N*/ bQueryDuplicate = rData.bQueryDuplicate;
-/*N*/ nQueryDestTab = rData.nQueryDestTab;
-/*N*/ nQueryDestCol = rData.nQueryDestCol;
-/*N*/ nQueryDestRow = rData.nQueryDestRow;
-/*N*/ bIsAdvanced = rData.bIsAdvanced;
-/*N*/ aAdvSource = rData.aAdvSource;
-/*N*/ bSubRemoveOnly = rData.bSubRemoveOnly;
-/*N*/ bSubReplace = rData.bSubReplace;
-/*N*/ bSubPagebreak = rData.bSubPagebreak;
-/*N*/ bSubCaseSens = rData.bSubCaseSens;
-/*N*/ bSubDoSort = rData.bSubDoSort;
-/*N*/ bSubAscending = rData.bSubAscending;
-/*N*/ bSubIncludePattern = rData.bSubIncludePattern;
-/*N*/ bSubUserDef = rData.bSubUserDef;
-/*N*/ nSubUserIndex = rData.nSubUserIndex;
-/*N*/ bDBImport = rData.bDBImport;
-/*N*/ aDBName = rData.aDBName;
-/*N*/ aDBStatement = rData.aDBStatement;
-/*N*/ bDBNative = rData.bDBNative;
-/*N*/ bDBSelection = rData.bDBSelection;
-/*N*/ bDBSql = rData.bDBSql;
-/*N*/ nDBType = rData.nDBType;
-/*N*/ nIndex = rData.nIndex;
-/*N*/ nExportIndex = rData.nExportIndex;
-/*N*/ bAutoFilter = rData.bAutoFilter;
-/*N*/
-/*N*/ for (i=0; i<MAXSORT; i++)
-/*N*/ {
-/*N*/ bDoSort[i] = rData.bDoSort[i];
-/*N*/ nSortField[i] = rData.nSortField[i];
-/*N*/ bAscending[i] = rData.bAscending[i];
-/*N*/ }
-/*N*/ for (i=0; i<MAXQUERY; i++)
-/*N*/ {
-/*N*/ bDoQuery[i] = rData.bDoQuery[i];
-/*N*/ nQueryField[i] = rData.nQueryField[i];
-/*N*/ eQueryOp[i] = rData.eQueryOp[i];
-/*N*/ bQueryByString[i] = rData.bQueryByString[i];
-/*N*/ *pQueryStr[i] = *rData.pQueryStr[i];
-/*N*/ nQueryVal[i] = rData.nQueryVal[i];
-/*N*/ eQueryConnect[i] = rData.eQueryConnect[i];
-/*N*/ }
-/*N*/ for (i=0; i<MAXSUBTOTAL; i++)
-/*N*/ {
-/*N*/ bDoSubTotal[i] = rData.bDoSubTotal[i];
-/*N*/ nSubField[i] = rData.nSubField[i];
-/*N*/ USHORT nCount = rData.nSubTotals[i];
-/*N*/ nSubTotals[i] = nCount;
-/*N*/
-/*N*/ delete[] pSubTotals[i];
-/*N*/ delete[] pFunctions[i];
-/*N*/
-/*N*/ pSubTotals[i] = nCount ? new USHORT [nCount] : NULL;
-/*N*/ pFunctions[i] = nCount ? new ScSubTotalFunc [nCount] : NULL;
-/*N*/ for (j=0; j<nCount; j++)
-/*N*/ {
-/*N*/ pSubTotals[i][j] = rData.pSubTotals[i][j];
-/*N*/ pFunctions[i][j] = rData.pFunctions[i][j];
-/*N*/ }
-/*N*/ }
-/*N*/
-/*N*/ return *this;
-/*N*/ }
-
-
-/*N*/ ScDBData::~ScDBData()
-/*N*/ {
-/*N*/ StopRefreshTimer();
-/*N*/ USHORT i;
-/*N*/
-/*N*/ for (i=0; i<MAXQUERY; i++)
-/*N*/ delete pQueryStr[i];
-/*N*/ for (i=0; i<MAXSUBTOTAL; i++)
-/*N*/ {
-/*N*/ delete[] pSubTotals[i];
-/*N*/ delete[] pFunctions[i];
-/*N*/ }
-/*N*/ }
-
-/*N*/ BOOL ScDBData::IsBeyond(USHORT nMaxRow) const
-/*N*/ {
-/*N*/ return ( nStartRow > nMaxRow ||
-/*N*/ nEndRow > nMaxRow ||
-/*N*/ nQueryDestRow > nMaxRow );
-/*N*/ }
-
-
-
-/*N*/ void ScDBData::GetArea(USHORT& rTab, USHORT& rCol1, USHORT& rRow1, USHORT& rCol2, USHORT& rRow2) const
-/*N*/ {
-/*N*/ rTab = nTable;
-/*N*/ rCol1 = nStartCol;
-/*N*/ rRow1 = nStartRow;
-/*N*/ rCol2 = nEndCol;
-/*N*/ rRow2 = nEndRow;
-/*N*/ }
-
-/*N*/ void ScDBData::GetArea(ScRange& rRange) const
-/*N*/ {
-/*N*/ rRange = ScRange( nStartCol,nStartRow,nTable, nEndCol,nEndRow,nTable );
-/*N*/ }
-
-/*N*/ void ScDBData::SetArea(USHORT nTab, USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2)
-/*N*/ {
-/*N*/ nTable = nTab;
-/*N*/ nStartCol = nCol1;
-/*N*/ nStartRow = nRow1;
-/*N*/ nEndCol = nCol2;
-/*N*/ nEndRow = nRow2;
-/*N*/ }
-
-
-/*N*/ void ScDBData::GetSortParam( ScSortParam& rSortParam ) const
-/*N*/ {
-/*N*/ rSortParam.nCol1 = nStartCol;
-/*N*/ rSortParam.nRow1 = nStartRow;
-/*N*/ rSortParam.nCol2 = nEndCol;
-/*N*/ rSortParam.nRow2 = nEndRow;
-/*N*/ rSortParam.bByRow = bByRow;
-/*N*/ rSortParam.bHasHeader = bHasHeader;
-/*N*/ rSortParam.bCaseSens = bSortCaseSens;
-/*N*/ rSortParam.bInplace = bSortInplace;
-/*N*/ rSortParam.nDestTab = nSortDestTab;
-/*N*/ rSortParam.nDestCol = nSortDestCol;
-/*N*/ rSortParam.nDestRow = nSortDestRow;
-/*N*/ rSortParam.bIncludePattern = bIncludePattern;
-/*N*/ rSortParam.bUserDef = bSortUserDef;
-/*N*/ rSortParam.nUserIndex = nSortUserIndex;
-/*N*/ for (USHORT i=0; i<MAXSORT; i++)
-/*N*/ {
-/*N*/ rSortParam.bDoSort[i] = bDoSort[i];
-/*N*/ rSortParam.nField[i] = nSortField[i];
-/*N*/ rSortParam.bAscending[i] = bAscending[i];
-/*N*/ }
-/*N*/ rSortParam.aCollatorLocale = aSortLocale;
-/*N*/ rSortParam.aCollatorAlgorithm = aSortAlgorithm;
-/*N*/ }
-
-/*N*/ void ScDBData::SetSortParam( const ScSortParam& rSortParam )
-/*N*/ {
-/*N*/ bSortCaseSens = rSortParam.bCaseSens;
-/*N*/ bIncludePattern = rSortParam.bIncludePattern;
-/*N*/ bSortInplace = rSortParam.bInplace;
-/*N*/ nSortDestTab = rSortParam.nDestTab;
-/*N*/ nSortDestCol = rSortParam.nDestCol;
-/*N*/ nSortDestRow = rSortParam.nDestRow;
-/*N*/ bSortUserDef = rSortParam.bUserDef;
-/*N*/ nSortUserIndex = rSortParam.nUserIndex;
-/*N*/ for (USHORT i=0; i<MAXSORT; i++)
-/*N*/ {
-/*N*/ bDoSort[i] = rSortParam.bDoSort[i];
-/*N*/ nSortField[i] = rSortParam.nField[i];
-/*N*/ bAscending[i] = rSortParam.bAscending[i];
-/*N*/ }
-/*N*/ aSortLocale = rSortParam.aCollatorLocale;
-/*N*/ aSortAlgorithm = rSortParam.aCollatorAlgorithm;
-/*N*/
-/*N*/ //#98317#; set the orientation
-/*N*/ bByRow = rSortParam.bByRow;
-/*N*/ }
-
-/*N*/ void ScDBData::GetQueryParam( ScQueryParam& rQueryParam ) const
-/*N*/ {
-/*N*/ rQueryParam.nCol1 = nStartCol;
-/*N*/ rQueryParam.nRow1 = nStartRow;
-/*N*/ rQueryParam.nCol2 = nEndCol;
-/*N*/ rQueryParam.nRow2 = nEndRow;
-/*N*/ rQueryParam.nTab = nTable;
-/*N*/ rQueryParam.bByRow = bByRow;
-/*N*/ rQueryParam.bHasHeader = bHasHeader;
-/*N*/ rQueryParam.bInplace = bQueryInplace;
-/*N*/ rQueryParam.bCaseSens = bQueryCaseSens;
-/*N*/ rQueryParam.bRegExp = bQueryRegExp;
-/*N*/ rQueryParam.bDuplicate = bQueryDuplicate;
-/*N*/ rQueryParam.nDestTab = nQueryDestTab;
-/*N*/ rQueryParam.nDestCol = nQueryDestCol;
-/*N*/ rQueryParam.nDestRow = nQueryDestRow;
-/*N*/
-/*N*/ rQueryParam.Resize( MAXQUERY );
-/*N*/ for (USHORT i=0; i<MAXQUERY; i++)
-/*N*/ {
-/*N*/ ScQueryEntry& rEntry = rQueryParam.GetEntry(i);
-/*N*/
-/*N*/ rEntry.bDoQuery = bDoQuery[i];
-/*N*/ rEntry.nField = nQueryField[i];
-/*N*/ rEntry.eOp = eQueryOp[i];
-/*N*/ rEntry.bQueryByString = bQueryByString[i];
-/*N*/ *rEntry.pStr = *pQueryStr[i];
-/*N*/ rEntry.nVal = nQueryVal[i];
-/*N*/ rEntry.eConnect = eQueryConnect[i];
-/*N*/ }
-/*N*/ }
-
-/*N*/ void ScDBData::SetQueryParam(const ScQueryParam& rQueryParam)
-/*N*/ {
-/*N*/ DBG_ASSERT( rQueryParam.GetEntryCount() <= MAXQUERY ||
-/*N*/ !rQueryParam.GetEntry(MAXQUERY).bDoQuery,
-/*N*/ "zuviele Eintraege bei ScDBData::SetQueryParam" );
-/*N*/
-/*N*/ // set bIsAdvanced to FALSE for everything that is not from the
-/*N*/ // advanced filter dialog
-/*N*/ bIsAdvanced = FALSE;
-/*N*/
-/*N*/ bQueryInplace = rQueryParam.bInplace;
-/*N*/ bQueryCaseSens = rQueryParam.bCaseSens;
-/*N*/ bQueryRegExp = rQueryParam.bRegExp;
-/*N*/ bQueryDuplicate = rQueryParam.bDuplicate;
-/*N*/ nQueryDestTab = rQueryParam.nDestTab;
-/*N*/ nQueryDestCol = rQueryParam.nDestCol;
-/*N*/ nQueryDestRow = rQueryParam.nDestRow;
-/*N*/ for (USHORT i=0; i<MAXQUERY; i++)
-/*N*/ {
-/*N*/ ScQueryEntry& rEntry = rQueryParam.GetEntry(i);
-/*N*/
-/*N*/ bDoQuery[i] = rEntry.bDoQuery;
-/*N*/ nQueryField[i] = rEntry.nField;
-/*N*/ eQueryOp[i] = rEntry.eOp;
-/*N*/ bQueryByString[i] = rEntry.bQueryByString;
-/*N*/ *pQueryStr[i] = *rEntry.pStr;
-/*N*/ nQueryVal[i] = rEntry.nVal;
-/*N*/ eQueryConnect[i] = rEntry.eConnect;
-/*N*/ }
-/*N*/ }
-
-/*N*/ void ScDBData::SetAdvancedQuerySource(const ScRange* pSource)
-/*N*/ {
-/*N*/ if (pSource)
-/*N*/ {
-/*N*/ aAdvSource = *pSource;
-/*N*/ bIsAdvanced = TRUE;
-/*N*/ }
-/*N*/ else
-/*N*/ bIsAdvanced = FALSE;
-/*N*/ }
-
-/*N*/ BOOL ScDBData::GetAdvancedQuerySource(ScRange& rSource) const
-/*N*/ {
-/*N*/ rSource = aAdvSource;
-/*N*/ return bIsAdvanced;
-/*N*/ }
-
-/*N*/ void ScDBData::GetSubTotalParam(ScSubTotalParam& rSubTotalParam) const
-/*N*/ {
-/*N*/ USHORT i;
-/*N*/ USHORT j;
-/*N*/
-/*N*/ rSubTotalParam.nCol1 = nStartCol;
-/*N*/ rSubTotalParam.nRow1 = nStartRow;
-/*N*/ rSubTotalParam.nCol2 = nEndCol;
-/*N*/ rSubTotalParam.nRow2 = nEndRow;
-/*N*/
-/*N*/ rSubTotalParam.bRemoveOnly = bSubRemoveOnly;
-/*N*/ rSubTotalParam.bReplace = bSubReplace;
-/*N*/ rSubTotalParam.bPagebreak = bSubPagebreak;
-/*N*/ rSubTotalParam.bCaseSens = bSubCaseSens;
-/*N*/ rSubTotalParam.bDoSort = bSubDoSort;
-/*N*/ rSubTotalParam.bAscending = bSubAscending;
-/*N*/ rSubTotalParam.bIncludePattern = bSubIncludePattern;
-/*N*/ rSubTotalParam.bUserDef = bSubUserDef;
-/*N*/ rSubTotalParam.nUserIndex = nSubUserIndex;
-/*N*/
-/*N*/ for (i=0; i<MAXSUBTOTAL; i++)
-/*N*/ {
-/*N*/ rSubTotalParam.bGroupActive[i] = bDoSubTotal[i];
-/*N*/ rSubTotalParam.nField[i] = nSubField[i];
-/*N*/ USHORT nCount = nSubTotals[i];
-/*N*/
-/*N*/ rSubTotalParam.nSubTotals[i] = nCount;
-/*N*/ delete[] rSubTotalParam.pSubTotals[i];
-/*N*/ delete[] rSubTotalParam.pFunctions[i];
-/*N*/ rSubTotalParam.pSubTotals[i] = nCount ? new USHORT[nCount] : NULL;
-/*N*/ rSubTotalParam.pFunctions[i] = nCount ? new ScSubTotalFunc[nCount]
-/*N*/ : NULL;
-/*N*/ for (j=0; j<nCount; j++)
-/*N*/ {
-/*N*/ rSubTotalParam.pSubTotals[i][j] = pSubTotals[i][j];
-/*N*/ rSubTotalParam.pFunctions[i][j] = pFunctions[i][j];
-/*N*/ }
-/*N*/ }
-/*N*/ }
-
-/*N*/ void ScDBData::SetSubTotalParam(const ScSubTotalParam& rSubTotalParam)
-/*N*/ {
-/*N*/ USHORT i;
-/*N*/ USHORT j;
-/*N*/
-/*N*/ bSubRemoveOnly = rSubTotalParam.bRemoveOnly;
-/*N*/ bSubReplace = rSubTotalParam.bReplace;
-/*N*/ bSubPagebreak = rSubTotalParam.bPagebreak;
-/*N*/ bSubCaseSens = rSubTotalParam.bCaseSens;
-/*N*/ bSubDoSort = rSubTotalParam.bDoSort;
-/*N*/ bSubAscending = rSubTotalParam.bAscending;
-/*N*/ bSubIncludePattern = rSubTotalParam.bIncludePattern;
-/*N*/ bSubUserDef = rSubTotalParam.bUserDef;
-/*N*/ nSubUserIndex = rSubTotalParam.nUserIndex;
-/*N*/
-/*N*/ for (i=0; i<MAXSUBTOTAL; i++)
-/*N*/ {
-/*N*/ bDoSubTotal[i] = rSubTotalParam.bGroupActive[i];
-/*N*/ nSubField[i] = rSubTotalParam.nField[i];
-/*N*/ USHORT nCount = rSubTotalParam.nSubTotals[i];
-/*N*/
-/*N*/ nSubTotals[i] = nCount;
-/*N*/ delete[] pSubTotals[i];
-/*N*/ delete[] pFunctions[i];
-/*N*/ pSubTotals[i] = nCount ? new USHORT [nCount] : NULL;
-/*N*/ pFunctions[i] = nCount ? new ScSubTotalFunc [nCount] : NULL;
-/*N*/ for (j=0; j<nCount; j++)
-/*N*/ {
-/*N*/ pSubTotals[i][j] = rSubTotalParam.pSubTotals[i][j];
-/*N*/ pFunctions[i][j] = rSubTotalParam.pFunctions[i][j];
-/*N*/ }
-/*N*/ }
-/*N*/ }
-
-/*N*/ void ScDBData::GetImportParam(ScImportParam& rImportParam) const
-/*N*/ {
-/*N*/ rImportParam.nCol1 = nStartCol;
-/*N*/ rImportParam.nRow1 = nStartRow;
-/*N*/ rImportParam.nCol2 = nEndCol;
-/*N*/ rImportParam.nRow2 = nEndRow;
-/*N*/
-/*N*/ rImportParam.bImport = bDBImport;
-/*N*/ rImportParam.aDBName = aDBName;
-/*N*/ rImportParam.aStatement = aDBStatement;
-/*N*/ rImportParam.bNative = bDBNative;
-/*N*/ rImportParam.bSql = bDBSql;
-/*N*/ rImportParam.nType = nDBType;
-/*N*/ }
-
-/*N*/ void ScDBData::SetImportParam(const ScImportParam& rImportParam)
-/*N*/ {
-/*N*/ bDBImport = rImportParam.bImport;
-/*N*/ aDBName = rImportParam.aDBName;
-/*N*/ aDBStatement = rImportParam.aStatement;
-/*N*/ bDBNative = rImportParam.bNative;
-/*N*/ bDBSql = rImportParam.bSql;
-/*N*/ nDBType = rImportParam.nType;
-/*N*/ }
-
-
-
-
-/*N*/ DataObject* ScDBData::Clone() const
-/*N*/ {
-/*N*/ return new ScDBData(*this);
-/*N*/ }
-
-
-//---------------------------------------------------------------------------------------
-// Compare zum Sortieren
-
-/*N*/ short ScDBCollection::Compare(DataObject* pKey1, DataObject* pKey2) const
-/*N*/ {
-/*N*/ const String& rStr1 = ((ScDBData*)pKey1)->GetName();
-/*N*/ const String& rStr2 = ((ScDBData*)pKey2)->GetName();
-/*N*/ return (short) ScGlobal::pTransliteration->compareString( rStr1, rStr2 );
-/*N*/ }
-
-// IsEqual - alles gleich
-
-
-/*N*/ ScDBData* ScDBCollection::GetDBAtCursor(USHORT nCol, USHORT nRow, USHORT nTab, BOOL bStartOnly) const
-/*N*/ {
-/*N*/ ScDBData* pNoNameData = NULL;
-/*N*/ if (pItems)
-/*N*/ {
-/*N*/ const String& rNoName = ScGlobal::GetRscString( STR_DB_NONAME );
-/*N*/
-/*N*/ for (USHORT i = 0; i < nCount; i++)
-/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 if (((ScDBData*)pItems[i])->IsDBAtCursor(nCol, nRow, nTab, bStartOnly))
-/*N*/ }
-/*N*/ return pNoNameData; // "unbenannt" nur zurueck, wenn sonst nichts gefunden
-/*N*/ }
-
-/*N*/ ScDBData* ScDBCollection::GetDBAtArea(USHORT nTab, USHORT nCol1, USHORT nRow1, USHORT nCol2, USHORT nRow2) const
-/*N*/ {
-/*N*/ ScDBData* pNoNameData = NULL;
-/*N*/ if (pItems)
-/*N*/ {
-/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 const String& rNoName = ScGlobal::GetRscString( STR_DB_NONAME );
-/*N*/ }
-/*N*/ return pNoNameData; // "unbenannt" nur zurueck, wenn sonst nichts gefunden
-/*N*/ }
-
-/*N*/ BOOL ScDBCollection::SearchName( const String& rName, USHORT& rIndex ) const
-/*N*/ {
-/*N*/ ScDBData aDataObj( rName, 0,0,0,0,0 );
-/*N*/ return Search( &aDataObj, rIndex );
-/*N*/ }
-
-/*N*/ BOOL ScDBCollection::Load( SvStream& rStream )
-/*N*/ {
-/*N*/ BOOL bSuccess = TRUE;
-/*N*/ USHORT nNewCount;
-/*N*/
-/*N*/ while( nCount > 0 )
-/*?*/ AtFree(0); // alles loeschen
-/*N*/
-/*N*/ ScMultipleReadHeader aHdr( rStream );
-/*N*/
-/*N*/ rStream >> nNewCount;
-/*N*/ for (USHORT i=0; i<nNewCount && bSuccess; i++)
-/*N*/ {
-/*N*/ ScDBData* pData = new ScDBData( rStream, aHdr );
-/*N*/ Insert( pData );
-/*N*/ }
-/*N*/ if (aHdr.BytesLeft()) // ... Erweiterungen
-/*N*/ rStream >> nEntryIndex;
-/*N*/ return bSuccess;
-/*N*/ }
-
-/*N*/ BOOL ScDBCollection::Store( SvStream& rStream ) const
-/*N*/ {
-/*N*/ ScMultipleWriteHeader aHdr( rStream );
-/*N*/
-/*N*/ USHORT i;
-/*N*/ USHORT nSaveCount = nCount;
-/*N*/ USHORT nSaveMaxRow = pDoc->GetSrcMaxRow();
-/*N*/ if ( nSaveMaxRow < MAXROW )
-/*N*/ {
-/*N*/ nSaveCount = 0;
-/*N*/ for (i=0; i<nCount; i++)
-/*N*/ if ( !((const ScDBData*)At(i))->IsBeyond(nSaveMaxRow) )
-/*N*/ ++nSaveCount;
-/*N*/
-/*N*/ if ( nSaveCount < nCount )
-/*N*/ pDoc->SetLostData(); // Warnung ausgeben
-/*N*/ }
-/*N*/
-/*N*/ rStream << nSaveCount;
-/*N*/
-/*N*/ BOOL bSuccess = TRUE;
-/*N*/ for (i=0; i<nCount && bSuccess; i++)
-/*N*/ {
-/*N*/ const ScDBData* pDBData = (const ScDBData*)At(i);
-/*N*/ if ( nSaveMaxRow == MAXROW || !pDBData->IsBeyond(nSaveMaxRow) )
-/*N*/ bSuccess = pDBData->Store( rStream, aHdr );
-/*N*/ }
-/*N*/
-/*N*/ rStream << nEntryIndex; // seit 24.10.95
-/*N*/
-/*N*/ return bSuccess;
-/*N*/ }
-
-/*N*/ void ScDBCollection::UpdateReference(UpdateRefMode eUpdateRefMode,
-/*N*/ USHORT nCol1, USHORT nRow1, USHORT nTab1,
-/*N*/ USHORT nCol2, USHORT nRow2, USHORT nTab2,
-/*N*/ short nDx, short nDy, short nDz )
-/*N*/ {
-/*N*/ for (USHORT i=0; i<nCount; i++)
-/*N*/ {
-/*?*/ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 USHORT theCol1;
-/*N*/ }
-/*N*/ }
-
-
-
-
-/*N*/ ScDBData* ScDBCollection::FindIndex(USHORT nIndex)
-/*N*/ {
-/*N*/ USHORT i = 0;
-/*N*/ while (i < nCount)
-/*N*/ {
-/*N*/ if ((*this)[i]->GetIndex() == nIndex)
-/*N*/ return (*this)[i];
-/*N*/ i++;
-/*N*/ }
-/*N*/ return NULL;
-/*N*/ }
-
-/*N*/ BOOL ScDBCollection::Insert(DataObject* pDataObject)
-/*N*/ {
-/*N*/ ScDBData* pData = (ScDBData*) pDataObject;
-/*N*/ if (!pData->GetIndex()) // schon gesetzt?
-/*N*/ pData->SetIndex(nEntryIndex++);
-/*N*/ BOOL bInserted = SortedCollection::Insert(pDataObject);
-/*N*/ if ( bInserted && pData->HasImportParam() && !pData->HasImportSelection() )
-/*N*/ {
-/*?*/ pData->SetRefreshHandler( GetRefreshHandler() );
-/*?*/ pData->SetRefreshControl( pDoc->GetRefreshTimerControlAddress() );
-/*N*/ }
-/*N*/ return bInserted;
-/*N*/ }
-
-
-
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */