/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ /* WICHTIG: Folgende Reihenfolge beim Aufbau der Pivot-Tabelle unbedingt einzuhalten: pPivot->SetColFields(aColArr, aColCount) pPivot->SetRowFields(aRowArr, aRowCount) pPivot->SetDataFields(aDataArr, aDataCount) if (pPivot->CreateData()) { pPivotDrawData(); pPivotReleaseData(); } ausserdem ist sicherzustellen, dass entweder das ColArr oder das RowArr einen PivotDataField Eintrag enthalten */ #ifndef SC_PIVOT_HXX #define SC_PIVOT_HXX #include "global.hxx" #include "address.hxx" #include "dpglobal.hxx" #include #include class SubTotal; #include "collect.hxx" #define PIVOT_DATA_FIELD (MAXCOLCOUNT) #define PIVOT_FUNC_REF (MAXCOLCOUNT) #include #include #include #include #include class SvStream; class ScDocument; class ScUserListData; class ScProgress; // ============================================================================ struct ScDPLabelData { ::rtl::OUString maName; /// Original name of the dimension. ::rtl::OUString maLayoutName; /// Layout name (display name) SCCOL mnCol; sal_uInt16 mnFuncMask; /// Page/Column/Row subtotal function. sal_Int32 mnUsedHier; /// Used hierarchy. sal_Int32 mnFlags; /// Flags from the DataPilotSource dimension bool mbShowAll; /// true = Show all (also empty) results. bool mbIsValue; /// true = Sum or count in data field. struct Member { ::rtl::OUString maName; ::rtl::OUString maLayoutName; bool mbVisible; bool mbShowDetails; Member(); /** * return the name that should be displayed in the dp dialogs i.e. * when the layout name is present, use it, or else use the original * name. */ ::rtl::OUString SC_DLLPUBLIC getDisplayName() const; }; ::std::vector maMembers; ::com::sun::star::uno::Sequence< ::rtl::OUString > maHiers; /// Hierarchies. ::com::sun::star::sheet::DataPilotFieldSortInfo maSortInfo; /// Sorting info. ::com::sun::star::sheet::DataPilotFieldLayoutInfo maLayoutInfo; /// Layout info. ::com::sun::star::sheet::DataPilotFieldAutoShowInfo maShowInfo; /// AutoShow info. explicit ScDPLabelData( const String& rName, SCCOL nCol, bool bIsValue ); /** * return the name that should be displayed in the dp dialogs i.e. when * the layout name is present, use it, or else use the original name. */ ::rtl::OUString SC_DLLPUBLIC getDisplayName() const; }; typedef std::vector< ScDPLabelData > ScDPLabelDataVector; // ============================================================================ struct ScPivotField { SCCOL nCol; sal_uInt16 nFuncMask; sal_uInt16 nFuncCount; ::com::sun::star::sheet::DataPilotFieldReference maFieldRef; explicit ScPivotField( SCCOL nNewCol = 0, sal_uInt16 nNewFuncMask = PIVOT_FUNC_NONE ); bool operator==( const ScPivotField& r ) const; }; typedef ::std::vector< ScPivotField > ScPivotFieldVector; // ============================================================================ struct ScPivotParam { SCCOL nCol; // Cursor Position / SCROW nRow; // bzw. Anfang des Zielbereiches SCTAB nTab; ScDPLabelDataVector maLabelArray; ScPivotFieldVector maPageArr; ScPivotFieldVector maColArr; ScPivotFieldVector maRowArr; ScPivotFieldVector maDataArr; bool bIgnoreEmptyRows; bool bDetectCategories; bool bMakeTotalCol; bool bMakeTotalRow; ScPivotParam(); bool operator==( const ScPivotParam& r ) const; }; // ============================================================================ struct ScPivotFuncData { SCCOL mnCol; sal_uInt16 mnFuncMask; ::com::sun::star::sheet::DataPilotFieldReference maFieldRef; explicit ScPivotFuncData( SCCOL nCol, sal_uInt16 nFuncMask ); explicit ScPivotFuncData( SCCOL nCol, sal_uInt16 nFuncMask, const ::com::sun::star::sheet::DataPilotFieldReference& rFieldRef ); }; typedef ::std::vector< ScPivotFuncData > ScPivotFuncDataVector; // ============================================================================ typedef std::vector< String > ScDPNameVec; // ============================================================================ #endif