/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 . */ /* IMPORTANT: Strictly adhere to the following sequence when creating a pivot table: pPivot->SetColFields(aColArr, aColCount) pPivot->SetRowFields(aRowArr, aRowCount) pPivot->SetDataFields(aDataArr, aDataCount) if (pPivot->CreateData()) { pPivotDrawData(); pPivotReleaseData(); } Make sure that either ColArr or RowArr contains a PivotDataField entry. */ #pragma once #include #include #include "types.hxx" #include "scdllapi.h" #include "dpglobal.hxx" #include "calcmacros.hxx" #include #include #include #include #include #include #include #define PIVOT_DATA_FIELD (SCCOL(-1)) struct SC_DLLPUBLIC ScDPName { OUString maName; ///< Original name of the dimension. OUString maLayoutName; ///< Layout name (display name) sal_uInt8 mnDupCount; ScDPName(); explicit ScDPName(const OUString& rName, const OUString& rLayoutName, sal_uInt8 nDupCount); }; struct ScDPLabelData { OUString maName; ///< Original name of the dimension. OUString maLayoutName; ///< Layout name (display name) OUString maSubtotalName; SCCOL mnCol; ///< 0-based field index (not the source column index) tools::Long mnOriginalDim; ///< original dimension index (>= 0 for duplicated dimension) PivotFunc mnFuncMask; ///< Page/Column/Row subtotal function. sal_Int32 mnUsedHier; ///< Used hierarchy. sal_Int32 mnFlags; ///< Flags from the DataPilotSource dimension sal_uInt8 mnDupCount; bool mbShowAll:1; ///< true = Show all (also empty) results. bool mbIsValue:1; ///< true = Sum or count in data field. bool mbDataLayout:1; bool mbRepeatItemLabels:1; struct Member { OUString maName; 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. */ SC_DLLPUBLIC OUString const & getDisplayName() const; }; std::vector maMembers; css::uno::Sequence maHiers; ///< Hierarchies. css::sheet::DataPilotFieldSortInfo maSortInfo; ///< Sorting info. css::sheet::DataPilotFieldLayoutInfo maLayoutInfo; ///< Layout info. css::sheet::DataPilotFieldAutoShowInfo maShowInfo; ///< AutoShow info. ScDPLabelData(); /** * @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. */ SC_DLLPUBLIC OUString const & getDisplayName() const; }; typedef std::vector< std::unique_ptr > ScDPLabelDataVector; struct ScPivotField { css::sheet::DataPilotFieldReference maFieldRef; tools::Long mnOriginalDim; ///< >= 0 for duplicated field. PivotFunc nFuncMask; SCCOL nCol; ///< 0-based dimension index (not source column index) sal_uInt8 mnDupCount; explicit ScPivotField( SCCOL nNewCol = 0 ); tools::Long getOriginalDim() const; }; typedef std::vector< ScPivotField > ScPivotFieldVector; struct ScPivotParam { SCCOL nCol; ///< Cursor Position / SCROW nRow; ///< or start of destination area SCTAB nTab; ScDPLabelDataVector maLabelArray; ScPivotFieldVector maPageFields; ScPivotFieldVector maColFields; ScPivotFieldVector maRowFields; ScPivotFieldVector maDataFields; bool bIgnoreEmptyRows; bool bDetectCategories; bool bMakeTotalCol; bool bMakeTotalRow; ScPivotParam(); ScPivotParam( const ScPivotParam& r ); ~ScPivotParam(); ScPivotParam& operator= ( const ScPivotParam& r ); void SetLabelData(const ScDPLabelDataVector& r); }; struct ScPivotFuncData { css::sheet::DataPilotFieldReference maFieldRef; tools::Long mnOriginalDim; PivotFunc mnFuncMask; SCCOL mnCol; sal_uInt8 mnDupCount; explicit ScPivotFuncData( SCCOL nCol, PivotFunc nFuncMask ); #if DEBUG_PIVOT_TABLE void Dump() const; #endif }; typedef std::vector ScDPNameVec; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ > LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-18cid#1448546 Logically dead codeCaolán McNamara
Change-Id: I7013e5ef67ae58c42886a4ba6ea0c9a47074ac8e Reviewed-on: https://gerrit.libreoffice.org/75834 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-29test in a separate helper process if OpenCL crashes (tdf#112252)Luboš Luňák
Some OpenCL implementations may be broken, e.g. pocl simply asserts and aborts if it can't find Clang. In order to protect against crashes caused by faulty OpenCL drivers, when testing OpenCL functionality on OpenCL setup change, first do a simple test in a separate helper. Change-Id: I1cf328e731c48f47745b27c7130e7521254209f5 Reviewed-on: https://gerrit.libreoffice.org/71080 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>