office-gobmx/sc/inc/subtotalparam.hxx
Balazs Varga 26c08356d1 tdf#162262 sc add "Summary below data" option for Subtotal dialog
With this option we can set where the summary rows should appear,
above or below the datas when we create a new Subtotal area. The default
option is "True" (which means the summary rows are below the datas)
when we create a new subtotal area. Unless if we already have one subtotal
area on the same sheet, in that case the sheet level property, "TotalsRowBelow"
contains where should the summary rows be for the new Subtotal's.

TODO: add new ODF xml attribute for Summary below

Change-Id: Icf86c85041d75c24919cb528846d5bb2b517ca78
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175556
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-10-28 13:28:21 +01:00

49 lines
2.1 KiB
C++

/* -*- 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/.
*/
#pragma once
#include "global.hxx"
#include <memory>
struct SC_DLLPUBLIC ScSubTotalParam
{
SCCOL nCol1; ///< selected area
SCROW nRow1;
SCCOL nCol2;
SCROW nRow2;
sal_uInt16 nUserIndex; ///< index into list
bool bRemoveOnly:1;
bool bReplace:1; ///< replace existing results
bool bPagebreak:1; ///< page break at change of group
bool bCaseSens:1;
bool bDoSort:1; ///< presort
bool bSummaryBelow:1; ///< Summary below or above (default: below)
bool bAscending:1; ///< sort ascending
bool bUserDef:1; ///< sort user defined
bool bIncludePattern:1; ///< sort formats
bool bGroupActive[MAXSUBTOTAL]; ///< active groups
SCCOL nField[MAXSUBTOTAL]; ///< associated field
SCCOL nSubTotals[MAXSUBTOTAL]; ///< number of SubTotals
std::unique_ptr<SCCOL[]> pSubTotals[MAXSUBTOTAL]; ///< array of columns to be calculated
std::unique_ptr<ScSubTotalFunc[]> pFunctions[MAXSUBTOTAL]; ///< array of associated functions
ScSubTotalParam();
ScSubTotalParam( const ScSubTotalParam& r );
ScSubTotalParam& operator= ( const ScSubTotalParam& r );
bool operator== ( const ScSubTotalParam& r ) const;
void Clear();
void SetSubTotals( sal_uInt16 nGroup,
const SCCOL* ptrSubTotals,
const ScSubTotalFunc* ptrFunctions,
sal_uInt16 nCount );
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */